この記事では、条件をつけてコマンドを実行できる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 スコアが条件を満たすかどうか
unlessについて

条件を満たさないときにだけコマンドを実行させるには、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)平原バイオームだったとき、コマンド実行地点にニワトリがスポーンします。

nishi

座標の指定には、「~」や「^」も使用可能です。

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につづけて、ターゲットを入力します。

  • Java版
  • 統合版
  • /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コマンドを実行され、画面に「読み込まれています」と表示されます。

nishi

1チャンクは、16×16の範囲です。

if predicate

if predicateは、指定したpredicateに記載されている条件と一致しているかどうかをチェックするコマンドです。Java板でのみ使用可能。if predicateにつづけてpredicateのIDを入力します。

/execute if predicate ptest:test1 run summon chicken

上のコマンドを実行したとき、プレディケイトtest1に記載されれている条件の「金のブーツを身に着けている」を満たしていれば、ニワトリがスポーンします。

predicateとは

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コマンドについては、以下の記事で詳しく解説しています。あわせて読んでみてください。