手冊:/execute/28

出自Minecraft基岩版开发Wiki

版本28語法中,execute分為了許多子命令,有如下3類,11條子命令,共18個多載:

修飾子命令:修改命令變數和命令的執行方式,從而以特定的執行者、執行位置、執行維度、執行座標執行命令。修飾子命令有8條: alignanchoredasatfacing (entity)inpositioned (as)rotated (as)
條件子命令:當特定條件成立或不成立時,執行命令或透過檢測。條件子命令有2條:ifunless
執行子命令:執行對應的命令。執行子命令為run
Java版中還具有儲存子命令(store),但基岩版中尚未加入。

子命令之間可以互相套用(除了run)。命令必須以條件子命令或執行子命令收尾,否則會報錯。對於多個子命令,遊戲將從前往後處理這些子命令,例如下面兩個命令的意義就是不同的:

/execute positioned ~ ~ ~ as @e run tp @s ~ ~ ~ - 將所有實體傳送到執行者的位置
/execute as @e positioned ~ ~ ~ run tp @s ~ ~ ~ - 將所有實體傳送到其原位

[chainedCommand: ExecuteChainedOption_0]表示下一個子命令的開始。對於條件子命令,該參數是可選的;對修飾子命令,這參數是必選的。

多載[編輯]

修飾子命令部分
  1. execute align <axes: string> <chainedCommand: ExecuteChainedOption_0>
  2. execute anchored <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
  3. execute as <origin: target> <chainedCommand: ExecuteChainedOption_0>
  4. execute at <origin: target> <chainedCommand: ExecuteChainedOption_0>
  5. execute facing <position: x y z> <chainedCommand: ExecuteChainedOption_0>
  6. execute facing entity <origin: target> <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
  7. execute in <dimension: Dimension> <chainedCommand: ExecuteChainedOption_0>
  8. execute positioned <position: x y z> <chainedCommand: ExecuteChainedOption_0>
  9. execute positioned as <origin: target> <chainedCommand: ExecuteChainedOption_0>
  10. execute rotated <yaw: value> <pitch: value> <chainedCommand: ExecuteChainedOption_0>
  11. execute rotated as <origin: target> <chainedCommand: ExecuteChainedOption_0>
條件子命令部分
  1. execute <subcommand: Option_If_Unless> block <position: x y z> <block: Block> <blockStates: block states> [chainedCommand: ExecuteChainedOption_0]
  2. execute <subcommand: Option_If_Unless> block <position: x y z> <block: Block> [chainedCommand: ExecuteChainedOption_0]
  3. execute <subcommand: Option_If_Unless> blocks <begin: x y z> <end: x y z> <destination: x y z> <scan mode: BlocksScanMode> [chainedCommand: ExecuteChainedOption_0]
  4. execute <subcommand: Option_If_Unless> entity <target: target> [chainedCommand: ExecuteChainedOption_0]
  5. execute <subcommand: Option_If_Unless> score <target: target> <objective: string> <operation: compare operator> <source: target> <objective: string> [chainedCommand: ExecuteChainedOption_0]
  6. execute <subcommand: Option_If_Unless> score <target: target> <objective: string> matches <range: integer range> [chainedCommand: ExecuteChainedOption_0]
執行子命令部分
  1. execute run <command: command>

參數與範例[編輯]

align變更執行座標為方塊座標(且向下取整)。

語法[編輯]

align <axes: string> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

axes 軟列舉參數
string型別,必選,為xyz的任意不重複組合,不考慮順序。例如xxzyxxzy等。
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型別,必選,指定命令的執行維度。可以為netheroverworldthe_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格。

ifunless是條件子命令,可用於對特定條件進行檢測或者作為命令執行的限制條件。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> [chainedCommand: ExecuteChainedOption_0]

參數[編輯]

subcommand 列舉參數
Option_If_Unless型別,必選,指定命令的執行條件。可以選填為ifunless,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
position 基本參數
x y z型別,必選,指定待檢測位置。若填寫相對座標,則命令的執行位置以執行者的位置為參考。必須為有效的座標
block 列舉參數
Block型別,必選,指定待檢測位置是否為特定方塊。必須為有效的方塊ID或方塊名。
blockStates 基本參數
block states型別,必選。指定待檢測方塊的方塊狀態。
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時則檢測成功時不透過。
beginend 基本參數
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 - 當玩家踩到紅色混凝土時,殺死該玩家。