5分でメニューを作る
EasyMenuでは、わずか数行のYAMLを書くだけで簡単にメニューを作成できます。
ここでは、実際に動作するシンプルなメニューを作成し、ゲーム内で開くまでの手順を解説します。
1. 最小構成のメニュー
plugins/EasyMenu/main.yml をエディタで開き、中身を次のように書き換えてみましょう。
menu-title: "&6&lマイサーバーメニュー"
menu-size: 27
menu-items:
- slot: 13
material: DIAMOND
name: "&bダイヤモンドをもらう"
lore:
- "&7クリックするとダイヤモンドを1個入手します"
actions:
- type: console-command
command: "give {player} diamond 1"
console-command を使うのかcommand: "give {player} diamond 1" と書いたコマンドは、クリックしたプレイヤー自身の権限で実行されます。
/give は通常OP専用のため、一般プレイヤーが押しても動作しません。
このように一般プレイヤーに権限を与えたくないコマンドは、サーバーコンソールの権限で実行する type: console-command を使います。
詳しくは コマンドを実行する を参照してください。
設定内容の解説
menu-title: メニュー最上部に表示されるタイトルです。&を使ったカラーコードが使えます。menu-size: インベントリのサイズです。9の倍数(9, 18, 27, 36, 45, 54)で指定します。menu-items: メニュー内に並べるアイテムのリストです。slot: アイテムを配置するスロット番号です(0始まり。27スロットの場合、中央付近は13)。material: アイテムの素材名(MinecraftのMaterial名)です。name: アイテムの表示名です。lore: アイテムの説明文(行のリスト)です。actions: クリック時に順番に実行する処理のリストです。type: console-command: サーバーコンソールの権限でコマンドを実行します。command: 実行するコマンドです。{player}はクリックしたプレイヤーの名前に自動で置き換わります。
2. 設定を再読込する
ファイルを保存したら、ゲーム内またはサーバーコンソールで次のコマンドを実行します。
/menu reload
成功すると再読み込み完了のメッセージが表示され、サーバーを再起動することなく新しい設定が即座に反映されます。
メッセージの文言は config.yml の language で選んだ言語ファイルによって変わります(日本語なら「EasyMenuの再読み込みが完了しました。」)。
設定に誤りがあった場合は再読み込みが拒否され、今までのメニューがそのまま使われます。コンソールに表示される診断メッセージを確認してください(リロードと設定検証)。
3. メニューを開いて確認する
ゲーム内で次のコマンドを実行します。
/menu
中央(スロット13)にダイヤモンドが配置されたメニューが表示されます。ダイヤモンドをクリックすると、プレイヤーにダイヤモンドが1個付与されます。 一般プレイヤー(非OP)でも動作します。
4. サウンドや装飾を追加してみる
もう少しメニューを豪華にしてみましょう。
menu-title: "&6&lマイサーバーメニュー"
menu-size: 27
menu-opensound: "BLOCK_CHEST_OPEN"
menu-background-item: "GRAY_STAINED_GLASS_PANE"
menu-items:
- slot: 11
material: COMPASS
name: "&aスポーンへ移動"
lore:
- "&7スポーン地点へテレポートします"
command: "/spawn"
sound: "ENTITY_ENDERMAN_TELEPORT"
close-menu: true
- slot: 15
material: DIAMOND
name: "&bショップを開く"
lore:
- "&7アイテム売買メニューを開きます"
command: "sub_shop"
sound: "UI_BUTTON_CLICK"
追加されたポイント
menu-opensound: メニューを開いた瞬間に再生される効果音です。menu-background-item: アイテムを配置していない空きスロットを自動で埋める背景アイテムです。sound: アイテムをクリックした時に再生される効果音です。close-menu: true: クリック後にメニューを自動で閉じます(既定値はtrue)。falseにするとメニューを開いたままにできます。command: "sub_shop":sub/shop.ymlで定義されたサブメニューへ画面遷移します。
ファイルを保存して /menu reload を実行すれば、すぐに新しいデザインが適用されます!