Skip to content

sahyuya/AvantGardeMenu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AvantGardeMenu

Purpur 1.21.8+ 向けの視認性を重視したメニュープラグイン

特徴

🎨 Dialog API (Paper 1.21.6+)

  • Javaエディションプレイヤーには最新のDialog APIを使用
  • 階層型サブメニューシステム
  • 絵文字アイコン付きの見やすい選択肢
  • MiniMessage形式によるカラフルなデザイン

📱 Geyser Cumulus 統合

  • Bedrockエディションプレイヤーには専用フォームを表示
  • SimpleFormによる直感的なボタン式メニュー
  • プレイヤータイプを自動判定

✨ 豊富な機能

  • プロフィール表示
  • サーバーショップ - 5つのカテゴリ別ショップ
  • SocialLikes - ソーシャル機能
  • テレポート - 7つの主要地点への移動
  • 便利機能 - 作業台、バックパック、暗視など
  • リンク集 - Wiki、Discord、投票サイト、マップ
  • 画像マップアート化 - URLから直接マップアート生成
  • 管理者コマンド - OP専用の管理機能
    • プレイヤー昇格
    • CoreProtect操作 (lookup/rollback)
    • プレイヤーBAN
    • ワールドサイズ拡張
    • ワールド作成(Multiverse + WorldBorder自動設定)

動作環境

  • サーバー: Purpur 1.21.8 (Paper 1.21.6+)
  • Java: Java 21
  • プラグインタイプ: Paper Plugin (paper-plugin.yml)
  • オプション: Geyser-Spigot (Bedrock対応時)

ビルド方法

mvn clean package

生成されたJARファイルは target/avantgardemenu-1.0.0.jar に出力されます。

インストール

  1. ビルドしたJARファイルをサーバーのpluginsフォルダにコピー
  2. 重要: src/main/resources/plugin.yml を削除してください(Paper Plugin形式では不要)
  3. サーバーを起動(自動的に設定ファイルが生成されます)
  4. 必要に応じて設定ファイルを編集
  5. /menuadmin reload で設定を再読み込み

設定ファイル構造

plugins/AvantGardeMenu/
├── config.yml              # メイン設定ファイル
└── menus/
    ├── shop.yml            # ショップサブメニュー
    ├── teleport.yml        # テレポートサブメニュー
    ├── utilities.yml       # 便利機能サブメニュー
    ├── links.yml           # リンクサブメニュー
    └── admin.yml           # 管理者サブメニュー (OP専用)

コマンド

コマンド 説明 権限
/menu メニューを開く visualmenu.use (デフォルト: true)
/menuadmin reload 設定を再読み込み visualmenu.admin (デフォルト: op)
/menuadmin debug デバッグ情報を表示 visualmenu.admin (デフォルト: op)
/menuadmin listmenus 読み込まれたメニューを一覧表示 visualmenu.admin (デフォルト: op)
/menuadmin regenerate 設定ファイルを強制再生成 visualmenu.admin (デフォルト: op)

エイリアス: /vmenu, /visualmenu

設定例

メニューアイテムの追加

menu:
  items:
    custom_item:
      title: "<red><bold>カスタムアイテム</bold></red>"
      icon: DIAMOND
      description:
        - "§7これはカスタムアイテムです"
        - "§8クリックして実行"
      command: "[player]mycustomcommand"
      permission: "myplugin.custom"
      slot: 8

コマンドタイプ

  • [console] - コンソールから実行

    command: "[console]give %player% diamond 1"
  • [player] - プレイヤーとして実行

    command: "[player]warp lobby"
  • プレフィックスなし - デフォルトでプレイヤーとして実行

    command: "shop"

特殊コマンド

  • [special]back - 前のメニューに戻る

    command: "[special]back"
  • [special]nightvision_toggle - 暗視のオン/オフ切り替え

    command: "[special]nightvision_toggle"
  • [special]open_url:<URL> - URLをチャットで送信

    command: "[special]open_url:https://example.com"
  • [special]tomap_dialog - 画像マップアート作成ダイアログを開く

    command: "[special]tomap_dialog"
  • [special]admin_promote - プレイヤー昇格ダイアログを開く (管理者専用)

  • [special]admin_coreprotect - CoreProtect操作ダイアログを開く (管理者専用)

  • [special]admin_ban - プレイヤーBANダイアログを開く (管理者専用)

  • [special]admin_worldsize - ワールドサイズ拡張ダイアログを開く (管理者専用)

  • [special]admin_createworld - ワールド作成ダイアログを開く (管理者専用)

サブメニュー指定

メインメニューアイテムからサブメニューを開く:

items:
  shop:
    title: "ショップ"
    icon: EMERALD
    submenu: "shop"  # shop.ymlのサブメニューを開く
    permission: null

プレースホルダー

  • %player% - プレイヤー名に置換されます

カスタマイズ

タイトルのカラー設定

MiniMessage形式を使用:

title: "<gradient:#FF0000:#00FF00>レインボー</gradient>"

レガシーカラーコードも使用可能:

title: "§b§lシンプルな青"

アイコンの種類

対応している絵文字アイコン:

  • 🧭 COMPASS
  • ⚔️ DIAMOND_SWORD
  • 📖 BOOK
  • 🔮 ENDER_PEARL
  • 💎 EMERALD
  • その他多数...

開発情報

プロジェクト構成

src/main/
├── kotlin/com/github/sahyuya/avantgardemenu/
│   ├── AvantGardeMenu.kt          # メインクラス
│   ├── command/
│   │   ├── MenuCommand.kt          # メニュー表示コマンド
│   │   └── MenuAdminCommand.kt     # 管理コマンド
│   ├── config/
│   │   └── MenuConfig.kt           # 設定管理(サブメニュー対応)
│   ├── listener/
│   │   └── MenuListener.kt         # イベントリスナー
│   ├── manager/
│   │   └── GeyserManager.kt        # Geyser統合
│   └── menu/
│       └── JavaMenuBuilder.kt      # Dialog API実装(階層メニュー)
└── resources/
    ├── paper-plugin.yml
    ├── config.yml
    └── menus/
        ├── shop.yml
        ├── teleport.yml
        ├── utilities.yml
        └── links.yml

使用技術

  • Kotlin: 2.0.21
  • Paper API: 1.21.6+ (Dialog API)
  • Geyser API: 2.4.4-SNAPSHOT
  • Cumulus: 1.1.2 (Forms API)
  • Maven: ビルドツール

ライセンス

このプロジェクトはMITライセンスの下で公開されています。

サポート

問題が発生した場合は、Issuesセクションで報告してください。

About

Dialogを用いた試作menu

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages