コマンド/execute

提供: Minecraft Wiki
移動先: 案内検索

/executeは様々な状況で他のコマンドを実行する多用途なコマンドである。

構文
  • Java Edition
指定するサブコマンドによってコマンドがどのように実行されるかが変わる:
  • /execute as <entity> <chained command> <entity>で指定したエンティティでコマンドを実行する(ただし、座標は変わらない)。<entity>が視点を持たない場合、コマンドは指定したエンティティではなく前の実行者の足下の座標を基準として実行される。
  • /execute at <entity> <chained command> <entity>で指定したエンティティの座標、方向、ディメンションでコマンドを実行する(ただしエンティティ自体は変更しない)。
  • /execute positioned <pos> <chained command> <pos>で指定した座標でコマンドを実行する。
  • /execute positioned as <entity> <chained command> entityで指定したエンティティの座標のみを使ってコマンドを実行する。
  • /execute align <axes> <chained command> 座標をブロック座標(切り下げ)に合わせてからコマンドを実行する。<axes>x y zの組み合わせで指定する(例: x xz zyx yz)。
    • 例:
      • x=-1.8,y=2.3,z=5.9のとき<axes>xを指定するとx=-2,y=2.3,z=5.9で実行される。
      • x=2.4,y=-1.1,z=3.8のとき<axes>yxzを指定するとx=2,y=-2,z=3で実行される。
  • /execute facing <x y z> <chained command> 座標x y zを向いているものとしてコマンドを実行する。
  • /execute facing entity <entity> (eyes|feet) <chained command> 指定したエンティティの目/足下を向いているものとしてコマンドを実行する。
  • /execute rotated as <entity> <chained command> 指定したエンティティと同じ向きを向いているものとしてコマンドを実行する。
  • /execute rotated <y x> <chained command> 指定した方向を向いているものとしてコマンドを実行する。
  • /execute in <dimension> <chained command> 指定したディメンションにいるものとしてコマンドを実行する。
  • /execute anchored (feet|eyes) <chained command> このサブコマンド以降、座標指定の ^ ^ ^ やfacingコマンドの基準として目/足下を使うよう指定する。
条件付サブコマンドによって不要なコマンドの実行を防止できる。指定した条件を全て満たした場合にのみコマンドが実行される。そうでない場合、runで指定したコマンドはスキップされ、条件を満たしたかどうかがコマンドの返り値となる:
  • /execute (if|unless) block <pos> <block> <chained command> <pos>の座標に<block>のブロックが存在する/しない場合にコマンドが実行される。
  • /execute (if|unless) blocks <begin> <end> <destination> (all|masked) <chained command> <begin>から<end>の領域が<destination>と一致する/しない場合にコマンドが実行される。
  • /execute (if|unless) entity <entity> <chained command> <entity>で指定したエンティティが1以上存在する/しない場合にコマンドが実行される。
  • /execute (if|unless) score <target> <targetObjective> (<|<=|=|>=|>) <source> <sourceObjective> <chained command> <target>のスコアが<source>のスコアと比較して(<|<=|=|>=|>)が成り立つ/成り立たない場合にコマンドが実行される。
  • /execute (if|unless) score <target> <objective> matches <range> <chained command> <target>のスコアがrangeの範囲(11..5)に一致する/しない場合にコマンドを実行する。
/statsの置き換えとして、新しいstoreサブコマンドがコマンドの返り値を格納するために用意された:
  • result はコマンドの返り値で、AffectedBlocks AffectedEntities AffectedItems QueryResultといった古い状態を置き換えるものである。
  • success はコマンドが成功した回数である。通常は01だが、コマンドが複数回実行される場合(例えばas @aを指定した場合)は1より大きくなることがある。これはSuccessCountを置き換えるものである。
  • コマンドが全て実行できた場合に値が格納される。
  • コマンドが成功しなかった(success0となる)場合、resultは常に0となる。
  • これにより各々のコマンドがどのような結果を期待するのかが明確になった。
  • /execute store (result|success) score <name> <objective> <chained command>
    • <name><objective>で指定されたスコアに値が格納される。
    • objectiveは存在していなければならないが、/statsとは違い<name>に初期値を与えておく必要はない。
  • /execute store (result|success) block <pos> <path> (byte|double|float|int|long|short) <scale> <chained command>
    • posの座標にあるブロックのpathのパスのNBT情報に(byte|double|float|int|long|short)の型で値が格納される。
  • /execute store (result|success) entity <target> <path> (byte|double|float|int|long|short) <scale> <chained command>
    • targetで指定したエンティティのpathのパスのNBT情報に(byte|double|float|int|long|short)の型で値が格納される。
    • /dataのように、/execute storeはプレイヤーのNBT情報を変更することはできない。ただし、プレイヤーのInventoryEnderItemsの中のアイテムのtagに限っては/execute storeで変更できる。
  • /execute store (result|success) bossbar <id> (value|max) <chained command>
    • idで指定したボスバーのvalueないしmaxに値が格納される。
  • パスは以下のようなものである: foo.bar[0]."A [crazy name]".baz.
    • foo.barはfooの子のbarを意味する。
    • bar[0]はfooの第0要素を意味する。
    • "A [crazy name]"はエスケープが必要な文字を含む名前を「"」でエスケープしたものである。
  • 例:
    • /execute store success score @a foo run say hi
    • /execute as @e[type=pig] at @s store success entity @s Saddle byte 1 if entity @p[distance=..5]
サブコマンドは全て他のサブコマンドと連結できる。
  • サブコマンドの次に別のサブコマンドを書けばよい。
  • サブコマンドの連結が完了したら、実際に実行したいコマンドをrunに続けて書く。
    • コマンドの前に/を書いてはいけない。
  • /execute as somebody at somebody run say hi
  • Bedrock Edition
execute <origin: target> <position: x y z> <command: command>
以下は指定した座標に指定したブロックが存在した場合にのみ実行する別の構文である:
execute <origin: target> <position: x y z> detect <detectPos: x y z> <block: Block> <data: int> <command: command>

見やすくするため色分けしてある。

引数
origin: target
コマンドの実行者を指定する。プレイヤーの名前かターゲットセレクターでなければならない。1つより多くのエンティティが該当する場合、各々のエンティティにおいて1回ずつコマンドが実行される。
position: x y z
コマンドを実行する座標を指定する。xz-30,000,000以上30,000,000以下でなければならない。チルダ表記法での座標はコマンド実行者基準ではなくターゲット基準となる。
command: command
実行するコマンドを指定する。正しいコマンドでなければならない。
detectPos: x y z (detect指定時のみ)
ブロックをチェックする座標を指定する。x2z2-30,000,000以上30,000,000以下でなければならない。(x,y,z)からの相対座標としてチルダ表記法で指定することもできる。
block: Block (detect指定時のみ)
(x2,y2,z2)でチェックするブロックのブロックIDを指定する。block正しいブロックIDでなければならない(例えばstone)。
data: int (detect指定時のみ)
ブロックのブロックデータ値を指定する。-1を指定すると任意のブロックデータ値に一致する。
結果
引数が正しくない場合、entityの指定に該当するプレイヤーが存在しない場合、チェック対象のブロックがコマンドで指定したものと異なる場合、コマンドは失敗する。
成功した場合、指定したコマンドが指定した対象にてオペレーター権限で実行される。
使用例
全ゾンビに雷を落とす:
execute at @e[type=zombie] run summon lightning_bolt
砂の上に立つゾンビに雷を落とす:
execute at @e[type=zombie] if block ~ ~-1 ~ minecraft:sand run summon lightning_bolt
最も近くにいるプレイヤーの座標にクリーパーを10匹召喚する(ロード済のワールドに10体以上のエンティティが存在する場合にのみ動作する):
execute at @e[limit=10] run execute at @p run summon creeper ~ ~ ~

歴史[編集 | ソースを編集]

Java Edition
1.8 14w07a /executeが追加された。
14w08a コマンドが実行成功時の返り値をコマンドブロックに渡すようになった。
1.11 16w32a ブロック状態のサポートが追加された。
1.13 17w45a 構文が分割された。
17w45b /execute storeが再び動作するようになった。
18w02a コマンドをより柔軟に操作するための新しいサブコマンドが追加された。
18w05a /execute storeサブコマンドが追加された。
Pocket Edition Alpha
0.16.0 build 1 /executeが追加された。
Java Edition 1.10と同様に動作するが、エンティティの指定は省略可能である。