Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement
execute
需要的權限等級

Java版:2
基岩版:1

限制條件

啟用作弊[僅基岩版]

/execute是各不同功能的子命令的集合,用於改變命令執行上下文(修飾子命令),執行邏輯判斷(條件子命令)和管理並儲存命令回傳值(儲存子命令[僅Java版],並在此基礎上執行任意目標命令。

概述[]

子命令分類[]

子命令按功能可分為以下幾類:

使用子命令[]

子命令可以在/execute後串連在一起使用,可出現在命令的任意位置及重複任意次數(run子命令除外,其只能位於末尾且只能使用一次)。

條件子命令或run子命令必須作為命令結尾,否則不產生實際效果。

子命令處理順序[]

各子命令按其在命令中的順序被依次處理,下列命令中子命令雖然一致,但由於順序不同,會產生不同效果:

  • /execute as @e at @s run tp ^ ^ ^1:所有實體向各自所朝方向移動一格。
  • /execute at @s as @e run tp ^ ^ ^1:所有實體移動到執行者前方一格。

run子命令會在其他子命令被處理後再處理,因此它不影響其他子命令。

回傳值[]

若有語法錯誤或指定的命名空間ID不存在,命令就中途終止並提示錯誤,此時無回傳值。

Java版中,若命令未中途終止,命令執行後,會回傳其success(成功次數)和result(結果)兩個回傳值,其:

  • 值均來自結尾的條件子命令或run子命令。若被執行多次,回傳值為最後一次執行的;
  • 均為整數,result遇小數時向下取整;
  • success總為0或1。
  • 無命令執行成功時兩值均為0;
  • 均可由儲存子命令儲存。

/execute命令本身也有成功次數(無論是否中途終止),通常為0或1,但若被分開執行多次(如/execute as @a -> execute)則可大於1[僅Java版]。使用命令方塊執行命令時,此值會被回傳到該命令方塊上,可用條件制約的命令方塊檢查是否成功,或用紅石比較器讀取成功次數。

語法樹[]

下面列出了各子命令及其語法的語法樹。其中的所有-> execute[僅Java版]chainedCommand: ExecuteChainedOption_0[僅基岩版]表示此位置可作為下一個子命令的起始點。

修飾子命令[]

可用子命令:

  • align:將執行位置轉換為方塊座標。
  • anchored:將執行基準點設定為實體的腳部或眼部。
  • as:將執行者設定為特定實體。
  • at:將執行位置、執行朝向和執行維度設定為指定實體的座標、朝向和維度。
  • facing:將命令的執行朝向設定為面向指定座標或指定實體。
  • in:將命令執行維度設定為特定維度。
  • on:將執行者設定為與目前執行者有指定類型的關係的實體。
  • positioned:將執行位置設定為指定座標或指定實體位置。
  • rotated:將執行朝向設為特定方向或設為指定實體的朝向。
  • summon[僅Java版]:立即建立一個實體,並將此實體設定為執行者。

align[]

將執行位置轉換為方塊座標(向下取整)。
語法
JEalign <axes> -> execute
BEalign <axes: string> <chainedCommand: ExecuteChainedOption_0>
參數
JE<axes>swizzle
BEaxes: string
需要轉換的座標軸。
必須為座標組合。軸的聲明順序沒有要求,但是不可以重複聲明。
效果
改變執行座標,指定軸上的座標向下取整。
參數未正確指定時視為語法錯誤。
示例
  • /execute positioned -1.8 2.3 5.9 align xz run tp ~ ~ ~:把自己從(-1.8, 2.3, 5.9)傳送至(-2, 2.3, 5)。
  • /execute positioned 2.4 -1.1 3.8 align yxz run spawnpoint @p ~ ~ ~:目前執行位置為(2.4, -1.1, 3.8),將最近玩家的重生點設定為(2, -2, 3)。
  • /execute align y run tp ~ ~ ~:把自己的Y座標微調,向下取整。

anchored[]

將執行基準點設定為實體的腳部或眼部,預設為腳部。
語法
JEanchored <anchor> -> execute
BEanchored <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
參數
JE<anchor>entity_anchor
BEeyes|feet
需要設定的基準點位置。
必須為eyesfeeteyes為眼部,feet為腳部。
效果
將局部座標的執行基準點設為眼睛或腳,並改變facing子命令所指向的位置。
參數不正確時,視為語法錯誤。
示例
  • /tp的效果是透過將腳部移動到指定的位置來移動實體。
  • /execute anchored eyes run tp ^ ^ ^:將命令執行者的腿部移動到原眼部位置。
  • /execute anchored eyes run tp ^5 ^ ^:將命令執行者的腿部移動到原眼部位置左邊5格的位置上。

as[]

將執行者設定為特定實體,但不改變其他命令變數。[需要測試基岩版]
語法
JEas <targets> -> execute
BEas <origin: target> <chainedCommand: ExecuteChainedOption_0>
參數
JE<targets>entity
BEorigin: target
需要設定的執行者,影響後續子命令。
必須為玩家名、目標選擇器或UUID[僅Java版]
效果
將執行者改為目標實體(改變@s的含義)。
參數不正確時,視為語法錯誤。
<targets>origin: target無法解析為一個或多個有效實體(指定玩家必須線上)時,命令終止執行。
當選擇到多個實體時,以各個實體為執行者分別執行一次後續子命令。
示例
  • /execute as @e[type=sheep] run data get entity @s[僅Java版]:取得所有綿羊的數據。
  • /execute as @a[gamemode=spectator] run spectate[僅Java版]:使所有旁觀模式的玩家從其附身的實體上退出。

at[]

將執行位置、執行朝向和執行維度[需要測試基岩版]設定為指定實體的座標、朝向和維度,不改變命令執行者。
語法
JEat <targets> -> execute
BEat <origin: target> <chainedCommand: ExecuteChainedOption_0>
參數
JE<targets>entity
BEorigin: target
指定目標實體。
必須為玩家名、目標選擇器或UUID[僅Java版]
結果
將命令的執行位置、朝向和維度變更為目標實體的。(影響相對座標局部座標的定位)
參數不正確時,視為語法錯誤。
<targets>origin: target無法解析為一個或多個有效實體(指定玩家必須線上)時,命令終止執行。
當選擇到多個實體時,以各個實體的位置、朝向和維度,分別執行一次後續子命令。
示例
  • /execute at @r run setblock ~ ~-1 ~ stone:在一名隨機玩家腳下放置一塊石頭
  • /execute as @e[type=sheep] at @s run tp ~ ~1 ~:將所有綿羊向上移動1格。
  • /execute at @e[type=sheep] run kill @s:殺死執行者而非所有綿羊(at子命令不修改執行者)。

facing[]

將命令的執行朝向設定為面向指定座標或指定實體,不改變命令執行者和執行位置。
語法
JEfacing <pos> -> execute
BEfacing <position: x y z> <chainedCommand: ExecuteChainedOption_0>
將命令的執行朝向設定為執行基準點到指定座標的射線方向。
JEfacing entity <targets> <anchor> -> execute
BEfacing entity <origin: target> <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
將命令的執行朝向設定為執行基準點到指定實體的指定基準點的射線方向。
參數
JE<pos>vec3
BEposition: x y z
需要面向的座標。
必須為三維座標,元素為浮點數。允許波浪號與脱字號標記
JE<targets>entity
BEorigin: target
需要面向的實體。
必須為玩家名、目標選擇器或UUID
JE<anchor>entity_anchor
BEeyes|feet
需要面向實體的眼部還是腳部。
必須為eyesfeet
效果
將執行朝向設定為面向指定的座標或目標實體。
參數不正確時,視為語法錯誤。
<targets>origin: target無法解析為一個或多個有效實體(指定玩家必須線上)時,命令終止執行。
當選擇到多個實體時,以各個實體的朝向分別執行一次後續子命令。
示例
  • /execute facing ^1 ^ ^ run tp ~ ~ ~[僅Java版]:將執行者的視角左轉90度。
  • /execute as @e at @s facing 0 64 0 run tp ^ ^ ^1:將所有實體都朝(0, 64, 0)的方向移動一格(不改變自身朝向)。
  • /execute as @e at @s facing 0 64 0 run tp ^ ^ ^1 ~ ~:將所有實體都朝(0, 64, 0)的方向移動一格(改變自身朝向)。
  • /execute as @e[type=!player] at @s facing entity @p feet run tp ^ ^ ^1:所有非玩家實體朝着各自距離最近的玩家的方向移動一格(不改變自身的朝向)。

in[]

將命令執行維度設定為特定維度。命令將在指定的維度中執行。
語法
JE<dimension> -> execute
BE<dimension: Dimension> <chainedCommand: ExecuteChainedOption_0>
參數
JE<dimension>dimension
BEdimension: Dimension
需要設定的維度。
必須為維度命名空間IDminecraft命名空間下的維度預設有overworldthe_nether[僅Java版]/nether[僅基岩版]the_end
效果
更新執行維度。並依據原維度與現維度間關係,按比例縮放相對座標和局部座標(不包括Y軸)。
參數不正確時,視為語法錯誤。
示例
  • /execute in the_end run locate structure end_city:從任意維度中定位終界中的終界城。
  • /execute in the_nether positioned as @s run tp ~ ~ ~:將玩家傳送到地獄中的對應位置。
  • /execute in the_nether run tp ~ ~ ~:將玩家傳送到地獄中的對應位置。若玩家原先位於其他維度的(X, Y, Z)處,則傳送到地獄的(X÷8, Y, Z÷8)處。
  • /execute in the_nether run tp ~ ~ ~5:將玩家傳送到地獄中的對應位置。若玩家原先位於其他維度的(X, Y, Z)處,則傳送到地獄的(X÷8, Y, Z÷8+5)處。

on[]

將執行者設定為與目前執行者有指定類型的關係的實體。
語法
JEon (attacker|controller|leasher|owner|passengers|target|vehicle) -> execute
參數
JE(attacker|controller|leasher|origin|owner|passengers|target|vehicle)
attacker:最近5秒內對目前執行者造成傷害的最後實體。
controller:控制目前執行者的實體。
leasher:用牽繩牽引目前執行者的實體。
origin:目前執行者的來源。
若目前執行者為投射物,則為其發射者。
若目前執行者為物品,則為其掟出者。
若目前執行者為藥水效果雲,則為其來源者。
若目前執行者為點燃的TNT,則為其點燃者。
若目前執行者為喚魔者尖牙惱鬼,則為其召喚者。
owner:目前執行者為可馴服生物時,此實體的主人。
passengers:直接騎乘於目前執行者的實體。
target:目前執行者的攻擊目標。若目前執行者為互動實體,則為最後與其互動的玩家。
vehicle:正在被目前執行者騎乘的實體。
效果
若指定的關係不適用於目前執行實體,或此關係下沒有匹配實體,則回傳0個元素。
參數不正確時,視為語法錯誤。
若此參數無法解析為一個或多個有效實體(指定玩家必須線上)時,命令終止執行。
示例
/execute as @e[type=sheep] on attacker run kill @s:殺死5秒內對附近可檢測到的所有綿羊發起攻擊動作的所有最後一個實體。
/execute as @e[type=cat] on leasher run damage @s 2 generic:給拴着貓的實體施加2(♥點普通傷害。

positioned[]

將執行位置設定為指定座標或指定實體位置,但不改變執行執行者、執行朝向和執行維度。
語法
JEpositioned <pos> -> execute
BEpositioned <position: x y z> <chainedCommand: ExecuteChainedOption_0>
將執行位置設定為指定座標。
JEpositioned as <targets> -> execute
BEpositioned as <origin: target> <chainedCommand: ExecuteChainedOption_0>
將執行位置設定為指定實體位置。
JEpositioned over <heightmap> -> execute
將執行位置設定為符合特定高度圖的一縱列方塊的最高的位置。
參數
JE<pos>vec3
BEposition: x y z
指定命令執行的座標。
必須為三維座標,元素為浮點數。允許波浪號與脱字號標記
JE<targets>entity
BEorigin: target
指定命令執行的位置為此處指定的實體所處的座標。
必須為玩家名、目標選擇器或UUID
JE<heightmap>heightmap
指定高度圖。須為下列選項之一:
  • world_surface:任意非空氣方塊。
  • motion_blocking:任意能阻擋移動嘅方塊(如忽略花草)。
  • motion_blocking_no_leaves:任意不包括樹葉的能阻擋移動嘅方塊。
  • ocean_floor:任意能阻擋移動嘅非流體方塊。
效果
改變命令的執行位置。positioned <pos>會將執行基準點設定為腳部。
參數不正確時,視為語法錯誤。
<targets>origin: target無法解析為一個或多個有效實體(指定玩家必須線上)時,命令終止執行。
當選擇到多個實體時,以各個實體的位置分別執行一次後續子命令。
示例
  • /execute positoned 0 64 0 run locate structure #village[僅Java版]:尋找離座標(0, 64, 0)最近的村莊。
  • /execute positoned 0 64 0 run locate structure village[僅基岩版]:尋找離座標(0, 64, 0)最近的村莊。

rotated[]

將執行朝向設為特定方向,或設為指定實體的朝向,但不改變執行者和執行位置。
語法
JErotated <rot> -> execute
BErotated <yaw: value> <pitch: value> <chainedCommand: ExecuteChainedOption_0>
將命令的執行朝向設為特定方向。
JErotated as <targets> -> execute
BErotated as <origin: target> <chainedCommand: ExecuteChainedOption_0>
將命令的執行朝向設為指定實體的朝向。
參數
JE<rot>rotation<yaw> <pitch>
BEyaw: valuepitch: value
需要的旋轉角度。
必須為兩個雙精確度浮點陣列成的朝向,分別表示繞Y軸旋轉和繞X軸旋轉,以度為單位。
  • 繞Y軸旋轉時,-180.0表示北,-90.0表示東,0.0表示南,90.0表示西。
  • 繞X軸旋轉時,豎直上方為-90.0,至豎直下方90.0。
波浪號將相對於執行者進行旋轉。
JE<targets>entity
BEorigin: target
採用指定實體的朝向。
必須為玩家名、目標選擇器或UUID
效果
參數不正確時,視為語法錯誤。
<targets>實體不存在時命令終止執行。
<targets>origin: target無法解析為一個或多個有效實體(指定玩家必須線上)時,命令終止執行。
當選擇到多個實體時,以各個實體的朝向分別執行一次後續子命令。
示例
  • /execute as @e[type=sheep] at @s rotated as @p run tp @s ^ ^ ^1:讓所有的綿羊以各自距離最近玩家的朝向作為方向移動1格。

summon[]

Information icon
此特性為Java版獨有。
立即生成一個實體,並將執行者設定為此實體。
語法
JEsummon <entity> -> execute
參數
JE<entity>entity_summon
需要生成的實體類型。
必須為可召喚實體類型的命名空間ID
效果
參數不正確時,視為語法錯誤。
示例
  • /execute summon villager run damage @e[type=iron_golem,sort=nearest,limit=1] 1 generic by @s:在玩家位置上生成一名村民,並讓它對距其最近的鐵人造成1(♥點普通傷害。

條件子命令[]

條件子命令包括ifunless兩種,用於測試特定類型的條件。兩者的語義相反但參數結構一致,if表示「如果……就」,unless表示「除非……否則」。

條件子命令可以單獨使用,也可以與其他子命令一起使用,根據其處於整條命令中的位置,其行為也有區別:

  • 位於整條命令的末尾時,條件子命令會直接輸出測試結果。
  • 不位於整條命令的末尾時,條件子命令會根據自身語義與測試結果,決定後續子命令是否執行。
    • 若由多個變數(如執行者、執行位置、執行朝向)執行多次時,可作為變數過濾器使用。

可用條件類型:

  • biome[僅Java版]:檢測給定位置上的生物羣落是否為特定生物羣落。
  • block:檢測給定位置上的方塊是否是特定的方塊或方塊狀態及。
  • blocks:檢測給定區域內的方塊是否匹配另一個同等大小區域內的方塊。
  • data[僅Java版]:檢測方塊、實體或儲存容器是否擁有給定的NBT標籤。
  • dimension:檢測命令執行時所處的維度是否為特定維度。
  • entity:檢測一個或多個特定實體是否存在。
  • loaded:檢測給定位置是否已被載入。
  • predicate[僅Java版]:檢測述詞計算結果是否為正。
  • score:檢測指定目標的計分板中的計分項的分數是否與另一個(或同一個)目標的計分板的計分項的分數是否符合指定的關係,或者是否在給定的範圍之內。

(if|unless) biome[]

Information icon
此特性為Java版獨有。
檢測給定位置上的生物羣落是否為特定生物羣落。
語法
JE(if|unless) biome <pos> <biome> -> execute
參數
JE<pos>block_pos
需要檢測的位置。
必須為方塊座標,包括<X>、<Y>和<Z>,每個值都必須是整數或者含有波浪號與脱字號標記
JE<biome>biome_predicate
需要檢測的生物羣落或生物羣落標籤的命名空間ID。
參見生物羣落/ID標籤§生物羣落以查看所有可用的生物羣落ID和生物羣落標籤。
效果
參數未正確指定時視為語法錯誤。
若未透過測試或出現下列情形,終止執行後續子命令(不位於末尾)或執行失敗(位於末尾):
  • <pos>所指定的位置未載入或位於世界外。
若位於末尾且執行成功,successresult均回傳1。

(if|unless) block[]

檢測給定位置上的方塊是否是特定的方塊或方塊狀態。
語法
JE(if|unless) block <pos> <block> -> execute
BE<subcommand: Option_If_Unless> block <position: x y z> <block: Block> [<blockStates: block states>] [chainedCommand: ExecuteChainedOption_0]
參數
JE<pos>block_pos
BEposition: x y z
需要檢測的方塊的座標。
必須為方塊座標,包括<X>、<Y>和<Z>,每個值都必須是整數或者含有波浪號與脱字號標記
JE<block>block_predicate
BEblock: Block
需要檢測的方塊或方塊標籤的命名空間ID。在Java版中,可以附加方塊狀態和NBT標籤。
必須為方塊參數(接受方塊的標籤)。
BEblockStates: block statesBlockStateCommandParam
需要檢測的方塊的方塊狀態。
必須為格式為["<键1>"=<值1>,"<键2>"=<值2>,...]的方塊狀態,例如:["old_leaf_type"="birch","persistent_bit"=true]
效果
參數未正確指定時視為語法錯誤。
若未透過測試或出現下列情形,終止執行後續子命令(不位於末尾)或執行失敗(位於末尾):
  • <pos>position: x y z所指定的位置未載入或位於世界外。
若位於末尾且執行成功,successresult均回傳1。
示例
  • /execute as @a at @s if block ~ ~-1 ~ stone run kill @s:擊殺所有踩在石頭上的玩家。

(if|unless) blocks[]

檢測給定區域內的方塊是否匹配另一個同等大小區域內的方塊。
語法
JE(if|unless) blocks <start> <end> <destination> (all|masked) -> execute
BE<subcommand: Option_If_Unless> blocks <begin: x y z> <end: x y z> <destination: x y z> <scan mode: BlockScanMode> [chainedCommand: ExecuteChainedOption_0]
參數
JE<start>block_pos
BEbegin: x y z
JE<end>block_pos
BEend: x y z
需要檢測的源區域(比較時參照的區域)的兩個對角方塊位置。
必須為方塊座標,包括<X>、<Y>和<Z>,每個值都必須是整數或者含有波浪號與脱字號標記
JE<destination>block_pos
BEdestination: x y z
需要檢測的對照區域的西北下角方塊的座標(即長方體區域內座標最小處)。
必須為方塊座標,包括<X>、<Y>和<Z>,每個值都必須是整數或者含有波浪號與脱字號標記
JE(all|masked)
BEscan mode: BlockScanMode
需要使用的檢測模式,可以是all(檢測區域內全部方塊)或masked(檢測區域內除空氣外的全部方塊)。
效果
參數未正確指定時視為語法錯誤。
若未透過測試或出現下列情形之一,終止執行後續子命令(不位於末尾)或執行失敗(位於末尾):
  • <start>begin: x y z<end><end: x y z><destination>destination: x y z所指定的位置未載入或位於世界外。
  • 要檢測的源區域方塊數大於32768。
若位於末尾且執行成功,success回傳1。result回傳:
  • 匹配上的方塊數(if)。
  • 1(unless)。

(if|unless) data[]

Information icon
此特性為Java版獨有。
檢測方塊、實體或儲存容器是否擁有給定的NBT標籤。
語法
JE(if|unless) data block <sourcePos> <path> -> execute(方塊)
JE(if|unless) data entity <source> <path> -> execute(實體)
JE(if|unless) data storage <source> <path> -> execute(儲存容器)
參數
JE<sourcePos>block_pos
需要檢測的方塊的座標。
必須為方塊座標,包括<X>、<Y>和<Z>,每個值都必須是整數或者含有波浪號與脱字號標記
JE<source>entitydata entity子命令)
需要檢測的單個實體。
必須為玩家名、目標選擇器或UUID。且目標選擇器只允許1個實體。
JE<source>resource_locationdata storage子命令)
需要檢測的儲存容器的命名空間ID。
必須為命名空間ID
JE<path>nbt_path
需要檢測的NBT標籤。
必須為NBT路徑
效果
參數未正確指定時視為語法錯誤。
若未透過測試或出現下列情形之一,終止執行後續子命令(不位於末尾)或執行失敗(位於末尾):
  • <pos>所指定的位置未載入或位於世界外。
  • <pos>所指定的位置上不是方塊實體。
  • <target>data entity)無法解析為一個或多個有效實體(指定玩家必須線上)。
若位於末尾且執行成功,success回傳1。result回傳:
  • 匹配上的NBT標籤數(if)。
  • 1(unless)。
示例
  • /execute as @a if data entity @s Inventory[{}].tag.Enchantments run give @s stone:給予所有擁有附魔物品的玩家一塊石頭。

(if|unless) dimension[]

檢測命令執行時所處的維度是否為特定維度。
語法
JE(if|unless) dimension <dimension> -> execute
參數
JE<dimension>dimension
需要檢測的維度。
必須為維度命名空間ID
效果
參數未正確指定時視為語法錯誤。
若未透過測試,終止執行後續子命令(不位於末尾)或執行失敗(位於末尾)。
若位於末尾且執行成功,success回傳1。result回傳:
  • 匹配上的維度數(if)。
  • 1(unless)。

(if|unless) entity[]

檢測一個或多個特定實體是否存在。
語法
JE(if|unless) entity <entities> -> execute
BE<subcommand: Option_If_Unless> entity <target: target> [chainedCommand: ExecuteChainedOption_0]
參數
JE<entities>entity
BEtarget: target
需要檢測的目標實體。
必須為玩家名、目標選擇器或UUID
效果
參數未正確指定時視為語法錯誤。
若未透過測試或出現下列情形,終止執行後續子命令(不位於末尾)或執行失敗(位於末尾):
  • <entities>target: target無法解析為一個或多個有效實體(指定玩家必須線上)。
若位於末尾且執行成功,success回傳1。result回傳:
  • 匹配上的實體數(if)。
  • 1(unless)。
示例
  • /execute if entity @e[type=sheep] run function foo:bar:若世界中有綿羊就執行函數foo:bar
  • /execute as @e[type=creeper] at @s unless entity @e[type=ocelot,distance=..3] run kill @s:擊殺所有在3格範圍內沒有豹貓的Creeper。

(if|unless) loaded[]

檢測給定位置是否已被載入。
語法
JE(if|unless) loaded <pos> -> execute
參數
JE<pos>block_pos
需要檢測的位置。
必須為方塊座標,包括<X>、<Y>和<Z>,每個值都必須是整數或者含有波浪號與脱字號標記
效果
參數未正確指定時視為語法錯誤。
若未透過測試或出現下列情形,終止執行後續子命令(不位於末尾)或執行失敗(位於末尾):
  • <pos>所指定的位置位於世界外。
若位於末尾且執行成功,successresult均回傳1。

(if|unless) predicate[]

Information icon
此特性為Java版獨有。
檢測述詞(Predicate)是否透過(結果是否為正),用法詳見述詞
語法
JE(if|unless) predicate <predicate> -> execute
參數
JE<predicate>resource_location
需要用於測試條件的述詞,其應當回傳一個正值。
必須為命名空間ID
效果
參數未正確指定時視為語法錯誤。
若未透過測試或出現下列情形,終止執行後續子命令(不位於末尾)或執行失敗(位於末尾):
  • 指定的述詞不存在。
若位於末尾且執行成功,successresult均回傳1。

(if|unless) score[]

檢測指定目標的計分板中的計分項的分數是否與另一個(或同一個)目標的計分板的計分項的分數是否符合指定的關係,或者是否在給定的範圍之內。
語法
JE(if|unless) score <target> <targetObjective> (=|<|<=|>|>=) <source> <sourceObjective> -> execute
BE<subcommand: Option_If_Unless> score <target: target> <objective: string> <operation: compare operator> <source: target> <objective: string> [chainedCommand: ExecuteChainedOption_0]
檢測<target><targetObjective>的分數與<source><sourceObjective>的分數是否符合特定運算符表示的關係。
JE(if|unless) score <target> <targetObjective> matches <range> -> execute
BE<subcommand: Option_If_Unless> score <target: target> <objective: string> matches <range: integer range> [chainedCommand: ExecuteChainedOption_0]
檢測<target><targetObjective>的分數是否在指定<range>內。
參數
JE<target>score_holder
BEtarget: target
需要檢測的單個分數持有者。
必須為分數持有者,可以是目標選擇器、玩家名(可以不線上)、UUID,或用於表示所有正在被追蹤實體的*
可以執行*但判定失敗。
JE<targetObjective>objective
BEobjective: string
需要檢測的計分項。
必須為計分項的名稱。
JE(=|<|<=|>|>=)
BEoperation: compare operator
指定運算符,檢查左操作數(目的計分項)與右操作數(源計分項)之間的關係是否符合此處定義的關係。
JE<source>score_holder
BEsource: target
需要被比較的單個分數持有者。
必須為分數持有者,可以是目標選擇器、玩家名(可以不線上)、UUID,或用於表示所有正在被追蹤實體的*
可以執行*但判定失敗。
JE<sourceObjective>objective
BEobjective: string
需要被比較的計分項。
必須為計分項的名稱。
JE<range>int_range
BErange: integer range
被檢查分數需要符合的範圍。
必須為整數範圍。(例如0 - 精準匹配0,..0 - 匹配小於等於0的值,0.. - 匹配大於等於0的值,0..1 - 匹配0~1的值,含)
效果
參數未正確指定時視為語法錯誤。
若未透過測試或出現下列情形,終止執行後續子命令(不位於末尾)或執行失敗(位於末尾):
  • <target>target: target<source>source: target*
若位於末尾且執行成功,successresult均回傳1。
示例
  • /execute if score @s a = @s b:檢測自己的a分數與b分數是否相等。

儲存子命令[]

Information icon
此特性為Java版獨有。

儲存子命令可以將最後一個命令的resultsuccess值儲存到指定位置。

它與其他子命令一起處理,先行記錄儲存位置,不影響其他子命令。當最後一個子命令執行後,將其回傳值存入指定位置,可以是計分板、NBT數據或Boss狀態條

可用存入位置:

  • block:將resultsuccess存入指定方塊實體的指定NBT標籤內。
  • bossbar:將resultsuccess存為Boss狀態條的目前值或最大值。
  • entity:將resultsuccess存入指定實體的指定NBT標籤內。
  • score:將resultsuccess存入指定分數持有者的指定計分項上。
  • storage:將resultsuccess存入指定儲存容器的指定NBT標籤內。

store (result|success) block[]

resultsuccess存入指定方塊實體的指定NBT標籤內。
語法
JEstore (result|success block <targetPos> <path> (int|float|short|long|double|byte) <scale> -> execute
參數
JE<targetPos>block_pos
回傳值需要存入的目標方塊實體的座標。
必須為方塊座標,包括<X>、<Y>和<Z>,每個值都必須是整數或者含有波浪號與脱字號標記
JE<path>nbt_path
回傳值需要存入的NBT路徑。
必須為NBT路徑
JE(int|float|short|long|double|byte)
回傳值及目標NBT的數據類型。
只能為int、​float、​short、​long、​doublebyte之一。分別表示整型、單精度浮點型、短整型、長整型、雙精確度浮點型和字節型。
JE<scale>double
回傳值儲存時的倍率。
必須為雙精確度浮點數
結果
參數不正確時,視為語法錯誤。
路徑不存在時不進行操作。
執行成功時,將回傳值向下取整並乘以<scale>後儲存在<targetPos>處方塊實體的<path>NBT標籤處,並儲存為指定的NBT格式

store (result|success) bossbar[]

resultsuccess存為Boss狀態條的目前值或最大值。
語法
JEstore (result|success bossbar <id> (value|max) -> execute
參數
JE<id>resource_location
回傳值需要存入的目標Boss狀態條的命名空間ID。
必須為命名空間ID
JE(value|max)
回傳值需要存入的是Boss狀態條的目前值(value)或是最大值(max)。
結果
參數不正確時,視為語法錯誤。
執行成功時,將回傳值向下取整,存為命名空間ID為<id>的Boss狀態條的目前值或最大值。

store (result|success) entity[]

resultsuccess存入指定實體的指定NBT標籤內。與/data一樣,此命令不能修改玩家的NBT。
語法
JEstore (result|success) entity <target> <path> (int|float|short|long|double|byte) <scale> -> execute
參數
JE<target>entity
回傳值需要存入的目標實體。
必須為玩家名、目標選擇器或UUID
JE<path>nbt_path
回傳值需要存入的NBT路徑。
必須為NBT路徑
JE(int|float|short|long|double|byte)
回傳值及目標NBT的數據類型。
只能為int、​float、​short、​long、​doublebyte之一。分別表示整型、單精度浮點型、短整型、長整型、雙精確度浮點型和字節型。
JE<scale>double
回傳值儲存時的倍率。
必須為雙精確度浮點數
結果
參數不正確時,視為語法錯誤。
路徑不存在時不進行操作。
執行成功時,將回傳值向下取整並乘以<scale>後儲存在<target>實體的<path>NBT標籤處,並儲存為指定的NBT格式

store (result|success) score[]

resultsuccess存入指定分數持有者的指定計分項上。
語法
JEstore (result|success) score <targets> <objective> -> execute
參數
JE<targets>score_holder
回傳值需要存入的目標分數持有者。
必須為分數持有者,可以是目標選擇器、玩家名(可以不線上)、UUID,或用於表示所有正在被追蹤實體的*
JE<objective>objective
回傳值需要存入的目標計分項名稱。
必須為計分項的名稱。
結果
參數不正確時,視為語法錯誤。
執行成功時,將回傳值向下取整並乘以<scale>後儲存在<target>持有的<objective>分數中。

store (result|success) storage[]

resultsuccess存入指定儲存容器的指定NBT標籤內。
語法
JEstore (result|success) storage <target> <path> (int|float|short|long|double|byte) <scale> -> execute
參數
JE<target>resource_location
回傳值需要存入的目標儲存容器的命名空間ID。
必須為命名空間ID
JE<path>nbt_path
回傳值需要存入的目標NBT路徑。
必須為NBT路徑
JE(int|float|short|long|double|byte)
回傳值及目標NBT的數據類型。
只能為int、​float、​short、​long、​doublebyte之一。分別表示整型、單精度浮點型、短整型、長整型、雙精確度浮點型和字節型。
JE<scale>double
回傳值儲存時的倍率。
必須為雙精確度浮點數
結果
參數不正確時,視為語法錯誤。
若目標儲存容器不存在,則建立。
執行成功時,將回傳值向下取整並乘以<scale>後儲存在<target>儲存容器的<path>NBT標籤處,並儲存為指定的NBT格式

run子命令[]

要被執行的目標命令。
語法
JErun ...
BErun <command: command>
參數
JE...
BEcommand: command
任何一個完整的命令,不可以以斜線開頭。
技術細節[僅Java版]
將命令節點重設為命令調度器的根節點。
注意:
命令調度器是在玩家開始輸入以斜槓/開頭的訊息時開始的。
命令節點是游標正在編輯的特定詞(word)或項(entry),是一個命令或參數。
根節點在目前命令的第一個詞之前出現。
結果
執行此命令。指定的命令執行成功時成功,失敗時失敗。

更多示例[]

  • 將所有快捷欄第一欄位物品帶有效率附魔的玩家傳送到0, 64, 0:
    /execute as @a if data entity @s Inventory[{Slot:0b}].tag.Enchantments[{id:"minecraft:efficiency"}] run tp @s 0 64 0[僅Java版]
  • 在所有玩家眼睛前方三格召喚煙霧粒子效果:
    /execute as @a at @s anchored eyes run particle smoke ^ ^ ^3[僅Java版]
  • 將所有在5米以內有玩家的豬上
    /execute as @e[type=pig] at @s store success entity @s Saddle byte 1 if entity @p[distance=..5][僅Java版]
  • 讓所有在中的玩家在聊天框裏説:「我的腳濕了!」:
    /execute as @a at @s if block ~ ~ ~ water run say "我的腳濕了!"
  • 讓所有「test」計分板未設定的玩家在聊天框裏説:「分數已重設」:
    /execute as @a unless score @s test = @s test run say "分數已重設"
  • 將距離最近的玩家3格內的所有豬掟向天空:
    /execute at @p as @e[type=pig,distance=..3] run data merge entity @s {Motion:0.0,2.0,0.0]}[僅Java版]
  • 殺死所有沒有頭盔的喪屍:
    /execute as @e[type=zombie] unless data entity @s ArmorItems[3].id run kill @s[僅Java版]

歷史[]

Java版
1.814w07a加入了/execute命令。
14w08a在命令方塊中執行的run子命令現在會把成功值傳回命令方塊了。
1.1116w32a加入了方塊狀態支援。
1.1317w45a語法被拆分。
17w45b重製了/execute store (result|success)
18w02a加入了新的子命令以允許透過命令進行更多的控制。
18w05a加入了/execute store (result|success) bossbar
1.1418w43a加入了/execute (if|unless) data
1.1519w38a加入了/execute (if|unless) predicate
加入了/execute store (result|success) storage
1.19.322w46a加入了/execute (if|unless) biome
1.19.423w03a加入了/execute on/execute (if|unless) dimension/execute (if|unless) loaded
23w04a/execute on加入了origin關係。
23w06a加入了/execute summon
pre1加入了/execute positioned over
1.20.223w31a加入了/execute (if|unless) function
pre1暫時移除了/execute (if|unless) function
攜帶版Alpha
0.16.0build 1加入了/execute
此命令的功能相當於其在Java版1.10的功能,但在/execute中實體目標是可選的。
基岩版
1.19.101.19.10.20更新了語法以近似匹配Java版,屬於實驗性玩法
1.19.401.19.40.20加入了/execute rotated/execute rotated as子命令,屬於實驗性玩法
1.19.40.21加入了/execute facing/execute facing entity/execute align子命令,屬於實驗性玩法
1.19.40.23加入了/execute in/execute anchored <eyes|feet>子命令,屬於實驗性玩法
1.19.501.19.50.231.19.10.20起的所有實驗性玩法均不再屬於實驗性玩法
1.19.701.19.70.21移除了data: int參數。

影片[]

語言

Advertisement