クールダウン
アイテムのクリックによるコマンド実行やテレポートに「再使用待機時間(クールダウン)」を設定し、プレイヤーの連打やスパムを防止できます。
記述方法
1. 簡易記法(時間のみ指定)
menu-items:
- slot: 13
material: ENDER_PEARL
name: "&aスポーンへワープ"
cooldown: 5s # 5秒のクールダウン
command: "/spawn"
2. 詳細設定(セクション指定)
menu-items:
- slot: 13
material: ENDER_PEARL
name: "&aスポーンへワープ"
cooldown:
duration: 10s # クールダウン時間 (例: 500ms, 10s, 1m)
bypass-permission: "easymenu.cooldown.bypass" # クールダウンを無視できる権限
message: "&cクールダウン中です! あと {remaining} 秒お待ちください。" # 残り時間の通知
key: "global_teleport" # 複数アイテムで共有するクールダウンキー
command: "/spawn"
クールダウンの設定項目
| キー | 型 | 既定値 | 説明 |
|---|---|---|---|
duration | 時間文字列 | 必須 | クールダウンの持続時間(500ms, 5s, 1m, 1h など)。 |
bypass-permission | 文字列 | なし | この権限を持つプレイヤーはクールダウン制限を受けません。 |
message | 文字列 | 言語ファイル | クールダウン中にクリックした際に送信されるメッセージ。{remaining} で残り秒数が展開されます。 |
key | 文字列 | なし | クールダウンを共有するためのグループ識別子。 |
共有クールダウン (key)
通常、クールダウンは「プレイヤー + メニュー + アイテム」ごとに個別にカウントされます。
key を設定すると、同じキーを持つ複数のアイテム間で1つのクールダウンを共有できます。
テレポートメニューの例
menu-items:
# スポーンワープ
- slot: 11
material: COMPASS
name: "&aスポーンへ"
cooldown:
duration: 30s
key: "teleport_cooldown" # 共有キー
command: "/spawn"
# ロビーワープ
- slot: 15
material: NETHER_STAR
name: "&bロビーへ"
cooldown:
duration: 30s
key: "teleport_cooldown" # 共有キー
command: "/lobby"
上記の設定では、スポーンワープを使用したプレイヤーは、30秒間ロビーワープも使用できなくなります。
クールダウン消費のタイミングと安全性
EasyMenu 7では、クールダウンは「すべての条件判定(権限・表示・所持金等)を通過した直後、アクションが開始される前(ON_ATTEMPT)」に即座に消費されます。
アクションの途中で入力がキャンセルされたり、コマンドが失敗した場合でもクールダウンは消費されるため、連打によるコマンドスパムや負荷攻撃を未然に防止します。