コマンド/execute

提供: Minecraft Wiki
(Executeから転送)
ナビゲーションに移動 検索に移動
/execute
必要権限レベル

2‌[JE限定]
1‌[BE限定]

実行制限

チート限定‌[BE限定]

/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限定]のサブコマンドがあり、それぞれ独自の構文を持っているため、構文の記述は大型の木構造になる。

完全な構文は以下のようになる。

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>
引数
JE:<axes>:座標軸
BE:axes: string
座標軸名x、y、zの組み合わせで記述する。順番は問わないが重複は不可能である(例:x、xz、zyx、yzなど)。
結果
指定した座標軸に沿った実行位置の値が丸められる。差分は1ブロック未満となる。
引数が正しく指定されていない場合、解析不能となる。
例
  • 実行位置が (-1.8, 2.3, 5.9) の時、/execute align xzにより (-2, 2.3, 5) となる。
  • 実行位置が (2.4, -1.1, 3.8) の時、/execute align yxz run spawnpoint @p ~ ~ ~を実行すると、プレイヤーのスポーン地点が (2, -2, 3)‌[JE限定]/(2, -1, 3)‌[BE限定] に設定される。
座標の基準を目線か足元に設定する。デフォルトでは足元である。
positioned <pos> -> executeを実行すると、足元に再設定される。
ローカル座標の原点が目線と足元のどちらかになり、facingサブコマンドの角度にも影響する。
構文
Java Edition
anchored <anchor> -> execute
Bedrock Edition
anchored <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
引数
JE:<anchor>:基準位置(eyesかfeet)
BE:eyes|feet
目線と足元のどちらに基準を合わせるか。
結果
座標の基準が目線か足元のどちらかに設定される。
引数が正しく指定されていない場合、解析不能となる。
例
/tpコマンドは、足元が指定した位置になるように対象を移動させる。
/execute anchored eyes run tp ^ ^ ^を実行すると、座標の基準が目線になるので、移動先の足元が元々の目線の位置になるように実行者を移動させる。
/execute anchored eyes run tp ^5 5 5は、目線の5ブロック左側に実行者の足元が来るように移動させる。
実行者(ターゲットセレクター@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> -> execute
facing 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>
JE:<pos>:3次元座標・ベクトル
BE:position: x y z
向き先の座標。
倍精度浮動小数点数で構成される3次元座標でなければならない。相対座標・ローカル座標を使用できる。
オプション:facing entity <targets> <anchor>
JE:<targets>:エンティティ
BE:origin: target
向き先の対象エンティティ。
プレイヤー名、ターゲットセレクター、UUIDのいずれかでなければならない。
JE:<anchor>:基準位置(eyesかfeet)
BE:eyes|feet
目線と足元のどちらに基準を合わせるか。
結果
指定した位置や対象を向くように実行方角が設定される。
引数が正しく指定されていない場合、解析不能となる。
<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>
引数
JE:<dimension>:ディメンション
BE:dimension: Dimension
変更先のディメンション名
リソース位置でなければならない。ディメンションへの解釈試行は実行中に行われる。 minecraft名前空間には標準でoverworld、the_nether‌[JE限定]/nether‌[BE限定]、the_endが用意されている。
結果
実行ディメンションが変更される。
引数が正しく指定されていない場合、解析不能となる。
例
オーバーワールドにいながら、エンドシティを見つける:/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> -> execute
positioned as <targets> -> execute
positioned over <heightmap> -> execute
Bedrock Edition
positioned <position: x y z> <chainedCommand: ExecuteChainedOption_0>
positioned as <origin: target> <chainedCommand: ExecuteChainedOption_0>
引数
オプション:positioned <pos>
JE:<pos>:3次元座標・ベクトル
BE:position: x y z
変更先の位置。
倍精度浮動小数点数で構成される3次元座標でなければならない。相対座標・ローカル座標を使用できる。
オプション: positioned as <targets>
JE:<targets>:エンティティ
BE:origin: target
実行位置の基準にしたいエンティティ。
プレイヤー名、ターゲットセレクター、UUIDのいずれかでなければならない。
オプション:positioned over <heightmap>
JE:<heightmap>:リソース位置(登録済)
ハイトマップの種類。ブロックの縦の並びのうち条件を満たす最上段のブロックの上面が、新たな実行位置のy座標となる。
  • world_surface:空気以外。
  • motion_blocking:衝突判定のあるブロックのみ。
  • motion_blocking_no_leaves:葉以外で衝突判定のあるブロックのみ。
  • ocean_floor:流体以外で衝突判定のあるブロックのみ。
所定のレジストリ下にある、既存の登録済みリソース位置でなければならない。
結果
実行位置が変更される。また座標の基準が足元に設定される。
引数が正しく指定されていない場合、解析不能となる。
<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> -> execute
rotated 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: value and pitch: value
二つの倍精度浮動小数点数で書かれた、度単位の向きでなければならない。1つ目がY軸まわりの回転角、2つ目が仰俯角である。
  • 回転角は、-180.0が真北、-90.0が真東、0.0が真南、90.0が真西であり、179.9は真北からほんの少し西側となる。
  • 仰俯角は、-90.0が真上、90.0が、真下となる。
実行文脈を基準とした相対表記が利用可能。
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限定]存在する。
  1. (if|unless) biome – バイオームを判定する。‌[Java Edition限定]
  2. (if|unless) block – 単体のブロックを判定する。
  3. (if|unless) blocks – 直方体の領域同士を比較する。
  4. (if|unless) data – ブロック、エンティティ、ストレージのデータを判定する。‌[Java Edition限定]
  5. (if|unless) dimension - 指定したディメンション内での実行になるかどうかを判定する。
  6. (if|unless) entity – 指定したエンティティが存在するかどうか判定する。
  7. (if|unless) function - 関数を実行し、その戻り値を判定する。
  8. (if|unless) items - 対象が条件にあったアイテムを持っているかどうか判定する。‌[Java Edition限定]
  9. (if|unless) loaded - 指定した座標が読み込まれているかどうかを判定する。
  10. (if|unless) predicate – 指定したプレディケートを判定する。‌[Java Edition限定]
  11. (if|unless) score - 対象のスコアを判定する。
  12. (if|unless) slots - 条件を満たすスロット(のうち対象に存在するもの)の数が1以上であるかどうか確認する。
  13. (if|unless) stopwatch - ストップウォッチの時刻を確認する。‌[Java Edition限定]

(if|unless) biome

[編集 | ソースを編集]
この項目はJava Edition限定の要素です。 
構文
(if|unless) biome <pos> <biome> -> [execute]
引数
<pos>:biome_pos
バイオームを判定したい位置の座標
<biome>:biome_predicate
判定に使う有効なバイオームID
結果
引数が正しく指定されていない場合、解析不能となる。
以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
  • <pos>がワールドの読み込み範囲外にある時。
  • 指定した条件を満たさない場合。
サブコマンド列の終端である場合、コマンドが成功した時にはsuccess値とresult値は1になる。

(if|unless) block

[編集 | ソースを編集]
指定した位置のブロックと、指定したブロック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]
引数
JE:<pos>:ブロック座標
BE:position: x y z
比較したいブロックがある座標
X・Y・Z成分を空白で区切って並べた形ブロック座標でなければならない。各成分の表記には、整数または~を用いた相対表記が使用できる。
JE:<block>:ブロック条件
比較したいブロックIDかブロックタグ
形式ブロックID[ブロック状態]{データタグ}で記述する。詳細は下記参照。
BE:block: Block
比較したい有効なブロックID[情報提供依頼]
BE:blockStates: block states
有効なブロック状態[情報提供依頼]
結果
引数が正しく指定されていない場合、解析不能となる。
以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
  • <pos>/position: x y zがワールドの読み込み範囲外にある時。
  • 指定した条件を満たさない場合。
サブコマンド列の終端である場合、コマンドが成功した時にはsuccess値とresult値は1になる。

(if|unless) blocks

[編集 | ソースを編集]
同じ寸法の領域同士でブロックを比較する。
構文
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]
引数
JE:<start>:ブロック座標
BE:begin: x y z
JE:<end>:ブロック座標
BE:end: x y z
比較元の領域の対角同士の角の座標。
X・Y・Z成分を空白で区切って並べた形ブロック座標でなければならない。各成分の表記には、整数または~を用いた相対表記が使用できる。
JE:<destination>:ブロック座標
BE:destination: x y z
比較対象の領域の北西下の角の座標。
比較対象の寸法は、比較元と同じとして扱われる。
X・Y・Z成分を空白で区切って並べた形ブロック座標でなければならない。各成分の表記には、整数または~を用いた相対表記が使用できる。
JE:(all|masked)
BE:scan mode: BlocksScanMode (allかmasked)
比較元の領域の全てのブロックに対して比較する場合にはall、空気ブロックを外す場合にはmaskedを指定する。
結果
引数が正しく指定されていない場合、解析不能となる。
以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
  • <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

[編集 | ソースを編集]
この項目はJava Edition限定の要素です。 
対象ブロック、エンティティ、ストレージが指定したパスのデータタグを持っているかどうか判定する。
構文
ブロック:(if|unless) data block <pos> <path> -> [execute]
エンティティ:(if|unless) data entity <target> <path> -> [execute]
ストレージ:(if|unless) data storage <source> <path> -> [execute]
引数
オプション:(if|unless data block <pos> <path>}}
<pos>:ブロック座標
判定したいブロックがある座標。
X・Y・Z成分を空白で区切って並べた形ブロック座標でなければならない。各成分の表記には、整数または~を用いた相対表記が使用できる。
<path>:NBTパス
ブロックが持っているかどうか判定したいデータパス。
NBTパスの形式で記述しなければならない。
オプション:(if|unless data entity <target> <path>}}
<target>:エンティティ
データを判定したい単体のエンティティ。
プレイヤー名、ターゲットセレクター、UUIDのいずれかでなければならない。
<path>:NBTパス
エンティティが持っているかどうか判定したいデータパス。
NBTパスの形式で記述しなければならない。
オプション:(if|unless data storage <source> <path>}}
<source>:リソース位置
データを判定したいストレージのリソース位置。
リソース位置の形式を満たさなければならない。
<path>:NBTパス
ストレージが持っているかどうか判定したいデータパス。
NBTパスの形式で記述しなければならない。
結果
引数が正しく指定されていない場合、解析不能となる。
以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
  • <pos>がワールドの読み込み範囲外にある時。
  • <pos>のブロックがブロックエンティティでない時。
  • <target>に適合するエンティティが1体でない時(名前付きのプレイヤーはオンラインである必要がある)。
  • 指定した条件を満たさない場合。
サブコマンド列の終端である場合、コマンドが成功した時にはsuccess値は1になる。
ifモードの時、result値は一致したデータタグの数となる。
unlessモードの時、result値は1となる。

(if|unless) dimension

[編集 | ソースを編集]
指定したディメンション内での実行になるかどうかを判定する。
構文
(if unless) dimension <dimension> -> [execute]
引数
<dimension>:ディメンション
リソース位置でなければならない。ディメンションへの解釈試行は実行中に行われる。
結果
引数が正しく指定されていない場合、解析不能となる。
指定した条件を満たさない場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
サブコマンド列の終端である場合、コマンドが成功した時にはsuccess値は1になる。
ifモードの時、result値は検出したエンティティの数となる。
unlessモードの時、result値は1となる。

(if|unless) entity

[編集 | ソースを編集]
指定したエンティティが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

[編集 | ソースを編集]
関数または関数タグを実行し、その戻り値が以下に示す条件を満した場合に続きを実行する。
構文
(if|unless) function <function> -> [execute]
引数
<function>:関数
実行する関数および関数タグ。関数タグを指定した場合は、該当する関数が他の関数の実行結果に拘わらずすべて実行される。
リソース位置か、#から始まるタグでなければならない。関数・関数タグへの解釈試行は実行中に行われる。
結果
引数が正しく指定されていない場合、解析不能になる。
実行された関数のうち少なくとも一つが次の条件を満たす場合はifは通過、unlessは失敗する。
  • /returnコマンドによって戻り値が与えられている。
  • この戻り値が0でない。
0以外の戻り値が与えられた場合はifは失敗、unlessは成功する。
/returnコマンドによって戻り値が与えられたコマンドが一つもない場合はif構文は失敗、unless構文は通過する。

(if|unless) items

[編集 | ソースを編集]
この項目はJava Edition限定の要素です。 
対象が条件にあったアイテムを持っているかどうか判定する。
構文
ブロック:(if|unless) items block <pos> <slot> <item> -> [execute]
エンティティ:(if|unless) items entity <targets> <slot> <item> -> [execute]
引数
<pos>:ブロック座標
判定したいブロックがある座標。
X・Y・Z成分を空白で区切って並べた形ブロック座標でなければならない。各成分の表記には、整数または~を用いた相対表記が使用できる。
<targets>:エンティティ
判定したいエンティティ。複数のエンティティを指定した場合はその全てを判定する。
プレイヤー名、ターゲットセレクター、UUIDのいずれかでなければならない。
<slot>:スロット(複数)
単一用または範囲指定用のスロットID(一覧はこちら)でなければならない。
<item>:アイテム条件
形式<種類>[<追加条件群>]で記述する。詳細は下記参照。
結果
引数が正しく指定されていない場合、解析不能になる。
以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
  • <pos>がワールドの読み込み範囲外にある時。
  • <pos>のブロックがブロックエンティティでない時。
  • <targets>に適合するエンティティがいない時。
サブコマンド列の終端である場合、コマンドが成功した時にはsuccess値は1になる。
ifモードの時、result値は対象が持っていた条件を満たすアイテムの個数となる。
unlessモードの時、result値は1となる。

(if|unless) loaded

[編集 | ソースを編集]
指定された位置が、ブロックとエンティティの両方について完全に読み込まれているかどうかを判定する。
構文
(if unless) loaded <pos> -> [execute]
引数
<pos>:ブロック座標
判定したい座標
X・Y・Z成分を空白で区切って並べた形ブロック座標でなければならない。各成分の表記には、整数または~を用いた相対表記が使用できる。
結果
引数が正しく指定されていない場合、解析不能となる。
指定した条件を満たさない場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
サブコマンド列の終端である場合、コマンドが成功した時にはsuccess値は1になる。
ifモードの時、result値は検出したエンティティの数となる。
unlessモードの時、result値は1となる。

(if|unless) predicate

[編集 | ソースを編集]
この項目はJava Edition限定の要素です。 
プレディケートが通過するかどうかをテストする。プレディケートも参照。
構文
(if|unless) predicate <プレディケート> -> [execute]
<プレディケート>:プレディケート
テストに使用するプレディケート。
プレディケートのリソース位置か、インラインの定義で記述する。
結果
引数が正しく指定されていない場合、解析不能となる。
このサブコマンドが最後のサブコマンドかどうかにより振る舞いが異なる。
次の場合、このコマンドは失敗する。
  • 指定したプレディケートが存在しない。
  • 指定のプレディケートの通過に失敗した。
これが最後のサブコマンドなら「失敗」を返す。
まだサブコマンドが続く場合ここでは実行を中断する。
それ以外の場合コマンドは成功する。
これが最後のコマンドなら「成功」を返し、success値とresult値は1になる。
まだサブコマンドが続く場合は実行を継続する。

(if|unless) score

[編集 | ソースを編集]
スコアと他のスコアを比較、あるいは所定の範囲内にあるかどうかを判定する。
構文
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)。スコアボードのオブジェクト名への解釈試行は実行中に行われる。
オプション:matches <range>
JE:<range>:範囲(整数)
BE:range: integer range
数値の範囲。
以下の形式による、32ビット整数の範囲でなければならない(例:0―丁度0、..0―0以下、0..―0以上、0..1―0以上1以下)。
結果
引数が正しく指定されていない場合、解析不能となる。
以下の場合、サブコマンド列の終端であれば失敗し、さもなくば実行を中断する。
  • <target>/target: targetかsource/source: targetが*であるとき。
  • 指定した条件を満たさない場合。
サブコマンド列の終端である場合、コマンドが成功した時にはsuccess値とresult値は1になる。

(if|unless) slots

[編集 | ソースを編集]
この項目はJava Edition限定の要素です。 

条件を満たすスロット(のうち対象に存在するもの)の数が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

[編集 | ソースを編集]
この項目はJava Edition限定の要素です。 
ストップウォッチの時間を確認する。
構文
(if|unless) stopwatch <ID> <範囲> -> [execute]
<ID>:リソース位置
確認したいストップウォッチのID。
リソース位置の形式を満たさなければならない。
<範囲>:範囲(浮動小数点数)
時間の範囲の条件。秒単位で指定し、最小精度はミリ秒となる。
以下の形式による、浮動小数点数の範囲でなければならない(例: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

格納先指定サブコマンド

[編集 | ソースを編集]
この項目はJava Edition限定の要素です。 

最後のコマンドのresult値とsuccess値を保存する場所を指定する。他のサブコマンドとともに最初に実行され、格納先を記録しておき、最後のサブコマンドが実行された後でそこに値を保存する。コマンドの返り値は整数でなければならず、非整数は負の方向に丸められる。

ストレージにより5つのモードが存在する。

  1. store (result|success) block – ブロックのNBTに保存する。
  2. store (result|success) bossbar – ボスバーに保存する。
  3. store (result|success) entity – エンティティのNBTに保存する。
  4. store (result|success) score – 対象のスコアに保存する。
  5. store (result|success) storage – ストレージのNBTに保存する。

store (result|success) block

[編集 | ソースを編集]
コマンドの返り値をブロックエンティティのタグデータに保存する。byte、short、int、long、float、double型の値として保存される。返り値が小数の時は、丸められてから<scale>の値が乗算される。
構文
store (result|success) block <targetPos> <path> <type> <scale> -> execute
引数
<targetPos>:ブロック座標
対象となるブロックの位置。
<path>:NBTパス
値を格納したいタグのパス。
<type>
格納先のデータ型。
byte、short、int、long、float、doubleのいずれかでなければならない。
<scale>:倍精度浮動小数点数
格納前に値に乗算される数値。負数でも良い。
結果
引数が正しく指定されていない場合、解析不能となる。
パスが存在しない場合は何も保存しない。

store (result|success) bossbar

[編集 | ソースを編集]

コマンドの返り値をボスバーの現在値か最大値として保存する。

構文
store (result|success) bossbar <id> (value|max) -> execute
引数
<id>:リソース位置
格納先としたいボスバーのID。
value|max
ボスバーの現在値(value)と最大値(max)のどちらに上書きしたいか。
結果
引数が正しく指定されていない場合、解析不能となる。

store (result|success) entity

[編集 | ソースを編集]
コマンドの返り値をエンティティのデータタグに保存する。byte、short、int、long、float、double型の値として保存される。返り値が小数の時は、丸められてから<scale>の値が乗算される。/dataコマンドと同様、/execute storeはプレイヤーのNBTを上書きすることはできない。
構文
store (result|success) entity <target> <path> <type> <scale> -> execute
引数
<target>:エンティティ
対象となる単一のエンティティ。
<path>:NBTパス
値を格納したいタグのパス。
<type>
格納先のデータ型。
byte、short、int、long、float、doubleのいずれかでなければならない。
<scale>:倍精度浮動小数点数
格納前に値に乗算される数値。負数でも良い。
結果
引数が正しく指定されていない場合、解析不能となる。
パスが存在しない場合は何も保存しない。

store (result|success) score

[編集 | ソースを編集]
コマンドの返り値で<targets>の<objective>のスコアを上書きする。
構文
store (result|success) score <targets> <objective> -> execute
引数
<targets>:スコアホルダー
上書きしたいスコアの所有者。
<objective>:オブジェクト
スコアボードのオブジェクト。
結果
引数が正しく指定されていない場合、解析不能となる。

store (result|success) storage

[編集 | ソースを編集]
コマンドの返り値を<target>ストレージの<path>に保存する。byte、short、int、long、float、double型の値として保存される。返り値が小数の時は、丸められてから<scale>の値が乗算される。存在しないストレージを指定した場合は新たに作成される、
構文
store (result|success) storage <target> <path> <type> <scale> -> execute
引数
<target>:リソース位置 (Single word)
リソース位置で指定した対象ストレージ。
<path>:NBTパス
値を格納したいタグのパス。
<type>
格納先のデータ型。
byte、short、int、long、float、doubleのいずれかでなければならない。
<scale>:倍精度浮動小数点数
格納前に値に乗算される数値。負数でも良い。
結果
引数が正しく指定されていない場合、解析不能となる。

runサブコマンド

[編集 | ソースを編集]

runコマンドは引数として実行されるコマンドを取り、サブコマンドで変更した変数が利用できる。

構文
Java Edition
run --><command>
Bedrock Edition
run <command: command>
引数
JE:<command>
BE: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.814w07a/executeが追加された。
1.814w08aコマンドが実行成功時の返り値をコマンドブロックに渡すようになった。
1.1116w32aブロック状態のサポートが追加された。
1.1317w45a構文が分割された。
17w45b/execute storeが再び動作するようになった。
18w02aコマンドをより柔軟に操作するための新しいサブコマンドが追加された。
18w05a/execute store bossbarサブコマンドが追加された。
1.1418w43a/execute (if|unless) dataサブコマンドが追加された。
1.1519w38a/execute if predicate <predicate>サブコマンドが追加された。
/execute store storageサブコマンドが追加された。
1.19.322w46a/execute (if|unless) biomeサブコマンドが追加された。
1.19.423w03a/execute onサブコマンドが追加された。
/execute (if|unless) dimension・/execute (if|unless) loadedサブコマンドが追加された。
23w04a/execute onサブコマンドの引数に指定できる値originが追加された。
1.19.423w06a/execute summonサブコマンドが追加された。
Pre-release 1/execute positionedサブコマンドに引数over <heightmap>が指定できるようになった。
1.20.223w31a/execute (if|unless) functionサブコマンドが追加された。
Pre-release 1バグの修正のために根本的な変更を要することが発覚したため/execute (if|unless) functionサブコマンドの開発が延期され、一時的に削除された。
1.20.323w41a/execute (if|unless) functionサブコマンドが再追加された。
1.20.323w44a実行されたコマンドにreturnが存在しない場合は、if構文は失敗、unless構文は通過するようになった。従来はどちらの構文も失敗していた。
各実行文脈において、呼び出された関数内の最初の/returnが戻り値を与えるようになった。
1.20.524w10a/execute (if|unless) itemsサブコマンドが追加された。
24w12a/execute (if|unless) predicateにおいて、プレディケートを本来のJSONをNBT文字列に変換したものでそのまま指定できるようになった。
1.21.1125w41a/execute (if|unless) stopwatchサブコマンドが追加された。
26.3snapshot-1/execute (if|unless) slotsサブコマンドが追加された。
Pocket Edition Alpha
v0.16.0build 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.50beta 1.19.50.23/executeの新構文が、「今後のクリエイター機能」実験トグルを有効にしなくても利用可能になった。
1.19.70beta 1.19.70.21/execute <if|unless> blockから引数data: intが削除された。