細 (ボットによる: カテゴリをテンプレートで置換) |
Partition5896 (トーク | 投稿記録) 編集の要約なし |
||
121行目: | 121行目: | ||
[[en:Commands/execute]] |
[[en:Commands/execute]] |
||
+ | [[ru:Команды консоли/execute]] |
||
+ | [[uk:Команди консолі/execute]] |
||
[[zh:命令/execute]] |
[[zh:命令/execute]] |
2020年4月20日 (月) 00:04時点における版
/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
の範囲(1
や1..5
)に一致する/しない場合にコマンドを実行する。
/stats
の置き換えとして、新しいstore
サブコマンドがコマンドの返り値を格納するために用意された:result
はコマンドの返り値で、AffectedBlocks
AffectedEntities
AffectedItems
QueryResult
といった古い状態を置き換えるものである。success
はコマンドが成功した回数である。通常は0
か1
だが、コマンドが複数回実行される場合(例えばas @a
を指定した場合)は1
より大きくなることがある。これはSuccessCount
を置き換えるものである。- コマンドが全て実行できた場合に値が格納される。
- コマンドが成功しなかった(
success
が0
となる)場合、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情報を変更することはできない。ただし、プレイヤーのInventory
やEnderItems
の中のアイテムの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
- コマンドを実行する座標を指定する。xとzは-30,000,000以上30,000,000以下でなければならない。チルダ表記法での座標はコマンド実行者基準ではなくターゲット基準となる。
- command: command
- 実行するコマンドを指定する。正しいコマンドでなければならない。
- detectPos: x y z (
detect
指定時のみ)- ブロックをチェックする座標を指定する。x2とz2は-30,000,000以上30,000,000以下でなければならない。(x,y,z)からの相対座標としてチルダ表記法で指定することもできる。
- block: Block (
detect
指定時のみ)- (x2,y2,z2)でチェックするブロックのブロックIDを指定する。block正しいブロックIDでなければならない(例えば
stone
)。
- (x2,y2,z2)でチェックするブロックのブロックIDを指定する。block正しいブロックIDでなければならない(例えば
- 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と同様に動作するが、エンティティの指定は省略可能である。 |