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

クールダウン

アイテムのクリックによるコマンド実行やテレポートに「再使用待機時間(クールダウン)」を設定し、プレイヤーの連打やスパムを防止できます。


記述方法

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)」に即座に消費されます。

アクションの途中で入力がキャンセルされたり、コマンドが失敗した場合でもクールダウンは消費されるため、連打によるコマンドスパムや負荷攻撃を未然に防止します。