メインコンテンツまでスキップ

アクション

アイテムをクリックした際に行われる処理を「アクション」と呼びます。

EasyMenu 7では、シンプルなコマンド実行から、メッセージ送信、画面遷移、効果音、待機(ディレイ)、チャット入力まで、多彩な処理を自由に組み合わせて記述できます。


3つの書き方(ステップアップ)​

アクションには用途に応じて3つの書き方があります。

1. 最も簡単な書き方 (command)​

コマンドを実行したり画面遷移するだけなら、command: 1行で指定できます。

# プレイヤーコマンドを実行
command: "spawn"

# サブメニューを開く
command: "sub_shop"

# メインメニューに戻る
command: "main_mainopen"

2. 単一の型付きアクション (action)​

アクションの種類(プレイヤーコマンド、コンソールコマンド、メッセージなど)を明示して1つだけ実行したい場合に記述します。

action:
type: player-command
command: "spawn"

3. 複数のアクションを連続実行 (actions)​

「メッセージを表示して、音を鳴らして、コマンドを実行する」といった複数の処理を上から順番に実行します。

actions:
- type: message
message: "&aサバイバルへ移動します..."
- type: sound
sound: BLOCK_NOTE_BLOCK_PLING
- type: player-command
command: "spawn"

書き方を併用したときの扱い​

書き方結果
command と action / actions を両方書くaction / actions が優先されます。command は無視され、警告(action-overrides-command)が出力されます。
action と actions を両方書くエラー(ambiguous-action)です。リロードは拒否されます。
3つとも書かないエラーです(アイテムには command、action、actions のいずれかが必要です)。装飾専用にしたい場合は actions: [] と書きます。
actions に書いた項目がすべて無効エラー(no-usable-action)です。ボタンが黙って無反応になることを防ぎます。

診断コードの意味は 診断コード一覧 を参照してください。


順番通りの厳密な実行(シーケンス制御)​

EasyMenu 7の actions リストは、記述された順序通りに厳密に1つずつ実行されます。

途中に時間がかかる処理が含まれていても、サーバースレッドを停止(フリーズ)させることなく非同期で安全に待機し、完了後に自動的に次のアクションへ進みます。

待機(delay)を含むアクションの例
actions:
- type: message
message: "&e3秒後にテレポートします..."
- type: sound
sound: BLOCK_NOTE_BLOCK_HAT
- type: delay
duration: 3s # 3秒間待機(サーバーは止まりません)
- type: player-command
command: "warp survival"
- type: message
message: "&aテレポート完了!"
失敗時の安全停止

もし途中のアクションが失敗した場合(例: 存在しないメニューへの遷移、権限不足、入力のキャンセルなど)、それ以降の後続アクションは安全に実行が中断されます。


クリック操作の判別 (click-policy)​

どのマウス操作でアクションを実行するかを指定できます。

menu-items:
- slot: 13
material: DIAMOND
click-policy: RIGHT # 右クリック時のみ実行
command: "shop buy"
設定値説明
PRIMARY (既定値)通常の決定クリック(Shiftなしの左クリック、またはダイアログ・Bedrockフォームのボタン押下)。
LEFT左クリック(Shift+左クリックを含む)。
RIGHT右クリック(Shift+右クリックを含む)。
ANYミドルクリックなどを含む、すべてのクリック操作。

ダイアログやBedrockフォームにはクリックの種類がないため、常に PRIMARY として扱われます。click-policy: RIGHT のアイテムはそれらの画面では反応しません。


詳しい仕様・各アクションの解説​