この記事では、条件をつけてコマンドを実行できるexecute ifの使い方を、くわしく解説しています。どのような仕組みなのか、どんな条件が使えるのかを、入力例を紹介しながらわかりやすくまとめているので、ぜひ参考にしてください。
execute ifの基本構文
/execute if <条件> run <コマンド>
「if <条件>」で指定した条件が満たされたときにだけ、「run <コマンド>」が実行されます。「if <条件>」で指定できる条件は、Java版では9種類、統合版では4種類です。
execute ifの条件一覧 | ||
---|---|---|
if biome | 指定したバイオームかどうか | Java版のみ |
if block | 指定座標にブロックがあるかどうか | |
if blocks | 指定範囲のブロックが一致するかどうか | |
if data | 指定したデータがあるかどうか | Java版のみ |
if dimension | 指定したディメンションかどうか | Java版のみ |
if entity | 指定したエンティティがいるかどうか | |
if loaded | 指定座標が読み込まれているかどうか | Java版のみ |
if predicate | predicateの条件を満たしているかどうか | Java版のみ |
if score | スコアが条件を満たすかどうか |
条件を満たさないときにだけコマンドを実行させるには、ifのかわりにunlessを使います。使い方はifと同じなので、単純に入れ替えればOKです。
それぞれの条件のくわしい使い方
if biome
if biomeは、指定した座標が指定バイオームであるかをチェックするコマンドです。if biomeにつづけて、座標とバイオームIDを入力します。
/execute if biome 100 64 200 minecraft:plains run summon chicken
たとえば上のコマンドを実行すると、(x,y,z)=(100,64,200)が平原バイオームだったとき、コマンド実行地点にニワトリがスポーンします。
座標の指定には、「~」や「^」も使用可能です。
if block
if blockは、指定した座標が指定ブロックであるかをチェックするコマンドです。ブロックステートや、Java版ではデータタグもふくめて指定可能。if blockにつづけて、座標とブロックIDを入力します。
/execute if block ~ ~-1 ~ cobblestone run summon chicken
たとえば上のコマンドを実行したとき、足元に丸石があれば(コマンド実行者が丸石にのっていれば)、コマンド実行地点にニワトリがスポーンします。
if blocks
if blocksは、指定した範囲のブロックが、比較先と一致するかチェックするコマンドです。if blocksにつづけて、比較元の始点、比較元の終点、比較先の始点、allまたはmaskedを入力します。
all、maskedは、比較モードを選択する項目です。
モード | 機能 |
---|---|
all | 空気ブロックも含む全ブロックで比較する |
masked | 空気ブロック以外のブロックで比較する |
/execute if blocks ~ ~ ~ ~9 ~9 ~9 100 70 200 all run summon chicken
たとえば上のコマンドを実行したとき、コマンド実行地点を始点とする10×10×10の範囲にある全てのブロックが、(x,y,z)=(100,70,200)を始点とする10×10×10の範囲にあるブロックと一致したとき、コマンド実行地点にニワトリが召喚されます。
if data
fi dataは、ブロック、エンティティ、ストレージ(dataコマンドで自作できるデータを格納できるもの)が指定したデータを持っているかチェックするコマンドです。Java版のみ使用可能。if dataにつづけて、「block 座標」「entity ターゲット」「storage ソース」のいずれかを入力したあと、検索するデータを指定します。
/execute if data block 100 70 110 Items[{id:”minecraft:diamond”}] run effect give @p fire_resistance 200
たとえば上のコマンドを実行したとき、(x,y,z)=(100,70,110)にあるチェストにダイヤモンドが入っていれば、プレイヤーに火炎耐性のエフェクトが200秒間付与されます。
/execute if data entity @e[type=minecraft:armor_stand,limit=1] {ArmorItems:[{id:”minecraft:iron_boots”,Count:1b},{id:”minecraft:iron_leggings”,Count:1b},{id:”minecraft:iron_chestplate”,Count:1b},{id:”minecraft:iron_helmet”,Count:1b}]} run give @s diamond
上のコマンドを実行したとき、近くの防具立てに鉄の防具一式がかざられていると、プレイヤーにダイヤモンドが与えられます。
if dimension
if dimensionは、コマンド実行地点が指定したディメンションであるかをチェックするコマンドです。Java版のみ使用可能。if dimensionにつづけて、ディメンションIDを入力します。
/execute if dimension minecraft:the_nether run summon ghast ~ ~10 ~
たとえば上のコマンドをネザーで実行すると、ガストが召喚されます。オーバーワールドで実行しても、何も起こりません。
if entity
if entityは、指定したエンティティが存在するかをチェックするコマンドです。if entityにつづけて、ターゲットを入力します。
-
/execute as @e[type=armor_stand] at @s if entity @p[distance=..5] run fill ^-2 ^ ^1 ^2 ^ ^5 fire
-
/execute as @e[type=armor_stand] at @s if entity @p[r=5] run fill ^-2 ^ ^1 ^2 ^ ^5 fire
たとえば、防具立てから5ブロック以内の距離にプレイヤーがいるとき、上のコマンドが実行されると防具立ての前5×5の範囲に炎が出現します。
if loaded
if loadedは、指定した座標を含むチャンクが完全に読み込まれているかどうかチェックするコマンドです。Java版のみ使用可能。if loadedにつづけて、座標を入力します。
/execute if loaded -7 52 248 run say 読み込まれています
上のコマンドを実行すると、(x,y,z)=(-7,52,248)をふくむチャンクが読み込まれていたらsayコマンドを実行され、画面に「読み込まれています」と表示されます。
1チャンクは、16×16の範囲です。
if predicate
if predicateは、指定したpredicateに記載されている条件と一致しているかどうかをチェックするコマンドです。Java板でのみ使用可能。if predicateにつづけてpredicateのIDを入力します。
/execute if predicate ptest:test1 run summon chicken
上のコマンドを実行したとき、プレディケイトtest1に記載されれている条件の「金のブーツを身に着けている」を満たしていれば、ニワトリがスポーンします。
predicateは、条件を記載したJSONファイルのことです。使うには事前の準備が必要ですが、executeコマンド単体では難しい条件を設けることができます。例で使用したpredicateは、ここをクリックするとダウンロード可です。rei.zipの中のnishitestフォルダを、セーブデータ内のdatapacksフォルダに入れると使えます(実行環境Java版バージョン1.20.4)。
if score
if scoreは、スコアボードの値が条件を満たしているかチェックするコマンドです。比較対象より数値が大きいか、特定の値を持っているか、値がある範囲内にあるかなどを調べられます。
比較するときは、if scoreにつづけてターゲット、ターゲットスコア、比較演算子、比較対象、比較するスコアを入力します。
/execute if score @s TESTSCORE > nishi10 TESTSCORE run say hello
上のコマンドを実行したとき、コマンド実行者のTESTSCOREの値が、プレイヤーnishi10のTESTSCOREの値より大きければ、sayコマンドが実行されhelloと表示されます。
特定の値をもっているか、値が範囲内にあるかなどをチェックするときは、if scoreにつづけてターゲット、ターゲットスコア、matches、値を入力します。
/execute if score @s TESTSCORE matches 4.. run give @s emerald
上のコマンドを実行したとき、コマンド実行者のTESTSCOREの値が4以上なら、giveコマンドが実行されてエメラルドが渡されます。
ということで、execute ifのくわしい使い方の解説でした。トラップのしかけられたダンジョンを作ったり、ミニゲームをつくったりするには欠かせないコマンドです。条件がいろいろあって覚えるのが大変ですが、簡単なところから少しずつ挑戦してみてください!
他のexecuteコマンドについては、以下の記事で詳しく解説しています。あわせて読んでみてください。
マイクラのexecuteコマンドは、単体のコマンドでは不可能なことが実現できる反面、むずかしさは全コマンドの中でトップレベル。多機能であるがゆえに、使いこなすのは簡単ではありません。 そこでこの記事では、executeコ …