コマンドを実行する
アイテムをクリックした際に、プレイヤー自身としてコマンドを実行したり、サーバーコンソール(OP権限)としてコマンドを実行する方法を解説します。
プレイヤーコマンドの実行
クリックしたプレイヤー自身が実行者となってコマンドを実行します。
簡易記法
menu-items:
- slot: 11
material: COMPASS
name: "&aスポーンへ行く"
command: "/spawn" # 先頭スラッシュありでもなしでも動作します
型付きアクション(type: player-command)
menu-items:
- slot: 11
material: COMPASS
name: "&aスポーンへ行く"
action:
type: player-command
command: "spawn"
コンソールコマンドの実行 (type: console-command)
サーバーコンソール(最高権限)としてコマンドを実行します。アイテムの付与(/give)や経済の操作(/eco give)、権限の変更など、一般プレイヤーに直接権限を与えたくないコマンドを実行する際に使用します。
menu-items:
- slot: 13
material: GOLD_INGOT
name: "&6デイリーボーナスを受け取る"
action:
type: console-command
command: "eco give {player} 500"
実行者の明示指定 (
type: command)type: command では executor キーで実行者を明示指定することもできます。
action:
type: command
executor: console # player(省略時) または console
command: "give {player} diamond 1"
executor に player と console 以外を指定するとエラーになります。
コマンド内の変数とプレースホルダー
コマンド文字列内では、以下の変数やPlaceholderAPIのプレースホルダーが展開されます。 変数ごとに使える場所が決まっています。
| 変数 | 展開内容 | 使える場所 |
|---|---|---|
{player} | クリックしたプレイヤーのMC ID(名前) | すべてのテキスト(コマンド、メッセージ、名前、説明文など) |
{menu} | 現在のメニューID | 同上 |
{session} | 現在のセッション識別子 | 同上 |
{input} | type: input アクションで入力された値(変数名は variable で変更可能) | そのアクションの command / actions(入力後に実行される処理)の中だけ |
{input.<id>} | メニューの inputs で宣言し、アイテムの input-refs で参照した入力の値 | そのアイテムのアクション内 |
{remaining} | クールダウンの残り秒数 | cooldown.message の中だけ |
%<placeholder>% | PlaceholderAPI の各種プレースホルダー(例: %vault_eco_balance%) | PlaceholderAPI 導入時のみ。未導入なら文字列のまま |
入力値の扱いは PlaceholderAPI を参照してください。
記述例
actions:
- type: console-command
command: "say &e{player} &fさんがVIPショップを利用しました!"
- type: console-command
command: "lp user {player} parent add vip"