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

表示・使用条件

EasyMenu 7では、条件(Condition)を使って「メニューを開けるか」「アイテムを見せるか」「アイテムを押せるか」を明確に制御できます。


3つの条件制御の違い​

open-when → メニュー自体を開けるか
visible-when → アイテムを見せるか
enabled-when → アイテムを押せるか
設定キー設定場所目的条件不成立時の動作
open-whenメニュー全体条件を満たさないプレイヤーからメニュー自体の開封を禁止するメニューが開かず、open-denied-message をプレイヤーに送信。
visible-whenアイテム (menu-items)条件を満たさないプレイヤーから要素の存在を隠すメニュー上にアイテムが表示されない(空欄/背景になる)。
enabled-whenアイテム (menu-items)アイテムの存在は見せつつ、条件未達のクリックを拒否するアイテムは表示されるが、クリック時に disabled-message を送信してアクションを実行しない。

open-denied-message と disabled-message を省略した場合は、言語ファイルの menu.open-denied / menu.element-disabled が使われます。 どちらもカラーコードとプレースホルダーを使えます。


設定例​

1. open-when(メニュー全体の入場制限)​

VIP権限を持っているプレイヤーのみが開けるメニューです。一般プレイヤーが /menu や /shop で開こうとすると拒否されます。

plugins/EasyMenu/sub/vip_shop.yml
menu-title: "&d&lVIPショップ"
menu-size: 27

# VIP権限がないと開けない
open-when:
permission: "myserver.vip"
open-denied-message: "&cこのメニューはVIPランク専用です。"

menu-items:
- slot: 13
material: NETHERITE_INGOT
name: "&5VIP特典アイテム"
command: "vip claim"

2. visible-when(管理者専用アイテムの非表示)​

管理者権限を持っているプレイヤーにのみ表示されるボタンです。一般プレイヤーには空きスロット(背景ガラス)に見えます。

menu-items:
- slot: 26
material: BEDROCK
name: "&c&l管理者パネル"
lore:
- "&7クリックして管理者画面を開く"
visible-when:
permission: "myserver.admin"
command: "sub_admin_panel"

3. enabled-when(所持金が必要な購入ボタン)​

メニューにはダイヤモンドが表示されますが、所持金が1,000円未満のプレイヤーがクリックするとエラーメッセージが表示され、購入コマンドは実行されません。

menu-items:
- slot: 13
material: DIAMOND
name: "&bダイヤモンドを購入"
lore:
- "&7価格: &e1,000円"
- "&7所持金: &a%vault_eco_balance%円"
enabled-when:
placeholder:
value: "%vault_eco_balance%"
operator: ">="
compare: "1000"
disabled-message: "&c所持金が足りません! (必要: 1,000円 / 現在: %vault_eco_balance%円)"
command: "shop buy diamond"

クリック時の動的再評価による安全性​

所持金や権限、ワールドは、メニューを開いた後でも変化する可能性があります。

EasyMenu 7では、メニューを開いた時点だけでなく、プレイヤーがアイテムをクリックした瞬間にも visible-when と enabled-when を再度評価します。

そのため、クリック時点で所持金などの条件を満たさない場合は、購入アクションを拒否します。 判定後の購入処理や残高の更新は実行先プラグインが行うため、それらを含む競合すべてを防止する保証ではありません。