/execute
指令可以變更執行者和執行位置,然後執行指令。
本地玩家將預設使用最新版本的指令語法。附加包將透過清單檔案中的最低引擎版本來判斷該附加包中的/execute
指令使用的指令版本。最低引擎版本是一種語義版本,由語義版本轉化為指令版本的映射如下表所示。
目前指令版本列舉
鍵名 |
值 |
對應的引擎版本 |
描述
|
Invalid |
-1 |
N/A |
無效
|
Initial |
1 |
N/A |
初始版本
|
TpRotationClamping |
2 |
N/A |
/tp 的旋轉角進行鉗制
|
NewBedrockCmdSystem |
3 |
N/A |
引入新的基岩版指令系統
|
ExecuteUsesVec3 |
4 |
N/A |
/execute 使用Vec3 類
|
CloneFixes |
5 |
N/A |
/clone 問題修復
|
UpdateAquatic |
6 |
N/A |
海洋更新
|
EntitySelectorUsesVec3 |
7 |
N/A |
@e 選擇器使用Vec3 類
|
ContainersDontDropItemsAnymore |
8 |
1.8.0 |
容器不再掉落物品
|
FiltersObeyDimensions |
9 |
1.9.0 |
過濾器遵循所在維度
|
ExecuteAndBlockCommandAndSelfSelectorFixes |
10 |
1.13.0 |
/execute 、方塊相關指令和@s 選擇器問題修復
|
InstantEffectsUseTicks |
11 |
1.15.0 |
立即傷害和立即治療持續時間改用刻數
|
DontRegisterBrokenFunctionCommands |
12 |
1.16.0 |
不再註冊對應函式有問題的指令
|
ClearSpawnPointCommand |
13 |
1.16.100 |
/clearspawnpoint 指令
|
CloneAndTeleportRotationFixes |
14 |
1.16.210 |
|
TeleportDimensionFixes |
15 |
1.16.220 |
|
CloneUpdateBlockAndTimeFixes |
16 |
1.17.30 |
|
CloneIntersectFix |
17 |
1.17.40 |
|
FunctionExecuteOrderAndChestSlotFix |
18 |
1.18.10 |
|
NonTickingAreasNoLongerConsideredLoaded |
19 |
1.18.20 |
|
SpreadplayersHazardAndResolvePlayerByNameFix |
20 |
1.19.0 |
|
NewExecuteCommandSyntaxExperimentAndChestLootTableFixAndTeleportFacingVerticalUnclampedAndLocateBiomeAndFeatureMerged |
21 |
1.19.10 |
新版/execute 進入實驗性玩法
|
WaterloggingAddedToStructureCommand |
22 |
1.19.20 |
|
SelectorDistanceFilteredAndRelativeRotationFix |
23 |
1.19.30 |
|
NewSummonCommandAddedRotationOptionsAndBubbleColumnCloneFix |
24 |
1.19.40 |
|
NewExecuteCommandReleaseEnchantCommandLevelFixAndHasItemDataFixAndCommandDeferral |
25 |
1.19.50 |
新版/execute 走出實驗性玩法
|
ExecuteIfScoreFixes |
26 |
1.19.60 |
|
ReplaceItemAndLootReplaceBlockCommandsDoNotPlaceItemsIntoCauldronsFix |
27 |
1.19.70 |
|
ChangesToCommandOriginRotation |
28 |
1.19.70 |
移除方塊相關指令的與資料值有關的多載
|
RemoveAuxValueParameterFromBlockCommands |
29 |
1.19.70 |
|
VolumeSelectorFixes |
30 |
1.19.70 |
|
EnableSummonRotation |
31 |
1.19.70 |
|
SummonCommandDefaultRotation |
32 |
1.19.70 |
|
PositionalDimensionFiltering |
33 |
1.19.80 |
|
CommandSelectorHasItemFilterNoLongerCallsSameItemFunction AgentSweepingBlockTest |
34 |
1.20.0 |
|
|
35 |
1.20.10 |
|
|
36 |
1.20.30 |
|
|
37 |
1.20.60 |
|
|
38 |
1.20.70 |
|
版本28語法中,execute分為了許多子指令,有如下3類,11條子指令,共18個多載:
- 修飾子指令:修改指令變數和指令的執行方式,從而以特定的執行者、執行位置、執行維度、執行座標執行指令。修飾子指令有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> [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> [chainedCommand: ExecuteChainedOption_0]
subcommand
列舉參數
- Option_If_Unless型別,必選,指定指令的執行條件。可以選填為
if
或unless
,當填寫為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時則檢測成功時不透過。
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
- 當玩家踩到紅色混凝土時,殺死該玩家。
版本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
- 當玩家踩到紅色混凝土時,殺死該玩家。
初始版本語法中,該指令只有兩個多載。
execute <origin: target> <position: x y z> <command: command>
execute <origin: target> <position: x y z> detect <detectPos: x y z> <block: Block> <data: int> <command: command>
多載1變更指令的執行者和執行位置,然後直接執行指令。
origin
基本參數
- target型別,必選,指定指令要以何實體為執行者。必須為玩家名或目標選擇器。
position
基本參數
- x y z型別,必選,指定指令要以何位置為執行位置。若填寫相對座標,則指令的執行位置以
origin: target
的位置為參考。必須為座標。
command
基本參數
- command型別,必選,指定執行什麼指令。特殊的,這指令可以為
/execute
。只能執行權限等級小於等於1的指令。
多載2變更指令的執行者和執行位置,然後檢測特定位置是否為特定方塊(類似於/testforblock
),檢測透過後執行指令。
origin
基本參數
- target型別,必選,指定指令要以何實體為執行者。必須為玩家名或目標選擇器。
position
基本參數
- x y z型別,必選,指定指令要以何位置為執行位置。若填寫相對座標,則指令的執行位置以
origin: target
的位置為參考。必須為座標。
detectPos
基本參數
- x y z型別,必選,指定待檢測位置。若填寫相對座標,則指令的執行位置以
origin: target
的位置為參考。必須為座標。
block
列舉參數
- Block型別,必選,指定待檢測位置是否為特定方塊。必須為有效的方塊ID或方塊名。
data
基本參數
- int型別,必選,指定待檢測位置的方塊資料值。設定為-1可以匹配該方塊的任意資料值。
command
基本參數
- command型別,必選,指定執行什麼指令。特殊的,這指令可以為
/execute
。只能執行權限等級小於等於1的指令。
指令 | 觸發條件 | 執行結果 |
---|
任意 | 參數未正確指定 | 失敗 |
origin 無法解析為一個實體或多個實體(若為玩家名則必須線上) |
(對於多載2)檢測結果不一致 |
指令執行失敗 |
執行成功 | 指令以特定的執行者和執行位置執行 |
/execute @e[type=zombie] ~ ~ ~ setblock ~ ~-1 ~ diamond_block
- 在殭屍腳下放置鑽石方塊。
/execute @r ~ ~ ~ summon lightning_bolt ~ ~ ~
- 雷劈一名隨機玩家。
/execute @a ~ ~ ~ detect ~~-1~ concrete 14 kill @s
- 當玩家踩到紅色混凝土時,殺死該玩家。
WebSocket[編輯]
- :根物件
- header:報文訊息的頭。
- messagePurpose:該條報文訊息的傳送目的,對於指令響應恆為
commandResponse
。
- requestId:造成該響應的請求報文的UUID。
- version:該報文的版本。
- body:報文訊息的內容。
- statusCode:該響應的狀態碼。
- statusMessage:該響應的狀態訊息,對於指令響應為該指令的執行意見回饋文字。
Manual:/execute/response
腳本API[編輯]
Template:Commands