版本25語法中,execute分為了許多子指令,有如下3類,11條子指令,共19個多載:
- 修飾子指令:修改指令變數和指令的執行方式,從而以特定的執行者、執行位置、執行維度、執行座標執行指令。修飾子指令有8條:
align
、anchored
、as
、at
、facing (entity)
、in
、positioned (as)
、rotated (as)
- 條件子指令:當特定條件成立或不成立時,執行指令或透過檢測。條件子指令有2條:
if
、unless
- 執行子指令:執行對應的指令。執行子指令為
run
。
- Java版中還具有儲存子指令(store),但基岩版中尚未加入。
子指令之間可以互相套用(除了run
)。指令必須以條件子指令或執行子指令收尾,否則會報錯。對於多個子指令,遊戲將從前往後處理這些子指令,例如下面兩個指令的意義就是不同的:
/execute positioned ~ ~ ~ as @e run tp @s ~ ~ ~
- 將所有實體傳送到執行者的位置
/execute as @e positioned ~ ~ ~ run tp @s ~ ~ ~
- 將所有實體傳送到其原位
以[chainedCommand: ExecuteChainedOption_0]
表示下一個子指令的開始。對於條件子指令,該參數是可選的;對修飾子指令,這參數是必選的。
- 修飾子指令部分
execute align <axes: string> <chainedCommand: ExecuteChainedOption_0>
execute anchored <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
execute as <origin: target> <chainedCommand: ExecuteChainedOption_0>
execute at <origin: target> <chainedCommand: ExecuteChainedOption_0>
execute facing <position: x y z> <chainedCommand: ExecuteChainedOption_0>
execute facing entity <origin: target> <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
execute in <dimension: Dimension> <chainedCommand: ExecuteChainedOption_0>
execute positioned <position: x y z> <chainedCommand: ExecuteChainedOption_0>
execute positioned as <origin: target> <chainedCommand: ExecuteChainedOption_0>
execute rotated <yaw: value> <pitch: value> <chainedCommand: ExecuteChainedOption_0>
execute rotated as <origin: target> <chainedCommand: ExecuteChainedOption_0>
- 條件子指令部分
execute <subcommand: Option_If_Unless> block <position: x y z> <block: Block> <blockStates: block states> [chainedCommand: ExecuteChainedOption_0]
execute <subcommand: Option_If_Unless> block <position: x y z> <block: Block> <data: int> [chainedCommand: ExecuteChainedOption_0]
execute <subcommand: Option_If_Unless> block <position: x y z> <block: Block> [chainedCommand: ExecuteChainedOption_0]
execute <subcommand: Option_If_Unless> blocks <begin: x y z> <end: x y z> <destination: x y z> <scan mode: BlocksScanMode> [chainedCommand: ExecuteChainedOption_0]
execute <subcommand: Option_If_Unless> entity <target: target> [chainedCommand: ExecuteChainedOption_0]
execute <subcommand: Option_If_Unless> score <target: target> <objective: string> <operation: compare operator> <source: target> <objective: string> [chainedCommand: ExecuteChainedOption_0]
execute <subcommand: Option_If_Unless> score <target: target> <objective: string> matches <range: integer range> [chainedCommand: ExecuteChainedOption_0]
- 執行子指令部分
execute run <command: command>
參數與範例[編輯]
align變更執行座標為方塊座標(且向下取整)。
align <axes: string> <chainedCommand: ExecuteChainedOption_0>
axes
軟列舉參數
- string型別,必選,為
x
、y
、z
的任意不重複組合,不考慮順序。例如x
、xz
、yx
、xzy
等。
chainCommand
列舉參數
- ExecuteChainedOption_0型別,必選,指定執行什麼子指令。可以為上述的任意11種子指令型別。
execute align xyz run summon armor_stand ~ ~ ~
- 在執行者的方塊位置召喚一個盔甲座(可用於召喚在方塊中心而不偏移)
execute positioned 19.58 88.78 13.26 align zy run tp @s ~ ~ ~
- 將執行者傳送至(19.58,88.00,13.00)。
anchored變更執行位置為執行者的眼部或腳部,預設為腳部。
anchored <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
eyes|feet
列舉參數
- 必選,變更執行位置為執行者的眼部或腳部。
chainCommand
列舉參數
- ExecuteChainedOption_0型別,必選,指定執行什麼子指令。可以為上述的任意11種子指令型別。
execute as @e[type=armor_stand] anchored eyes run tp @s ~ ~ ~
- 將盔甲座傳送至其眼部的位置。
as變更指令的執行者。
as <origin: target> <chainedCommand: ExecuteChainedOption_0>
origin
基本參數
- target型別,必選,指定執行者。必須為有效的實體ID或假名。
chainedCommand
列舉參數
- ExecuteChainedOption_0型別,必選,指定執行什麼子指令。可以為上述的任意7種子指令型別。
execute as @a if block ~ ~ ~ air
- 檢測是否有玩家所處位置為空氣
execute as @e run setblock ~ ~-1 ~ redstone_block
- 在所有實體腳下放置鑽石方塊。
at變更指令的執行位置和執行維度為規定實體的位置和維度。
at <origin: target> <chainedCommand: ExecuteChainedOption_0>
origin
基本參數
- target型別,必選,指定指令的執行位置和執行維度為規定實體的位置和維度。必須為有效的實體ID或假名。
chainedCommand
列舉參數
- ExecuteChainedOption_0型別,必選,指定執行什麼子指令。可以為上述的任意7種子指令型別。
execute as @a at @s run tp @s ~ ~5 ~
- 將所有玩家傳送至其上方5格的位置
execute at @s run playsound random.orb @a ~ ~ ~
- 以執行者為音源播放經驗球音效。
facing變更指令的執行朝向為規定座標或實體。
facing <position: x y z> <chainedCommand: ExecuteChainedOption_0>
facing entity <origin: target> <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
position
基本參數
- x y z型別,必選,指定指令的執行朝向為特定座標。必須為有效的座標。
origin
基本參數
- target型別,必選,指定指令的執行朝向為特定實體。
eyes|feet
列舉參數
- 必選,變更執行朝向為指定實體的眼部或腳部。
chainedCommand
列舉參數
- ExecuteChainedOption_0型別,必選,指定執行什麼子指令。可以為上述的任意11種子指令型別。
execute as @a[tag=a] facing 0 64 0 run tp @s ^^^1
- 令帶標籤a的玩家朝著(0,64,0)移動1格。
execute as @a[tag=a] facing entity @e[type=zombie,c=1] feet run tp @s ^^^1
- 令帶標籤a的玩家朝著附近的殭屍移動1格。
in變更指令的執行維度。
in <dimension: Dimension> <chainedCommand: ExecuteChainedOption_0>
dimension
列舉參數
- Dimension型別,必選,指定指令的執行維度。可以為
nether
、overworld
、the_end
中的一個。
chainedCommand
列舉參數
- ExecuteChainedOption_0型別,必選,指定執行什麼子指令。可以為上述的任意11種子指令型別。
execute in the_end run tp @s 0 128 0
- 傳送執行者到終界的(0,128,0)。
execute in nether run setblock 0 0 0 air
- 在地獄的(0,0,0)放置空氣(對應區域必須存在常載入區域)。
positioned變更指令的執行位置為規定實體的位置,和at的區別在於其不會修改執行維度。
positioned <position: x y z> <chainedCommand: ExecuteChainedOption_0>
positioned as <origin: target> <chainedCommand: ExecuteChainedOption_0>
position
基本參數
- x y z型別,必選,指定指令的執行位置為特定座標。
origin
基本參數
- target型別,必選,指定指令的執行位置為規定實體的位置。必須為有效的實體ID或假名。
chainedCommand
列舉參數
- ExecuteChainedOption_0型別,必選,指定執行什麼子指令。可以為上述的任意11種子指令型別。
execute positioned ~ ~ ~ run tp @a ~ ~10 ~
- 將所有玩家傳送到執行者上方10格(可在指令方塊執行,因其修改執行座標不需要用到@s)。
execute as @a positioned ~ ~ ~ run tp @s ~ ~10 ~
- 將所有玩家傳送到其上方10格。
execute as @a positioned as @s run tp @s ~ ~5 ~
- 將所有玩家傳送至其上方5格的位置
execute positioned as @s run playsound random.orb @a ~ ~ ~
- 以執行者為音源播放經驗球音效。(指令方塊不可執行)
rotated變更指令的執行朝向為規定位置,或規定實體的朝向。需要注意,rotated僅改變執行朝向,而不改變執行者的朝向以及執行位置。
rotated <yaw: value> <pitch: value> <chainedCommand: ExecuteChainedOption_0>
rotated as <origin: target> <chainedCommand: ExecuteChainedOption_0>
yaw
基本參數
- value型別,必選,指定水平旋轉角度。正北方為-180.0,正東為-90.0,正南為0.0,正西為90.0,正北以西為179.9,之後回到-180.0。可使用波浪號指定基於目前旋轉角度的相對偏移。
pitch
基本參數
- value型別,必選,指定垂直旋轉角度。豎直上方為-90.0,至豎直下方90.0。可使用波浪號指定基於目前旋轉角度的相對偏移。
origin
基本參數
- target型別,必選,指定執行朝向為規定實體的朝向。
chainedCommand
列舉參數
- ExecuteChainedOption_0型別,必選,指定執行什麼子指令。可以為上述的任意11種子指令型別。
execute rotated 0 0 run tp @a ^ ^ ^1
- 向南方的水平方向將所有玩家傳送1格。
execute as @a rotated @e[type=zombie,c=1] run tp @s ^ ^ ^1
- 以玩家附近的殭屍的朝向方向將該玩家傳送1格。
if
與unless
是條件子指令,可用於對特定條件進行檢測或者作為指令執行的限制條件。if
意為如果...就...,如果檢測成功那麼就透過檢測;unless
意為除非...否則...,如果檢測成功那麼就導致檢測不透過(類似非門)。
條件子指令的功能與/testfor
、/testforblock
、/testforblocks
、/scoreboard players test ...
基本一致(事實上更強)。
現在的條件子指令支援4項檢測:
(if|unless) block
- 檢測單個方塊(即/testforblock
)
(if|unless) blocks
- 檢測一個區域(即/testforblocks
)
(if|unless) entity
- 檢測實體(即/testfor
)
(if|unless) score
- 檢測目標分值(即/scoreboard players test
,事實上if score更強些)
語法如下所示。
(if|unless) block[編輯]
(if|unless) block檢測規定位置是否為規定方塊。
<subcommand: Option_If_Unless> block <position: x y z> <block: Block> <blockStates: block states> [chainedCommand: ExecuteChainedOption_0]
<subcommand: Option_If_Unless> block <position: x y z> <block: Block> <data: int> [chainedCommand: ExecuteChainedOption_0]
<subcommand: Option_If_Unless> block <position: x y z> <block: Block> [chainedCommand: ExecuteChainedOption_0]
subcommand
列舉參數
- Option_If_Unless型別,必選,指定指令的執行條件。可以選填為
if
或unless
,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
position
基本參數
- x y z型別,必選,指定待檢測位置。若填寫相對座標,則指令的執行位置以執行者的位置為參考。必須為有效的座標。
block
列舉參數
- Block型別,必選,指定待檢測位置是否為特定方塊。必須為有效的方塊ID或方塊名。
blockStates
或data
基本參數
- block states型別(前者)或int型別(後者),必選。指定待檢測方塊的方塊狀態或資料值。設定為-1可以匹配該方塊的任意資料值。
chainedCommand
列舉參數
- ExecuteChainedOption_0型別,可選,指定執行什麼子指令。可以為上述的任意11種子指令型別。
execute if block 0 -64 0 bedrock
- 檢測(0,-64,0)是否為基岩(等效於/testforblock 0 -64 0 bedrock
)。
execute if block 560 51 8 wool ["color":"red"]
- 檢測(560,51,8)是否為紅色羊毛(等效於/testforblock 560 51 8 wool 14
)。
execute unless block 114 -27 81 redstone_block run give @a diamond
- 當(114,-27,81)不為紅石方塊時,給予所有玩家一顆鑽石。
(if|unless) blocks[編輯]
(if|unless) blocks檢測規定區域是否和另一區域一致。
<subcommand: Option_If_Unless> blocks <begin: x y z> <end: x y z> <destination: x y z> <scan mode: BlocksScanMode> [chainedCommand: ExecuteChainedOption_0]
subcommand
列舉參數
- Option_If_Unless型別,必選,指定指令的執行條件。可以選填為if或unless,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
begin
和end
基本參數
- x y z型別,必選,指代源區域的兩個對角方塊位置。必須為有效的座標。
destination
基本參數
- Block型別,必選,對照區域的西北下角位置(即xyz座標均為最小的位置)。
scan mode
列舉參數
- BlocksScanMode型別,必選(相對應的,
/testforblocks
的對應參數為可選)。指定掃描模式,必須為all
(檢測所有方塊是否全部匹配,包括空氣)或masked
(檢測目標區域的方塊和源區域的非空氣方塊是否匹配)
chainedCommand
列舉參數
- ExecuteChainedOption_0型別,可選,指定執行什麼子指令。可以為上述的任意11種子指令型別。
execute if blocks 14 57 -69 14 57 -69 36 90 56 all
- 檢測(14,57,-69)和(36,90,56)兩個方塊的位置是否完全匹配(等效於/testforblocks 14 57 -69 14 57 -69 36 90 56
)。
execute unless blocks 89 55 14 98 36 76 57 45 -13 all run setblock 11 14 13 wool 14
- 當(89,55,14)和(98,36,76)所圍區域不完全和(57,45,-13)匹配時,在(11,14,13)放置紅色羊毛。
(if|unless) entity[編輯]
(if|unless) entity檢測是否存在規定實體。
<subcommand: Option_If_Unless> entity <target: target> [chainedCommand: ExecuteChainedOption_0]
subcommand
列舉參數
- Option_If_Unless型別,必選,指定指令的執行條件。可以選填為if或unless,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
target
基本參數
- target型別,必選,指定待檢測實體。必須為有效的實體ID。
block
列舉參數
- Block型別,必選,指定待檢測位置是否為特定方塊。必須為有效的方塊ID或方塊名。
chainedCommand
列舉參數
- ExecuteChainedOption_0型別,可選,指定執行什麼子指令。可以為上述的任意11種子指令型別。
execute if entity @e[type=zombie]
- 檢測是否有殭屍(等效於/testfor @e[type=zombie]
)。
execute unless entity @a[scores={level=27}]
- 當不存在計分板level上為27分的玩家時,執行成功。
execute if entity @e[type=snowball] run setblock 15 15 20 redstone_block
- 當世界中存在雪球時,在(15,15,20)放置紅石方塊。
(if|unless) score[編輯]
(if|unless) score檢測目標分數是否滿足特定條件。其中score ...進行兩者分數的比較;而score ... matches ...則檢測單個目標的分數是否符合特定條件。
<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]
- 對於if score ...
subcommand
列舉參數
- Option_If_Unless型別,必選,指定指令的執行條件。可以選填為if或unless,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
target
基本參數
- target型別,必選,指定待檢測實體。必須為有效的實體ID或假名。
objective
(前者) 基本參數
- string型別,必選,指定追蹤待檢測實體分數的記分項。
operation
列舉參數
- compare operator型別,必選,待檢測實體和源實體進行分數比較時,該參數將指定比較指標。只能為以下5種:
=
- 當待檢測實體和源實體分值一致時,檢測透過
>
- 當待檢測實體大於源實體分值時,檢測透過
>=
- 當待檢測實體大於等於源實體分值時,檢測透過
<
- 當待檢測實體小於源實體分值時,檢測透過
<=
- 當待檢測實體小於等於源實體分值時,檢測透過
source
基本參數
- target型別,必選,指定源實體。必須為有效的實體ID或假名。
objective
(後者) 基本參數
- string型別,必選,指定追蹤源實體分數的記分項。
chainedCommand
列舉參數
- ExecuteChainedOption_0型別,可選,指定執行什麼子指令。可以為上述的任意11種子指令型別。
- 對於if score ... matches ...:
target
基本參數
- target型別,必選,指定待檢測實體。必須為有效的實體ID或假名。
objective
基本參數
- string型別,必選,指定追蹤待檢測實體分數的記分項。
range
基本參數
- integer range型別,必選,檢查待檢測實體的分數是否滿足特定範圍。以
数字..数字
的形式指定範圍,支援"!"反選。
chainedCommand
列舉參數
- ExecuteChainedOption_0型別,可選,指定執行什麼子指令。可以為上述的任意7種子指令型別。
execute if score @s board >= @r board
- 當自己在board上的分數大於等於另一位隨機玩家在board上的分數時,檢測透過。
execute as @e[type=zombie,c=1] unless score @s a = @e[type=villager,c=1] a run kill @s
- 當附近的一隻殭屍在a上的分數不等於附近的一隻村民在a上的分數時,殺死該殭屍。
execute if score @s board matches 1..5
- 當自己在board上的分數在[1,5]分上時,檢測透過。
execute if score @e[type=zombie,c=1] matches !6..10
- 當附近的一隻殭屍在a上的分數不在[6,10]分上時,檢測透過。
execute unless score @a[tag=gaming] a matches ..2 run setblock 12 34 56 air
- 當帶有gaming標籤的玩家的分數不小於等於2分時(即大於2分時),在(12,34,56)放置空氣。(事實上這個檢測部分也和execute if score @a[tag=gaming] matches 3..
以及execute if score @a[tag=gaming] matches !..2
等效)
run執行指令。
run <command: command>
command
基本參數
- command型別,必選,指定要執行的指令。
/execute as @e[type=zombie] at @s run setblock ~ ~-1 ~ diamond_block
- 在殭屍腳下放置鑽石方塊。
/execute as @r at @s run summon lightning_bolt
- 雷劈一名隨機玩家。
/execute as @a at @s if block ~ ~-1 ~ concrete 14 run kill @s
- 當玩家踩到紅色混凝土時,殺死該玩家。