コマンド/execute
{
"title": "<code>/execute</code>",
"rows": [
{
"field": "2<sup class=\"nowrap \" title=\"\">[<i><span class=\" rt-commentedText\" style=\"white-space: nowrap;;\" title=\"この内容は、Java Editionにのみ適用されます。\">(link to Java Edition article, displayed as JE)限定</span></i>]</sup><br>1<sup class=\"nowrap \" title=\"\">[<i><span class=\" rt-commentedText\" style=\"white-space: nowrap;;\" title=\"この内容は、Bedrock Editionにのみ適用されます。\">(link to Bedrock Edition article, displayed as BE)限定</span></i>]</sup>",
"label": "(link to 権限レベル article, displayed as 必要権限レベル)"
},
{
"field": "チート限定<sup class=\"nowrap \" title=\"\">[<i><span class=\" rt-commentedText\" style=\"white-space: nowrap;;\" title=\"この内容は、Bedrock Editionにのみ適用されます。\">(link to Bedrock Edition article, displayed as BE)限定</span></i>]</sup>",
"label": "(link to コマンド#実行制限 article, displayed as 実行制限)"
}
],
"invimages": [],
"images": []
}
/executeは、実行者、実行する位置や方角、前提条件、実行結果の格納先を指定して他のコマンドを実行するコマンドである。
/executeには15種類[Java Edition限定]/11種類[Bedrock Edition限定]のサブコマンドがあり、/executeの後に続けて1つ以上のサブコマンドを記述する。サブコマンドには、文脈指定、ガード、格納先指定[Java Edition限定]、runの4カテゴリ[Java Edition限定]/3カテゴリ[Bedrock Edition限定]に大別される。
- 文脈指定サブコマンドでは、後続のサブコマンドにおける実行文脈を変更する。設定可能な文脈には実行者、位置、ディメンション、方角、座標の基準がある。
- ガードサブコマンドでは、後続のサブコマンドを実行するための条件を指定する。
- 格納先指定サブコマンドでは、コマンドの実行結果をスコアボード、エンティティやブロックエンティティのデータ、ストレージに格納したり、ボスバーの最大値や現在値を変更することができる。[Java Edition限定]
runサブコマンドでは、他のコマンドを指定する。
サブコマンドは互いに連接でき、run以外のサブコマンドは順序不問かつ複数記述できる。runサブコマンドはサブコマンド列の最後に1つのみ指定できる。サブコマンド列の最後にはrunかガードサブコマンドが指定可能である。サブコマンドは前から後ろに順次実行され、以下のようにサブコマンドの順序を変えると、一般には異なる実行結果となる。
/execute as @e at @s run tp ^ ^ ^1全てのエンティティを1ブロック前方に移動させる。/execute at @s as @e run tp ^ ^ ^1全てのエンティティを実行者の1ブロック前にテレポートさせる。
run以外のサブコマンドはrunより前に実行されるので、runサブコマンドは他のサブコマンドに何も影響しない。また、条件次第ではコマンドの実行は中断され、何も起こらないこともある。
Java Editionでは、コマンドが最後まで実行されると、success値とresult値が返る(詳細は#格納先指定サブコマンドを参照)。この2つの値は最後のサブコマンド(ガードかrun)から返ってくるものである。返り値は常に整数値であり、整数値でない場合は負の方向に丸められる。success値は常に0(失敗)か1(成功)のどちらかを取る。コマンドが失敗した場合は双方ともに0である。返り値は格納先指定サブコマンドを使うことで保存できる。最後のサブコマンドが複数回実行されると、各実行ごとに返り値が保存される。
success値やresult値とは別に、/executeには(コマンドが中断されたか否かにかかわらず)成功回数が存在する。これは通常0か1のどちらかであるが、最後のサブコマンドが個別に複数回実行されると、成功回数は1より大きい値となる[Java Edition限定]。コマンドブロックから実行された場合、成功回数はコマンドブロックに返り、条件付きモードのコマンドブロックの実行条件に用いたり、レッドストーンコンパレーターで出力したりできる。
/executeには15種類[Java Edition限定]/11種類[Bedrock Edition限定]のサブコマンドがあり、それぞれ独自の構文を持っているため、構文の記述は大型の木構造になる。
| Command Syntax Tree-Diagram |
|---|
|
この節は内容の更新を必要とします。
この節を更新して、最近のアップデートや新たな情報を反映してください。
|
完全な構文は以下のようになる。
- Java Edition
/execute . . .… align <axes> -> execute… anchored <anchor> -> execute… as <targets> -> execute… at <targets> -> execute… facing (<pos>|entity <targets> <anchor>) -> execute… in <dimension> -> execute… on <relation> -> execute… positioned (<pos>|as <targets>|over <heightmap>) -> execute… rotated (<rot>|as <targets>) -> execute… summon <entity> -> execute… store (result|success) . . .… block <targetPos> <path> <type> <scale> -> execute… bossbar <id> (max|value) -> execute… entity <target> <path> <type> <scale> -> execute… score <targets> <objective> -> execute… storage <target> <path> <type> <scale> -> execute
… (if|unless) . . .… biome <pos> <biome> -> [execute]… block <pos> <block> -> [execute]… blocks <start> <end> <destination> (all|masked) -> [execute]… data . . .… block <sourcePos> <path> -> [execute]… entity <source> <path> -> [execute]… storage <source> <path> -> [execute]
… dimension <dimension> -> [execute]… entity <entities> -> [execute]… function <function> -> [execute]… items . . .... block <pos> <slot> <item> -> [execute]... entity <targets> <slot> <item> -> [execute]
… loaded <pos> -> [execute]… predicate <predicate> -> [execute]… score <target> <targetObjective> . . .… (<|<=|=|>|>=) <source> <sourceObjective> -> [execute]… matches <range> -> [execute]
… run <command>
- ここで
-> executeは他のサブコマンドの開始を表す。
- Bedrock Edition
/execute . . .… align <axes: string> <chainedCommand: ExecuteChainedOption_0>… anchored <eyes|feet> <chainedCommand: ExecuteChainedOption_0>… as <origin: target> <chainedCommand: ExecuteChainedOption_0>… at <origin: target> <chainedCommand: ExecuteChainedOption_0>… facing (<position: x y z>|entity <origin: target> <eyes|feet>) <chainedCommand: ExecuteChainedOption_0>… in <dimension: Dimension> <chainedCommand: ExecuteChainedOption_0>… positioned (<position: x y z>|as <origin: target>) <chainedCommand: ExecuteChainedOption_0>… rotated (<yaw: value> <pitch: value>|as <origin: target>) <chainedCommand: ExecuteChainedOption_0>… <subcommand: Option_If_Unless> . . .… block <position: x y z> <block: Block> [<blockStates: block states>|<data: int>] [chainedCommand: ExecuteChainedOption_0]… blocks <begin: x y z> <end: x y z> <destination: x y z> <scan mode: BlocksScanMode> [chainedCommand: ExecuteChainedOption_0]… entity <target: target> [chainedCommand: ExecuteChainedOption_0]… score <target: target> <objective: string> . . .… <operation: compare operator> <source: target> <objective: string> [chainedCommand: ExecuteChainedOption_0]… matches <range: integer range> [chainedCommand: ExecuteChainedOption_0]
… run <command: command>
- ここで
chainedCommand: ExecuteChainedOption_0は他のサブコマンドの開始を表す。
文脈指定サブコマンドでは、実行位置・実行時の向き・実行者を変更することができる。@eなどを用いると実行文脈を増やすこともでき、一連のコマンドの実行における実行文脈の分岐数はゲームルールmaxCommandForkCountで制限される。
- 指定した座標軸に沿って、コマンドの実行位置を、そこにあるブロックの位置(整数値)に揃える。
- これは座標に床関数を適用した(負の無限大方向に丸めた)ものと考えられる。
- 構文
-
- Java Edition
align <axes> -> execute- Bedrock Edition
align <axes: string> <chainedCommand: ExecuteChainedOption_0>
- 座標の基準を目線か足元に設定する。デフォルトでは足元である。
positioned <pos> -> executeを実行すると、足元に再設定される。- ローカル座標の原点が目線と足元のどちらかになり、
facingサブコマンドの角度にも影響する。- 構文
-
- Java Edition
anchored <anchor> -> execute- Bedrock Edition
anchored <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
- 実行者(ターゲットセレクター
@s)を指定したエンティティに設定する。実行位置、方角、ディメンション、座標の基準は変わらない。- 構文
-
- Java Edition
as <targets> -> execute- Bedrock Edition
as <origin: target> <chainedCommand: ExecuteChainedOption_0>
- 引数
- JE:
<targets>:エンティティ - BE:
origin: target- 実行者として設定したい対象エンティティ。
- プレイヤー名、ターゲットセレクター、UUIDのいずれかでなければならない。[Java Edition限定]
- 結果
- 指定したエンティティが実行者
@sに設定される。 - 引数が正しく指定されていない場合、解析不能となる。
<targets>かorigin: targetに適合するエンティティが1体も存在しない場合(名前付きのプレイヤーはオンラインである必要がある)は、そこで実行が終了する。- 複数のエンティティが見つかった場合は、次のサブコマンドは各実行者ごとに1度ずつ実行される。
- 例
- 全てのヒツジのデータを取得:
/execute as @e[type=sheep] run data get entity @s[Java Edition限定] - 読み込みチャンク内の村人全員を不死身にする:
/execute as @e[type=villager] run data merge entity @s {Invulnerable:1b}[Java Edition限定]
- 実行位置、方角、ディメンションを指定したエンティティと同じになるように設定する。実行者は変わらない。
- 構文
-
- Java Edition
at <targets> -> execute- Bedrock Edition
at <origin: target> <chainedCommand: ExecuteChainedOption_0>
- 引数
- JE:
<targets>:エンティティ - BE:
origin: target- 実行位置、方角、ディメンションの基準にしたいエンティティ。
- プレイヤー名、ターゲットセレクター、UUIDのいずれかでなければならない。[Java Edition限定]
- 結果
- 実行位置、方角、ディメンションが対象エンティティのものに設定される。
- 引数が正しく指定されていない場合、解析不能となる。
<targets>かorigin: targetに適合するエンティティが1体も存在しない場合(名前付きのプレイヤーはオンラインである必要がある)は、そこで実行が終了する。- 複数のエンティティが見つかった場合は、次のサブコマンドは各エンティティごとにその実行位置、方角、ディメンションが与えられたものとして1度ずつ実行される。
- 例
- 全てのヒツジを1ブロック上に移動:
/execute as @e[type=sheep] at @s run tp ~ ~1 ~ atでは実行者は変わらないので、この場合死亡するのは実際にコマンドを実行したプレイヤーである:/execute at @e[type=sheep] run kill @s
- 実行方角を、基準(目線か足元)から指定した地点を向いているものとして設定する。
- 構文
-
- Java Edition
facing <pos> -> executefacing entity <targets> <anchor> -> execute- Bedrock Edition
facing <position: x y z> <chainedCommand: ExecuteChainedOption_0>facing entity <origin: target> <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
- 引数
- オプション:facing <pos>
- オプション:facing entity <targets> <anchor>
- 結果
- 指定した位置や対象を向くように実行方角が設定される。
- 引数が正しく指定されていない場合、解析不能となる。
<targets>かorigin: targetに適合するエンティティが1体も存在しない場合(名前付きのプレイヤーはオンラインである必要がある)は、そこで実行が終了する。- 複数のエンティティが見つかった場合は、次のサブコマンドは各エンティティごとにそちらを向いているものとして1度ずつ実行される。
- 例
- 実行者を左に向かせる:
/execute facing ^1 ^ ^ run tp ~ ~ ~[Java Edition限定] - 全てのエンティティを (0, 64, 0) に向かって1ブロック移動させる(姿勢は変わらない):
/execute as @e at @s facing 0 64 0 run tp @s ^ ^ ^1 - 全てのエンティティを (0, 64, 0) に向かって1ブロック移動させる(姿勢も変わる):
/execute as @e at @s facing 0 64 0 run tp @s ^ ^ ^1 ~ ~ - プレイヤーでないエンティティを、最寄りのプレイヤーに向かって1ブロック移動させる(姿勢は変わらない):
/execute as @e[type=!player] at @s facing entity @p feet run tp @s ^ ^ ^1
- 実行ディメンションを設定する。
- 相対およびローカル座標にはディメンションの縮尺が適用される。オーバーワールドからネザーに変更する時には実行位置の値のX、Z成分が8分の1され、その逆ならば8倍される。カスタムディメンションにも同様に適用される。
- 構文
-
- Java Edition
in <dimension> -> execute- Bedrock Edition
in <dimension: Dimension> <chainedCommand: ExecuteChainedOption_0>
- 結果
- 実行ディメンションが変更される。
- 引数が正しく指定されていない場合、解析不能となる。
- 例
- オーバーワールドにいながら、エンドシティを見つける:
/execute in the_end run locate structure minecraft:end_city - プレイヤーがオーバーワールドの (16, 64, 16) にいる時、
/execute in minecraft:the_nether positioned as @s run tp ~ ~ ~を実行すると、ネザーの (16, 64, 16) に移動する。 - プレイヤーがオーバーワールドの (16, 64, 16) にいる時、
/execute in minecraft:the_nether run tp ~ ~ ~を実行すると、ネザーの (2, 64, 2) に移動する。 - プレイヤーがオーバーワールドの (80, 64, 80) にいる時、
/execute in minecraft:the_nether run tp ~ ~ ~5を実行すると、ネザーの (10, 64, 15) に移動する。
- 実行エンティティの関係性を、現在実行者となっているエンティティとの関係に基づいて指定する。
- 構文
-
- Java Edition
on <relation> -> execute
- 引数
- JE:
<relation>- 現在実行者となっているエンティティとの関係。
attacker:実行者を直近5秒以内に攻撃したエンティティ。controller:実行者を操縦しているエンティティ。leasher:実行者をリードで引き連れているエンティティ。origin:実行者の発生元であるエンティティ。- 飛翔体なら発射したエンティティ、アイテムなら投げたエンティティ、エリアエフェクトクラウドなら効果元、着火されたTNTなら着火したエンティティ、エヴォーカーの牙やヴェックスなら召喚者がこれに該当する。
owner:実行者が飼い慣らせる動物であるとき、その飼い主であるエンティティ。passengers:実行者に直接騎乗しているエンティティ。騎乗者のさらなる騎乗者は含まれない。target:実行者が攻撃対象としているエンティティ。vehicle:実行者が騎乗しているエンティティ。
- 現在実行者となっているエンティティとの関係。
- 結果
- 指定された関係性が実行者に適合しないか、エンティティが1体も該当しない場合は、0個の要素が返る。
- 引数が正しく指定されていない場合、解析不能となる。
- 引数で指定されたエンティティが1体も存在しない場合(名前付きのプレイヤーはオンラインである必要がある)は、そこで実行が終了する。
- 例
- ヒツジを攻撃したエンティティを全員死亡させる:
/execute as @e[type=sheep] on attacker run kill @s
- 実行位置を指定した座標、エンティティ、あるいはハイトマップの表面と同じになるように設定する。実行方角とディメンションは変わらない。
- 構文
-
- Java Edition
positioned <pos> -> executepositioned as <targets> -> executepositioned over <heightmap> -> execute- Bedrock Edition
positioned <position: x y z> <chainedCommand: ExecuteChainedOption_0>positioned as <origin: target> <chainedCommand: ExecuteChainedOption_0>
- 引数
- オプション:positioned <pos>
- オプション: positioned as <targets>
- JE:
<targets>:エンティティ - BE:
origin: target- 実行位置の基準にしたいエンティティ。
- プレイヤー名、ターゲットセレクター、UUIDのいずれかでなければならない。
- JE:
- オプション:positioned over <heightmap>
- JE:
<heightmap>:リソース位置(登録済)
- JE:
- 結果
- 実行位置が変更される。また座標の基準が足元に設定される。
- 引数が正しく指定されていない場合、解析不能となる。
<targets>かorigin: targetに適合するエンティティが1体も存在しない場合(名前付きのプレイヤーはオンラインである必要がある)は、そこで実行が終了する。- 複数のエンティティが見つかった場合は、次のサブコマンドは各エンティティごとにその位置にいるものとして1度ずつ実行される。
- 例
- (0, 64, 0) から近くの村を探す
/execute positioned 0 64 0 run locate structure #village[Java Edition限定]/execute positioned 0 64 0 run locate structure village[Bedrock Edition限定]
- 実行方角を指定した角度あるいはエンティティと同じになるように設定する。
- 構文
-
- Java Edition
rotated <rot> -> executerotated as <targets> -> execute- Bedrock Edition
rotated <yaw: value> <pitch: value> <chainedCommand: ExecuteChainedOption_0>rotated as <origin: target> <chainedCommand: ExecuteChainedOption_0>
- 引数
- JE:
<rot>:行俯角・水平角(<yaw> <pitch>) - BE:
yaw: valueandpitch: value - JE:
<targets>:エンティティ - BE:
origin: target- 実行方角の基準にしたいエンティティ。
- プレイヤー名、ターゲットセレクター、UUIDのいずれかでなければならない。[Java Edition限定]
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
<targets>かorigin: targetに適合するエンティティが1体も存在しない場合(名前付きのプレイヤーはオンラインである必要がある)は、そこで実行が終了する。- 複数のエンティティが見つかった場合は、次のサブコマンドは各エンティティごとにそれと同じ方角を向いているものとして1度ずつ実行される。
- 例
- 全てのヒツジを、最寄りのプレイヤーが向いている方向に1ブロック移動させる:
/execute as @e[type=sheep] at @s rotated as @p run tp @s ^ ^ ^1
- 新たな実行者となるエンティティを召喚し、そのエンティティを実行者
@sに設定する。- 構文
-
- Java Edition
summon <entity> -> execute
- 引数
- JE:
<entity>:リソース位置(登録済)- 召喚して後続のサブコマンドの実行者になるエンティティ。
- 所定のレジストリ下にある、既存の登録済みリソース位置でなければならない。
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- 例
- ヒツジを召喚し、タグ「Test」を追加する:
execute summon sheep run tag @s add Test
ifあるいはunlessサブコマンドの主な用途は、指定した条件下でのみコマンドが実行されるように制約を加えることである。多くの場合、unlessはifの否定、すなわち「…でなければ」に相当する。受け取れる引数はどちらも同じである。
- ガードサブコマンドの結果:
- 引数が正しく指定されていない場合、解析不能となる。
- 一部の状況では、例えばワールド外のブロックを判定しようとすると、
if、unlessともに失敗し、そこで処理が中断する。 - サブコマンド列の終端でなければ、条件を満たした場合のみ後続のサブコマンドが実行され、さもなくば終了する。複数の変数(実行者、実行位置、実行方角など)に対して複数回実行された場合、それは変数のフィルタリング、すなわち条件を満たした変数のみが次のサブコマンドを実行するように動作する。
- サブコマンド列の終端にある時、条件を満たしているかどうかを出力する。
- 条件の形式には10種類[Java Edition限定]/4種類[Bedrock Edition限定]存在する。
- (if|unless) biome – バイオームを判定する。[Java Edition限定]
- (if|unless) block – 単体のブロックを判定する。
- (if|unless) blocks – 直方体の領域同士を比較する。
- (if|unless) data – ブロック、エンティティ、ストレージのデータを判定する。[Java Edition限定]
- (if|unless) dimension - 指定したディメンション内での実行になるかどうかを判定する。
- (if|unless) entity – 指定したエンティティが存在するかどうか判定する。
- (if|unless) function - 関数を実行し、その戻り値を判定する。
- (if|unless) items - 対象が条件にあったアイテムを持っているかどうか判定する。[Java Edition限定]
- (if|unless) loaded - 指定した座標が読み込まれているかどうかを判定する。
- (if|unless) predicate – 指定したプレディケートを判定する。[Java Edition限定]
- (if|unless) score - 対象のスコアを判定する。
- (if|unless) slots - 条件を満たすスロット(のうち対象に存在するもの)の数が1以上であるかどうか確認する。
- (if|unless) stopwatch - ストップウォッチの時刻を確認する。[Java Edition限定]
- 構文
(if|unless) biome <pos> <biome> -> [execute]
- 引数
<pos>:biome_pos- バイオームを判定したい位置の座標
<biome>:biome_predicate- 判定に使う有効なバイオームID
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- 以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
<pos>がワールドの読み込み範囲外にある時。- 指定した条件を満たさない場合。
- サブコマンド列の終端である場合、コマンドが成功した時には
success値とresult値は1になる。
- 指定した位置のブロックと、指定したブロックIDやブロックタグを比較する。
- 構文
-
- Java Edition
(if|unless) block <pos> <block> -> [execute]- Bedrock Edition
<subcommand: Option_If_Unless> block <position: x y z> <block: Block> [chainedCommand: ExecuteChainedOption_0]<subcommand: Option_If_Unless> block <position: x y z> <block: Block> <blockStates: block states> [chainedCommand: ExecuteChainedOption_0]
ブロックIDの条件は必須であり、リソース位置で指定する。名前空間はminecraft:なら省略可能。#を前置すれば、ブロックタグの名前空間IDも条件として使用できる(例:#minecraft:planks)。
[]の中には、ブロック状態に関する条件を記述できる。これは省略可能。=で結んだブロック状態名とその値の組を、,で並べて記述する。- ブロック状態名は、指定したブロック(ブロックタグの場合は、含まれるいずれかのブロック)に存在するものでなくてはならない。
- 例えば
minecraft:stone[doesntexist=purpleberry]は、ブロックstoneにブロック状態doesntexistが存在しないため解析不能になる。
- 例えば
- ブロック状態の値は、指定のブロック状態が取りうる値でなくてはならない。
- 例えば
minecraft:redstone_wire[power=tuesday]は、ブロック状態redstone_wireの許容値が0以上15以下の数値であるため解析不能になる。
- 例えば
{}の中には、ブロックエンティティデータに関する条件をNBTで記述できる。これは省略可能。
- ブロック状態・ブロックエンティティデータのいずれも、指定のないものについてはどんな値でも許容する。
-
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- 以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
<pos>/position: x y zがワールドの読み込み範囲外にある時。- 指定した条件を満たさない場合。
- サブコマンド列の終端である場合、コマンドが成功した時には
success値とresult値は1になる。
- 同じ寸法の領域同士でブロックを比較する。
- 構文
-
- Java Edition
(if|unless) blocks <start> <end> <destination> (all|masked) -> [execute]- Bedrock Edition
<subcommand: Option_If_Unless> blocks <begin: x y z> <end: x y z> <destination: x y z> <scan mode: BlocksScanMode> [chainedCommand: ExecuteChainedOption_0]
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- 以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
<start>/begin: x y z、<end>/end: x y z、<destination>/destination: x y zのいずれかがワールドの読み込み範囲外にある時。- 比較元の領域の体積が32768(8チャンク区画分に相当)を超えるとき。
- 指定した条件を満たさない場合。
- サブコマンド列の終端である場合、コマンドが成功した時には
success値は1になる。ifモードの時、result値は一致したブロックの数(allモードでは総数、maskedモードでは空気でないブロックの数)となる。unlessモードの時、result値は1となる。
- 対象ブロック、エンティティ、ストレージが指定したパスのデータタグを持っているかどうか判定する。
- 構文
- ブロック:
(if|unless) data block <pos> <path> -> [execute] - エンティティ:
(if|unless) data entity <target> <path> -> [execute] - ストレージ:
(if|unless) data storage <source> <path> -> [execute]
- 引数
- オプション:
(if|unlessdata block <pos> <path>}} - オプション:
(if|unlessdata entity <target> <path>}}<target>:エンティティ- データを判定したい単体のエンティティ。
- プレイヤー名、ターゲットセレクター、UUIDのいずれかでなければならない。
<path>:NBTパス- エンティティが持っているかどうか判定したいデータパス。
- NBTパスの形式で記述しなければならない。
- オプション:
(if|unlessdata storage <source> <path>}}
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- 以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
<pos>がワールドの読み込み範囲外にある時。<pos>のブロックがブロックエンティティでない時。<target>に適合するエンティティが1体でない時(名前付きのプレイヤーはオンラインである必要がある)。- 指定した条件を満たさない場合。
- サブコマンド列の終端である場合、コマンドが成功した時には
success値は1になる。ifモードの時、result値は一致したデータタグの数となる。unlessモードの時、result値は1となる。
- 指定したディメンション内での実行になるかどうかを判定する。
- 構文
(ifunless) dimension <dimension> -> [execute]
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- 指定した条件を満たさない場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
- サブコマンド列の終端である場合、コマンドが成功した時には
success値は1になる。ifモードの時、result値は検出したエンティティの数となる。unlessモードの時、result値は1となる。
- 指定したエンティティが1体以上存在するか判定する。
- 構文
-
- Java Edition
(if|unless) entity <entities> -> [execute]- Bedrock Edition
<subcommand: Option_If_Unless> entity <target: target> [chainedCommand: ExecuteChainedOption_0]
- 引数
- JE:
<entities>:エンティティ - BE:
target: target- 判定したいエンティティ
- プレイヤー名、ターゲットセレクター、UUIDのいずれかでなければならない。[Java Edition限定]
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- 指定した条件を満たさない場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
- サブコマンド列の終端である場合、コマンドが成功した時には
success値は1になる。ifモードの時、result値は検出したエンティティの数となる。unlessモードの時、result値は1となる。
- 関数または関数タグを実行し、その戻り値が以下に示す条件を満した場合に続きを実行する。
- 構文
(if|unless) function <function> -> [execute]
- 結果
- 引数が正しく指定されていない場合、解析不能になる。
- 実行された関数のうち少なくとも一つが次の条件を満たす場合は
ifは通過、unlessは失敗する。/returnコマンドによって戻り値が与えられている。- この戻り値が0でない。
- 0以外の戻り値が与えられた場合は
ifは失敗、unlessは成功する。 /returnコマンドによって戻り値が与えられたコマンドが一つもない場合はif構文は失敗、unless構文は通過する。
- 対象が条件にあったアイテムを持っているかどうか判定する。
- 構文
- ブロック:
(if|unless) items block <pos> <slot> <item> -> [execute] - エンティティ:
(if|unless) items entity <targets> <slot> <item> -> [execute]
<種類>は必須であり、次の3つのうちいずれかを用いてアイテムの種類に関する条件を指定する。
- アイテムのリソース位置(例:
minecraft:stone) - アイテムタグの名前空間ID(例:
#minecraft:meat) *(あらゆる種類のアイテム)- ここで、名前空間は
minecraft:に限り省略できる。
- ここで、名前空間は
<追加条件群>には、条件を,または|で区切って並べる。これは省略可能である。
,は「かつ」を、|は「または」を表す。- 例えば
A, B| Cは A ∧ (B ∨ C) を表す。 - 注:(A ∧ B) ∨ C とはならない。
- 例えば
各条件には、次の3つの形式が使用できる。
<コンポーネントID>=<値>- コンポーネントの値を確認する。- 例:
damage=5- 耐久値が5だけ減っているアイテムにマッチする。 - この形式では、値は完全一致で確認される。
- 例えば
enchantments: {sharpness: 1}はダメージ増加 Iのみを持っているアイテムにマッチするが、他にエンチャントを持っているアイテムにはマッチしない。
- 例えば
- 例:
<コンポーネントID>- コンポーネントそのものの存在を確認する。<タグ名>~<値>- コンポーネントプレディケートを使って、コンポーネントの値をより柔軟に確認する。- 例:
damage~{durability:{min:3}}- 耐久値が残り3以上のアイテムにマッチする。 - 例:
custom_data~{a:2}- コンポーネントcustom_dataにa: 2というタグを持つアイテムにマッチする。custom_data内の他のタグに関しては問わない。
- 例:
- コンポーネントでもコンポーネントプレディケートでもないが、
minecraft:countもスタック数を確認するために上の3方式と同様に扱うことができる。count=<正整数>: スタック数が指定値に等しい場合にマッチ。count: スタック数のデータは常に存在するため、これは常にマッチする。count~{max: <最大値>, min: <最小値>}: スタック数を範囲で確認。最大値、最小値はそれぞれ省略可。
- すべての条件は
!を前置することで否定できる。- 例:
!count=1は個数が1以外のアイテムスタックにマッチ。
- 例:
- 結果
- 引数が正しく指定されていない場合、解析不能になる。
- 以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
<pos>がワールドの読み込み範囲外にある時。<pos>のブロックがブロックエンティティでない時。<targets>に適合するエンティティがいない時。
- サブコマンド列の終端である場合、コマンドが成功した時には
success値は1になる。ifモードの時、result値は対象が持っていた条件を満たすアイテムの個数となる。unlessモードの時、result値は1となる。
- 指定された位置が、ブロックとエンティティの両方について完全に読み込まれているかどうかを判定する。
- 構文
(ifunless) loaded <pos> -> [execute]
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- 指定した条件を満たさない場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
- サブコマンド列の終端である場合、コマンドが成功した時には
success値は1になる。ifモードの時、result値は検出したエンティティの数となる。unlessモードの時、result値は1となる。
- プレディケートが通過するかどうかをテストする。プレディケートも参照。
- 構文
(if|unless) predicate <プレディケート> -> [execute]
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- このサブコマンドが最後のサブコマンドかどうかにより振る舞いが異なる。
- 次の場合、このコマンドは失敗する。
- 指定したプレディケートが存在しない。
- 指定のプレディケートの通過に失敗した。
- これが最後のサブコマンドなら「失敗」を返す。
- まだサブコマンドが続く場合ここでは実行を中断する。
- それ以外の場合コマンドは成功する。
- これが最後のコマンドなら「成功」を返し、
success値とresult値は1になる。 - まだサブコマンドが続く場合は実行を継続する。
- これが最後のコマンドなら「成功」を返し、
- スコアと他のスコアを比較、あるいは所定の範囲内にあるかどうかを判定する。
- 構文
-
- Java Edition
- 2つのスコアを比較:
(if|unless) score <target> <targetObjective> (<|<=|=|>=|>) <source> <sourceObjective> -> [execute] - スコアと範囲を比較:
(if|unless) score <target> <targetObjective> matches <range> -> [execute] - Bedrock Edition
- 2つのスコアを比較:
<subcommand: Option_If_Unless> score <target: target> <objective: string> <operation: compare operator> <source: target> <objective: string> [chainedCommand: ExecuteChainedOption_0] - スコアと範囲を比較:
<subcommand: Option_If_Unless> score <target: target> <objective: string> matches <range: integer range> [chainedCommand: ExecuteChainedOption_0]
- 引数
- JE:
<target>:スコアホルダー - BE:
target: target- スコアの所有者。
- ターゲットセレクター、プレイヤー名、UUID、
*(スコアボードシステムで追跡されている全スコアホルダー)のいずれかでなければならない。プレイヤー名の場合、オンラインのプレイヤーである必要はもちろん、存在しないプレイヤーの名前でもよい。
- JE:
<targetObjective>:オブジェクト - BE:
objective: string- 比較に使用したいオブジェクト。<target>の<targetObjective>のスコアが判定に使われる。
- 一単語(=空白を含まない)の文字列でなければならない(使用可能文字:
-,+,.,_、A-Z、a-z、0-9)。スコアボードのオブジェクト名への解釈試行は実行中に行われる。
- オプション:
(<|<=|=|>=|>) <source> <sourceObjective>- JE:
<source>:スコアホルダー - BE:
source: target- 比較対象にしたいスコアの所有者。
- ターゲットセレクター、プレイヤー名、UUID、
*(スコアボードシステムで追跡されている全スコアホルダー)のいずれかでなければならない。プレイヤー名の場合、オンラインのプレイヤーである必要はもちろん、存在しないプレイヤーの名前でもよい。
- JE:
<sourceObjective>:オブジェクト - BE:
objective: string- オブジェクト。<source>の<sourceObjective>のスコアが判定に使われる。
- 一単語(=空白を含まない)の文字列でなければならない(使用可能文字:
-,+,.,_、A-Z、a-z、0-9)。スコアボードのオブジェクト名への解釈試行は実行中に行われる。
- JE:
- オプション:
matches <range>
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- 以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
<target>/target: targetかsource/source: targetが*であるとき。- 指定した条件を満たさない場合。
- サブコマンド列の終端である場合、コマンドが成功した時には
success値とresult値は1になる。
条件を満たすスロット(のうち対象に存在するもの)の数が1以上であるかどうか確認する。
- 構文
(if|unless) slots (block <pos>|entity <targets>) <slots> -> [execute]
- 引数
<pos>:ブロック座標- 確認する収納系ブロックエンティティの座標。
- X・Y・Z成分を空白で区切って並べた形ブロック座標でなければならない。各成分の表記には、整数または
~を用いた相対表記が使用できる。 <targets>:エンティティ- 確認するエンティティ。
- プレイヤー名、ターゲットセレクター、UUIDのいずれかでなければならない。
<slots>:スロット供与子- 確認するスロット。
- スロットID(単数・複数いずれも可、一覧はこちら)、スロット供与子のリソース位置、インラインのスロット供与子のいずれかで指定する。
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- 以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
<pos>がワールド外である。<pos>に収納系ブロックエンティティがない。<targets>に該当するエンティティがいない。
- サブコマンド列の終端である場合、コマンドが成功した時には
success値は1、result値はスロットの数になる。
- ストップウォッチの時間を確認する。
- 構文
(if|unless) stopwatch <ID> <範囲> -> [execute]
<範囲>:範囲(浮動小数点数)- 時間の範囲の条件。秒単位で指定し、最小精度はミリ秒となる。
- 以下の形式による、浮動小数点数の範囲でなければならない(例:
0.1- 丁度0.1。..0.1- 0.1以下。0.1..- 0.1以上。0.1..1- 0.1–1の間の開区間。)。
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- このサブコマンドが最後のサブコマンドかどうかにより振る舞いが異なる。
- 次の場合、このコマンドは失敗する。
- 指定したストップウォッチが存在しない。
- 指定したストップウォッチの時刻が範囲外である。
- これが最後のサブコマンドなら「失敗」を返す。
- まだサブコマンドが続く場合ここでは実行を中断する。
- それ以外の場合コマンドは成功する。
- これが最後のコマンドなら「成功」を返し、
success値とresult値は1になる。 - まだサブコマンドが続く場合は実行を継続する。
- これが最後のコマンドなら「成功」を返し、
- 羊毛に乗っているプレイヤーを全員死亡させる:
/execute as @a at @s if block ~ ~-1 ~ #wool run kill @s - 実行者のスコアAとスコアBが等しいかどうか判定する:
/execute if score @s A = @s B
最後のコマンドのresult値とsuccess値を保存する場所を指定する。他のサブコマンドとともに最初に実行され、格納先を記録しておき、最後のサブコマンドが実行された後でそこに値を保存する。コマンドの返り値は整数でなければならず、非整数は負の方向に丸められる。
ストレージにより5つのモードが存在する。
- store (result|success) block – ブロックのNBTに保存する。
- store (result|success) bossbar – ボスバーに保存する。
- store (result|success) entity – エンティティのNBTに保存する。
- store (result|success) score – 対象のスコアに保存する。
- store (result|success) storage – ストレージのNBTに保存する。
- コマンドの返り値をブロックエンティティのタグデータに保存する。byte、short、int、long、float、double型の値として保存される。返り値が小数の時は、丸められてから
<scale>の値が乗算される。
- 構文
store (result|success) block <targetPos> <path> <type> <scale> -> execute
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- パスが存在しない場合は何も保存しない。
コマンドの返り値をボスバーの現在値か最大値として保存する。
- 構文
store (result|success) bossbar <id> (value|max) -> execute- 引数
<id>:リソース位置- 格納先としたいボスバーのID。
value|max- ボスバーの現在値(
value)と最大値(max)のどちらに上書きしたいか。
- ボスバーの現在値(
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- コマンドの返り値をエンティティのデータタグに保存する。byte、short、int、long、float、double型の値として保存される。返り値が小数の時は、丸められてから
<scale>の値が乗算される。/dataコマンドと同様、/execute storeはプレイヤーのNBTを上書きすることはできない。
- 構文
store (result|success) entity <target> <path> <type> <scale> -> execute
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- パスが存在しない場合は何も保存しない。
- コマンドの返り値で
<targets>の<objective>のスコアを上書きする。
- 構文
store (result|success) score <targets> <objective> -> execute
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
- コマンドの返り値を
<target>ストレージの<path>に保存する。byte、short、int、long、float、double型の値として保存される。返り値が小数の時は、丸められてから<scale>の値が乗算される。存在しないストレージを指定した場合は新たに作成される、
- 構文
store (result|success) storage <target> <path> <type> <scale> -> execute
- 結果
- 引数が正しく指定されていない場合、解析不能となる。
runコマンドは引数として実行されるコマンドを取り、サブコマンドで変更した変数が利用できる。
- 構文
-
- Java Edition
run --><command>- Bedrock Edition
run <command: command>
- 技術的情報
- コマンドノードをコマンドディスパッチャーのルートとして再設定する。
- チャットテキストとしてのコマンド構築に関する情報:
- コマンドディスパッチャーは、プレイヤーがスラッシュ(
/)でメッセージを入力し始めた時に立ち上がるものである。 - コマンドノードは、今カーソルで編集中の特定のワード部分のことで、コマンドか引数のどちらかである。
- ルートノードは現在のコマンドの最初のワードより前に存在する。
- コマンドディスパッチャーは、プレイヤーがスラッシュ(
- 結果
- コマンドを実行する。
<command>かcommand: commandの失敗は/execute全体の失敗として扱われる。
- 効率強化のエンチャントが付与されたアイテムをホットバーの1番目に入れているプレイヤー全員を、(0, 64, 0) の位置に移動させる:
/execute as @a if data entity @s Inventory[{Slot:0b}].tag.Enchantments[{id:"minecraft:efficiency"}] run tp @s 0 64 0[Java Edition限定]
- プレイヤー全員の目の前3ブロックのところに煙のパーティクルを発生させる:
/execute as @a at @s anchored eyes run particle smoke ^ ^ ^3[Java Edition限定]
- 実行者から5ブロック以内にいるブタに鞍を装着し、5ブロックより離れたところにいるブタから鞍を取り外す:
/execute as @e[type=pig] at @s store success entity @s Saddle byte 1 if entity @p[distance=..5][Java Edition限定]
- 水中にいるプレイヤーにチャットで「足がずぶ濡れだよ!!!」と発言させる:
/execute as @a at @s if block ~ ~ ~ water run say "足がずぶ濡れだよ!!!"
/scoreboard players reset @s testを実行したなどでスコア「test」がセットされていないプレイヤーに「スコアをリセットしました」と発言させる:/execute as @a unless score @s test = @s test run say "スコアをリセットしました"
- 最寄りのプレイヤーから3ブロック以内にいるブタを全て空に放り投げる:
/execute at @p as @e[type=pig,distance=..3] run data merge entity @s {Motion:[0.0,2.0,0.0]}[Java Edition限定]
- 頭部に何も装備していないゾンビ全員を死亡させる:
/execute as @e[type=zombie] unless data entity @s ArmorItems[3].id run kill @s[Java Edition限定]
| Java Edition | |||||||
|---|---|---|---|---|---|---|---|
| 1.8 | 14w07a | /executeが追加された。 | |||||
| 1.8 | 14w08a | コマンドが実行成功時の返り値をコマンドブロックに渡すようになった。 | |||||
| 1.11 | 16w32a | ブロック状態のサポートが追加された。 | |||||
| 1.13 | 17w45a | 構文が分割された。 | |||||
| 17w45b | /execute storeが再び動作するようになった。 | ||||||
| 18w02a | コマンドをより柔軟に操作するための新しいサブコマンドが追加された。 | ||||||
| 18w05a | /execute store bossbarサブコマンドが追加された。 | ||||||
| 1.14 | 18w43a | /execute (if|unless) dataサブコマンドが追加された。 | |||||
| 1.15 | 19w38a | /execute if predicate <predicate>サブコマンドが追加された。
| |||||
/execute store storageサブコマンドが追加された。 | |||||||
| 1.19.3 | 22w46a | /execute (if|unless) biomeサブコマンドが追加された。 | |||||
| 1.19.4 | 23w03a | /execute onサブコマンドが追加された。
| |||||
/execute (if|unless) dimension・/execute (if|unless) loadedサブコマンドが追加された。 | |||||||
| 23w04a | /execute onサブコマンドの引数に指定できる値originが追加された。 | ||||||
| 1.19.4 | 23w06a | /execute summonサブコマンドが追加された。 | |||||
| Pre-release 1 | /execute positionedサブコマンドに引数over <heightmap>が指定できるようになった。 | ||||||
| 1.20.2 | 23w31a | /execute (if|unless) functionサブコマンドが追加された。 | |||||
| Pre-release 1 | バグの修正のために根本的な変更を要することが発覚したため/execute (if|unless) functionサブコマンドの開発が延期され、一時的に削除された。 | ||||||
| 1.20.3 | 23w41a | /execute (if|unless) functionサブコマンドが再追加された。 | |||||
| 1.20.3 | 23w44a | 実行されたコマンドにreturnが存在しない場合は、if構文は失敗、unless構文は通過するようになった。従来はどちらの構文も失敗していた。
| |||||
各実行文脈において、呼び出された関数内の最初の/returnが戻り値を与えるようになった。 | |||||||
| 1.20.5 | 24w10a | /execute (if|unless) itemsサブコマンドが追加された。 | |||||
| 24w12a | /execute (if|unless) predicateにおいて、プレディケートを本来のJSONをNBT文字列に変換したものでそのまま指定できるようになった。 | ||||||
| 1.21.11 | 25w41a | /execute (if|unless) stopwatchサブコマンドが追加された。 | |||||
| 26.3 | snapshot-1 | /execute (if|unless) slotsサブコマンドが追加された。 | |||||
| Pocket Edition Alpha | |||||||
| v0.16.0 | build 1 | /executeが追加された。
| |||||
| Java Edition 1.10と同様に動作するが、エンティティの指定は省略可能である。 | |||||||
| Bedrock Edition | |||||||
| 今後のクリエイター機能 (実験) | beta 1.19.10.20 | /executeの構文がJava Editionのものに近くなった。 | |||||
| beta 1.19.40.20 | /execute rotatedコマンドが実装された。 | ||||||
| beta 1.19.40.21 | /execute facingと/execute alignコマンドが実装された。 | ||||||
| beta 1.19.40.23 | /execute anchoredと/execute inコマンドが実装された。 | ||||||
| 1.19.50 | beta 1.19.50.23 | /executeの新構文が、「今後のクリエイター機能」実験トグルを有効にしなくても利用可能になった。 | |||||
| 1.19.70 | beta 1.19.70.21 | /execute <if|unless> blockから引数data: intが削除された。 | |||||