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

条件

EasyMenu 7では、メニューの開封条件(open-when)、アイテムの表示条件(visible-when)、使用条件(enabled-when)、およびバリアントの適用条件(when)で統一された共通の条件構文を使用します。


基本的な条件の書き方

1. 権限(パーミッション)チェック

文字列を直接指定するか、permission キーを指定します。

visible-when:
permission: "myserver.vip"

2. ワールド制限

プレイヤーが特定のワールドにいるかどうかを判定します。

# 単一ワールド
visible-when:
world: "world_nether"

# 複数ワールドのいずれか (リスト)
visible-when:
world:
- "world"
- "world_nether"

# in / not-in による指定
visible-when:
world:
not-in:
- "world_the_end"

3. ゲームモード制限

プレイヤーのゲームモード(SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR)を判定します。

visible-when:
gamemode: "SURVIVAL"

4. PlaceholderAPI による値・数値比較

PlaceholderAPIのプレースホルダー値と指定した値を比較します。

enabled-when:
placeholder:
value: "%vault_eco_balance%"
operator: ">="
compare: "1000"

比較演算子一覧 (operator)

placeholder 条件では以下の比較演算子が使用できます。

演算子比較種類説明
==文字列 / 数値等しいvalue: "%player_gamemode%", compare: "survival"
!=文字列 / 数値等しくないvalue: "%server_online%", compare: "0"
>数値より大きいvalue: "%vault_eco_balance%", compare: "500"
>=数値以上value: "%vault_eco_balance%", compare: "1000"
<数値未満value: "%player_ping%", compare: "100"
<=数値以下value: "%player_level%", compare: "50"
contains文字列含むvalue: "%luckperms_primary_group_name%", compare: "vip"
not-contains文字列含まないvalue: "%luckperms_groups%", compare: "banned"
starts-with文字列前方一致value: "%player_name%", compare: "admin_"
ends-with文字列後方一致value: "%player_name%", compare: "_bot"

:::note 数値比較の安全性 数値比較演算子(>, >=, <, <=)は任意精度の数値(BigDecimal)として評価されます。値が数値として解釈できない場合でもエラーでサーバーが停止することはなく、安全に false(不成立)として処理されます。 :::


論理演算子(AND / OR / NOT)

複数の条件を組み合わせて複雑な判定を行えます。

すべて満たす(AND): all

visible-when:
all:
- permission: "myserver.donor"
- placeholder:
value: "%vault_eco_balance%"
operator: ">="
compare: "5000"

いずれかを満たす(OR): any

visible-when:
any:
- permission: "myserver.admin"
- permission: "myserver.moderator"

反転(NOT): not

visible-when:
not:
world: "world_the_end"