~MyCommand 使い方~最終更新日時 2016年9月4日 20:39
基本的な使い方
plugins/MyCommandフォルダにある「commands.yml」に記述してコマンドを追加します
'コマンドの名前':
  command: 追加するコマンド
  type: コマンドのタイプ
  その他:
コマンドの名前はゲーム内で使用することはほぼないので自分が分かりやすければ大丈夫です
コマンドのタイプやその他の記述方法については例と共に載せていくので参考にして下さい

また、自分で作成したコマンドにも全てパーミッションが設定されています
後ほど詳しい説明は書いてありますが、実行に必要なパーミッションは「mycommand.cmd.コマンドのID」もしくは「mycommand.cmd.コマンドの名前」となっています
コマンドのIDは「/mycmd list」で確認出来ます

この場合、「/freecommand」のパーミッションは「mycommand.cmd.1」です

しかし、IDはコマンドを増やすと変わってしまうため名前の方で指定した方が便利です
コマンドごとに記述が面倒だという方は「mycommand.cmd.all」さえ書いておけば全てのコマンドを使用可能になります

テキストを表示
typeをTEXTにしてtext:を記述すると、コマンドを実行した時にテキストが表示されます
'welcome_command':
  command: /welcome
  type: TEXT
  text:
  - '&6こんにちは &a$player &6さん!'
  - '&a$server-name &6にようこそ!'
  - '&6$server-motd.'
上記のように書くと「/welcome」コマンドが実行できるようになります
実行すると以下のように表示されます


「$player」はコマンドを実行した人の名前
「$server-name」はサーバーの名前
「$server-motd」はサーバーのMOTD
「&6」や「&a」はそれ以降の文字の色を変える
など、いろいろな文字を返したり文字の色を変えることが出来ますが、それらの説明はまだ載せていません
単純なコマンドのショートカット
'my_alias':
  command: /l
  type: ALIAS
  alias: /list
もしくは
'my_alias':
  command: /l
  type: RUN_COMMAND
  runcmd:
  - /list
上記のように書くと「/l」で「/list」が実行できるようになります
実行すると以下のように表示されます


引数を使用したショートカットコマンド
引数に置き換えたい部分に「$arg1」を入れることで入力した文字がそこに入ります
'vip_shortcut':
  command: /vip
  type: RUN_COMMAND
  runcmd:
  - /pex user $arg1 group set Vip
上記のように書くと「/vip」コマンドが実行できるようになり「/vip」の後に入力した文字を「$arg1」の部分に置き換えてコマンドを実行します
具体的には

と入力すると

が実行されたことになります

複数の引数を使用したショートカットコマンド
「$multiargs」を使用すれば「$arg1」や「$arg2」を使用しなくても複数の引数に置き換えることが出来ます
'your_command':
  command: /s
  type: runcommand
  runcmd:
  - /say $multiargs
上記のように書くと

上のコマンドを実行した時

このようになります

カスタムメッセージと権限の設定
'time_shortcut':
  command: /t
  type: runcommand
  runcmd:
  - /time set $arg1
  error-message: '&c使い方 /t <時間>'
  permission-node: custom.custom
  permission-error: '権限がありません'
上記のように書くと 「/t <時間>」で「/time set <時間>」が実行され、ワールドの時間を変更します
「/t」とだけ入力した時は引数が入力されていないため、エラーになりエラーメッセージが表示されます

また、正しく入力パーミッションを設定したため「custom.custom」の権限がないと、パーミッションエラーのメッセージが表示されます


パーミッションの無効化
初期設定では全てのコマンドにパーミッションが使用されています
「permission-required」を「false」にすることで、パーミッションを設定しなくてもコマンドを使用することが可能になります
'no_permission':
  command: /freecommand
  type: TEXT
  text:
  - 'このコマンドに権限は必要ありません'
  permission-required: false

コマンドの実行へのコスト付与
コマンドを使用するときに、お金またはアイテムを消費させることが出来ます
'cost_example':
  command: /costexample
  type: TEXT
  cost: 5
  success-message: "&7%s &a支払った"
  error-message: "このコマンドの実行には %s 円が必要です!"
'itemcost_example':
  command: /itemcostexample
  type: TEXT
  itemcost: "COBBLESTONE:5"
  success-message: "&7%sつ %s &aを消費しました"
  error-message: "このコマンドの実行には %sつ %sが必要です!"
1つ目の「/costexample」の実行には 通貨が5必要で
2つ目の「/itemcostexample」の実行にはCOBBLESTONE(丸石)が5つ必要になります
「success-message:」はコマンドが実行できた時のメッセージで
「error-message:」はコストが足りない等でコマンドの実行に失敗した時のメッセージです

リアルなコマンドやタブコンプリーターの設定
「register: true」を記述することで、コマンド入力の途中にTabキーを押した時に候補として出てくるようになります
「tab_completer:」を記述することで、引数の候補もTabキーで表示できるようになります
'hallo_command':
  command: /greets 
  type: RUN_COMMAND
  runcmd:
  - /say $arg1
  register: true
  tab_completer:
  - 'こんにちは'
  - 'やあ'
'gm_mode':
  command: /gm
  type: ALIAS
  alias: /gamemode
  register: true
  tab_completer:
  - survival
  - creative
  - adventure

コマンドのブロック
「type: ADD_PERMISSION」を記述することで、そのコマンドの実行をブロックできます
'no_pl':
  command: /pl
  type: ADD_PERMISSION
これで「/pl」の使用が出来なくなり、サーバー内のプラグインが見れなくなります
※なぜか自分の環境ではブロックが出来ませんでした

コマンドの遅延
実行するコマンドの中に「$delay$」を記述し「delaytimer:」を設定することでコマンドの発動に遅延を生じさせる事が出来ます
'delay':
  command: /delaytest
  type: RUN_CONSOLE
  text: //
  runcmd:
  - $delay$/time set 0
  - /say 朝です
  - $delay$/time set 15000
  - /say 夜です
  delaytimer: 5
この場合「/delaytest」の入力の5秒後に朝になり「朝です」と表示され
そのさらに5秒後に夜になり「夜です」と表示されます
「delaytimer:」の数字の単位は「秒」ですが、「delaytimer_format: TICKS」と記述すると単位を「ticks(1/20秒)」にも出来ます

ウォームアップとクールダウン
ウォームアップ(コマンドの発動までの時間)とクールダウン(連続でコマンドを使用出来るまでの時間)を設定できます
自分で作成したコマンドへ設定するときは「cooldown:」や「warmup:」を記述すればOKです
'cooldownhere':
  command: /cool_com
  type: TEXT
  text:
  - '5秒後にまた使用できます'
  cooldown: 5
'warmuphere':
  command: /warm_com
  type: TEXT
  text:
  - '5秒経ったので発動しました'
  warmup: 5
別のプラグインのコマンドに設定したい場合は、typeに「WARMUP」か「COOLDOWN」を使用し「delaytimer:」を設定してください
'cooldown_example':
  command: /pl
  type: COOLDOWN
  delaytimer: 60
'warmup_example':
  command: /gamemode
  type: WARMUP
  delaytimer: 5

コンソールからプレイヤーへコマンドの実行
typeに「RUN_CONSOLE」を使用することでコンソールからコマンドを実行することが出来ます
'run_by_console':
  command: /goto
  type: RUN_CONSOLE
  runcmd:
  - /tp $player $arg1
  - /money take $player 500
player1さんが「/goto player2」と入力すると「/tp player1 player2」と「/money take player1 500」がコンソールから実行され
player1をplayer2に飛ばして、player1の所持金を500減らします
※「/money」は「iConomyプラグイン」のコマンドです

OPとしてコマンドを実行させる
typeに「RUN_AS_OPERATOR」を使用することで、そのコマンドを実行するときのみ一時的にOPを与えます
'give_stones':
  command: /stonepls
  type: RUN_AS_OPERATOR
  runcmd:
  - /give $player stone 64
giveコマンドはOPがないと使えませんが「RUN_AS_OPERATOR」で一時的にOPが付与されるため実行することが出来ます
この「/stonepls」の実行にもパーミッションは必要ありません

スケジューラーの設定
日時を指定してコマンドを実行させることが出来ます
ややこしいので説明は省きます

ワールドでコマンドの使用を制限する
「allowed_worlds:」を使用することで、コマンドを使用できるワールドを決めることが出来ます
'onlyinthenether':
  command: /onlynether
  type: TEXT
  text:
  - "&cここはネザーです"
  allowed_worlds:
  - world_nether
  error-message: "このコマンドはネザーでのみ使用できます"
「使用を制限するワールド」を書くのではなく「使用を許可するワールド」を書くので間違えないように

コマンドのリピート
コマンドやテキストに「%Repeat%n%(nは数字)」を使用することで連続でそれを実行します
'clear-chat':
  command: /clearchat
  type: BROADCAST-TEXT
  text:
  - '%Repeat%30%あ'
「/clearchat」を実行すると「あ」が30回表示されます

ワールドによってコマンドを変える
コマンドやテキストに「$world=%ワールド名%」を使用することでワールドごとに実行する内容を変更できます
'per_world':
  command: /perworld
  type: RUN_COMMAND
  runcmd:
  - '$world=%world%/say 私はノーマルワールドにいます'
  - '$world=%world_nether%/say 私はネザーにいます'

コマンド実行看板
普通に看板を設置し、1行目に[mycmd] 2行目に実行したいコマンドを入力すると
看板を右クリックした時にそのコマンドが実行されるようになります


アイコンメニューの作成
typeに「ICON_MENU」を使用することでインベントリのようなGUIを開いてコマンドを実行させることが出来ます
'example_menu':
  command: /testmenu
  type: ICON_MENU
  text:
  iconmenu_title: '&cてすとメニュー'
  iconmenu_size: 27
  iconmenu_commands:
  - '0:GOLDEN_APPLE:0:/help:&2ヘルプ:&aヘルプを開きます'
  - '1:COMPASS:0:/mycmd:メニュー:MyCommandのメニューを開きます'
  - '9:EMERALD:0:/list:プレイヤーリスト:&bオンラインプレイヤーを表示します'
  - '10:WATCH:0:/time set 0:朝:朝にします'
  - '26:WOOL:11:%openiconmenu%/iconmenu2:次のページ:&cメニューのページを変えます;&a--------->'
「/testmenu」を実行するとこのような画面が表示されます


「iconmenu_title:」はメニューのタイトル
「iconmenu_size:」はメニューのサイズ(9 18 27 36 45の中から指定して下さい)
「iconmenu_commands:」でメニュー内のコマンド等を指定します
「'26:WOOL:11:%openiconmenu%/iconmenu2:次のページ:&cメニューのページを変えます;&a--------->'」だと
「'26番目に:wool(羊毛)の:ダメージ値(11で青色):実行するコマンド:そこの名前:説明文'」です
説明文に「;」を入れると改行されます
プラグイン一覧