<本站文本内容除另有声明外,转载时均必须注明出处。(详情…本站文本内容除另有声明外,转载时均必须注明出处。(详情…中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!Minecraft中文Wiki微博正在更新!或许有兴趣去看看Minecraft中文Wiki微博正在更新!或许有兴趣去看看想与其他用户进行编辑上的沟通?社区专页正是为此创建的。想与其他用户进行编辑上的沟通?社区专页正是为此创建的。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。需要管理员的协助?在管理员告示板留言也许可以帮到您。需要管理员的协助?在管理员告示板留言也许可以帮到您。>

指令方塊

出自Minecraft Wiki
前往: 導覽搜尋
指令方塊
Impulse Command Block.gifChain Command Block.gifRepeating Command Block.gif
Conditional Impulse Command Block.gifConditional Chain Command Block.gifConditional Repeating Command Block.gif
指令方塊連鎖式指令方塊重複型指令方塊
稀有度

史詩

透明

亮度

0

爆炸抗性

18,000,000

硬度

-1

工具

可再生

可堆疊

是(64)

可燃盡

可被熔岩點燃

掉落物

自身

方塊實體ID

command_block

數據值

數據值

命名空間ID

數據值

Jeb twitter.jpg 那麼這些方塊將可以通過紅石信號控制來執行指令。只要使用恰當的指令,很多東西都能被編程。
——Jeb關於指令方塊的宣告 [1]

指令方塊(Command Block)是一種用以執行指令方塊。因為生存模式中只能通過作弊獲得,它常用在多人伺服器與自定義地圖中。

獲取[編輯 | 編輯原始碼]

指令方塊可以通過選取方塊鍵或各種指令,比如/give @s minecraft:command_block獲得。

就像其他的方塊實體一樣,指令方塊有對應的方塊實體,能夠存儲NBT數據,使用ctrl + 選取方塊會複製指令方塊內的指令和設定。這允許它被放置在別的地方時無須重新輸入裡面的數據。

指令方塊不在創造模式物品欄中,不能在生存模式中或以非管理員身份破壞,不能被點燃,有和基岩一樣的爆炸抗性。指令方塊不能被活塞推動。

用途[編輯 | 編輯原始碼]

為了避免囉嗦,以下段落可能對帶類型的指令方塊進行縮寫
例如,連鎖式指令方塊稱為連鎖方塊,等等
參見:指令教程/指令方塊

指令方塊可以被紅石信號開啟。此項沒有權限限制,可以被一些通常情況不能使用指令的玩家執行一個特定的指令(比如,允許所有人通過/give獲得一件特定的物品,而不是讓他們用/give獲得任何他們想要的東西)。

指令方塊會擁有朝向(facing),決定哪個連鎖方塊會受到感應,「條件制約」模式的指令方塊會受哪個指令方塊控制。

設定[編輯 | 編輯原始碼]

指令方塊GUI

要輸入或修改指令,對指令方塊點擊使用鍵以打開指令方塊GUI(圖形用戶介面)。GUI只會在玩家處於創造模式, 擁有相關權限才會打開。在單機遊戲裡,作弊必須開啟才可以編輯指令方塊。在多人遊戲中,只能由創造模式中的管理員所編輯。為了使指令方塊能工作,以下在server.properties的配置必須設定為:

  • enable-command-block必須為true
  • op-permission-level必須為2及以上(預設為4)
控制台指令
指令可被輸入到第一個文本框。指令方塊的指令長度限定在32,500個字符以內,但這個文本框一次只能顯示其中的一小段。按Tab ↹可以補全指令且循環代入可選項。
指令方塊內的指令可以加斜槓前綴(/),就像在聊天框使用時的那樣,但這不是必需的。
在指令文本框下是一些如何使用目標選擇器的小提示。
上一個輸出
下方的文本框顯示上一個指令的輸出。這裡的文本無法編輯。
文本框右邊的按鈕設定上一個輸出是否儲存並顯示。它設定輸出將隱藏時為O(預設),將顯示時為X。當世界中有很多指令方塊,尤其是電路高速運轉時,不顯示輸出可以減少內存使用以處理很多請求。
脈衝/循環/連鎖
點擊「脈衝/連鎖/循環」按鈕可更改指令方塊類型。預設為「脈衝」,但非預設類型的指令方塊也能被放置。指令方塊改變類型時也會改變顏色:
  • 「脈衝」方塊是橙色的。這種方塊是「標準」的指令方塊,激活一次執行一次指令。
  • 「連鎖」方塊是綠色的。這種方塊只在指向它的方塊執行指令時才會執行指令。這不同於條件制約模式,連鎖方塊檢測的是指向著它的指令方塊,而不是在它後面。指向它的指令方塊不必是連鎖方塊。
  • 「循環」方塊是紫色的。這種方塊被激活時每一遊戲都執行一次指令。
條件制約/不受制約
上方:「不受制約」模式的指令方塊 下方:「條件制約」模式的指令方塊
點擊「條件制約/不受制約」按鈕來改變指令方塊的條件制約行為:
  • 「條件制約」:只有當背後的指令方塊成功執行指令時才會執行指令 ("背後" 的意思是指令方塊的指向的反方向,無視連鎖方向)。
  • 「不受制約」(預設):指令方塊將忽略背後的方塊。
保持開啟/紅石控制
點擊「保持開啟/紅石控制」按鈕改變指令方塊的開啟需求條件:
  • 「紅石控制」(脈衝方塊和循環方塊的預設設定):指令方塊必須像紅石機械一樣激活才能執行指令。
  • 「保持開啟」(連鎖方塊的預設設定):指令方塊甚至在沒有紅石信號時也會保持為開啟狀態 (連鎖式指令方塊將在感應後執行指令, 重複型指令方塊將在每一遊戲刻執行一次指令(每秒20次),脈衝型指令方塊在設定完畢後將立即激活,且此後將無法再次執行)。
完成
點擊「完成」按鈕或按↵ Enter以保存指令並退出指令方塊GUI。
取消
點擊「取消」按鈕或按Esc在不保存任何修改的情況下退出指令方塊GUI。

激活[編輯 | 編輯原始碼]

指令方塊屬於紅石機械 且能由以下物件激活:

指令方塊有1遊戲刻的延遲,當它受到紅石更新時將在1遊戲刻後做出反應(激活或撤銷激活)。

當被激活時,指令方塊將嘗試執行它的指令。激活後的動作將取決於指令方塊的類型:

  • 指令方塊(「脈衝型」)會在剛激活時嘗試執行指令一次。
  • 連鎖的指令方塊(「連鎖型」)將在指向它的指令方塊執行指令後才會執行指令。
  • 循環中的指令方塊(「循環型」)將會在每個遊戲刻都嘗試執行一次指令直到不再被激活為止。

連鎖執行[編輯 | 編輯原始碼]

如果一個指向連鎖方塊的指令方塊被激活了,它將向連鎖方塊發出準備執行指令的信號。連鎖方塊只有在被激活開啟時,在「條件制約」模式下還要在背後的指令方塊成功執行指令時(背後針對指向而言,不是說某個指令方塊接入連鎖的方向),才會執行指令。不管這個連鎖方塊是否執行指令,只要指向另一個連鎖方塊,它也同樣會發送出準備執行指令的信號。

連鎖中的方塊將在同一遊戲刻執行指令。連鎖執行的信號無法傳遞給一個已經在這個遊戲刻執行過指令的方塊。

輸出[編輯 | 編輯原始碼]

當激活時,指令方塊可以有幾種不同類型的輸出:

紅石比較器
指令方塊可以向背對它的紅石比較器輸入一個信號,強度取決於上一個指令的執行情況的信號(例如,被指令所影響的玩家數)。
信號強度一直根據上一個指令的執行情況保持,即使是在指令方塊關閉之後。
消息
輸出消息描述執行指令的成功與否,會有幾種輸出位置:
上一個輸出:輸出消息都會寫入指令方塊GUI的「上一個輸出」文本框裡。
聊天框:輸出信息將在單人模式下或多人模式下對所有管理員寫入聊天框,除非已經用/gamerule commandBlockOutput false攔截。一些指令可能會在聊天框寫入其正常工作時的附帶文本,這不會被攔截。(比如,/say指令將在所有玩家的聊天框寫入消息)。帶有執行者的名字作為前綴的聊天信息(比如指令/me/say/tell)會使用@作為執行者名字。如果指令方塊在放置前已經被命名過,那麼就使用這個名字。
日誌:輸出信息會寫入到多人聯機伺服器日誌,除非使用/gamerule logAdminCommands false攔截。
指令統計
Information icon.svg
此特性為基岩版獨有。
指令方塊可以推送多種成功結果到記分板目標,包括:
  • SuccessCount:成功的次數(之前也能用紅石比較器輸出,但不會限制到15)
  • AffectedBlocks:被修改的方塊的個數
  • AffectedEntities:被修改的實體的個數,包括玩家
  • AffectedItems:被修改的物品的個數
  • QueryResult:指令的返回值
要使用的目標可以用指令/stats確定或直接用指令/blockdata修改指令方塊的NBT數據。

備註[編輯 | 編輯原始碼]

以下指令不能在指令方塊中使用:/ban/banlist/ban-ip/debug/deop/kick/op/pardon/pardon-ip/publish/reload/save-all/save-off/save-on/stop/whitelist(也就是/debug/publish和所有除了/list外的多人遊戲指令)。

以下指令可以使用但功能受限(它們的輸出只會在指令方塊的「上一個輸出」文本框顯示而不是聊天框):/help/seed/list/scoreboard objectives/scoreboard players/team list

以下指令會在輸出中用到指令方塊的名字(預設為@):/me/say/tell

彩蛋[編輯 | 編輯原始碼]

在指令方塊中不加「/」運行指令「Searge」會把上一個輸出設為「#itzlipofutzli」。另外,如果在指令方塊中運行/help,它會給出一些帶有「Searge says:(Searge說:) 」前綴的信息。

數據值[編輯 | 編輯原始碼]

指令方塊擁有ID名稱minecraft:command_block並在方塊數據方塊實體中有更深的定位。指令方塊也有 方塊狀態旨在未來的版本中取代方塊數據,

ID[編輯 | 編輯原始碼]

指令方塊的ID決定於其類型:

名稱 ID 名稱 數字ID‌‌[僅BE]

指令方塊
minecraft:command_block 137

重複型指令方塊
minecraft:repeating_command_block 210

連鎖式指令方塊
minecraft:chain_command_block 211

方塊實體
minecraft:command_block‌‌[僅JE] -

方塊數據[編輯 | 編輯原始碼]

參見:數據值

指令方塊的方塊數據用於確定方塊是否處於開啟狀態:

位元 數值
0x1 在指令方塊已經在上一次激活了當前指令時設定
0x2
0x4
0x8
(未使用)

在1.9:

位元 數值
0x1
0x2
0x4

3個位元的空間儲存了指令方塊的朝向

  • 0: 朝下
  • 1: 朝上
  • 2: 朝北
  • 3: 朝南
  • 4: 朝西
  • 5: 朝東

6 和 7 未被使用但會造成指令方塊分別朝下和朝上

0x8 未使用但設定後造成指令方塊的朝向相似於那些沒有設定位元的方塊。

方塊實體[編輯 | 編輯原始碼]

參見:區塊格式§方塊實體

指令方塊有包含方塊附加數據的方塊實體。方塊的方塊實體ID為command_block


  • 方塊實體數據
    • 方塊實體共通標籤 see Template:Nbt inherit/blockentity/template

    •  CustomName:非必須項。當前指令方塊名稱的JSON文本組件,取代由指令方塊執行了/say/tell等指令後預設出現的「@」符號。

    •  Command:指令方塊中的指令。

    •  SuccessCount:表達用紅石比較器輸出的模擬信號強度。只在指令方塊用紅石信號激活後更新。

    •  LastOutput:上一條指令方塊生成的輸出。遊戲規則commandBlockOutput為false時依舊會儲存。在右鍵打開指令方塊GUI時顯示,包含生成輸出的時間戳

    •  TrackOutput:1或0(true/false) - 決定LastOutput是否儲存。可以在GUI中點擊"上一個輸出"文本框旁的按鈕進行開關。按鈕上的標誌指示出目前的狀態:O為true,X為false。

    •  powered:1或0(是/否) - 決定指令方塊現在的狀態是否被紅石所激活。

    •  auto:1或0(是/否) - 允許指令方塊在沒有紅石信號的情況下激活指令。

    •  conditionMet:1或0(是/否)- 指示條件指令塊在上次激活時是否滿足其條件。如果不是條件指令塊,則為1。

    •  UpdateLastExecution:1或0(是/否) - 預設為是。如果設為否,創建循環後同一個指令方塊可以在一刻內運行多次。

    •  LastExecution:儲存一個連鎖式指令方塊最後被執行的遊戲刻。


方塊狀態[編輯 | 編輯原始碼]

參見:方塊狀態
名稱 預設值 接受值 描述
conditionalfalsetrue
false
當指令方塊為條件制約模式為真
facingnorthnorth
south
east
west
up
down
指令方塊的指向

歷史[編輯 | 編輯原始碼]

參見:指令§歷史
Java版
2012年7月27日Jeb開始發一些關於擴展生存模式的新方塊的推文。他開始推送一些圖片,想法和方塊將來用法的線索。
2012年7月31日Notch在他的AMA中暗示這個方塊會在1.4中出現。
1.4.2 12w32a Impulse Command Block JE1.png 加入了指令方塊。
1.5 13w03a 指令方塊的成功運行可用紅石比較器輸出信號。
13w04a 鐵砧重命名的指令方塊在聊天框中會用其名字代替@
1.6.1 13w19a 指令方塊在生存模式中不再可破壞,也不會在爆炸中破壞,但藍色的凋零骷髏頭顱除外。
1.7.2 13w37a 加入了一個顯示上一個輸出的框。
增加遊戲內輸入指令的字符限制從256到16,369。使用第三方編輯器可以達到32767個字符。
1.8 14w07a 發射器會放置指令方塊,而不是發射它。
14w20a 移除了遊戲內16369的字符限制,允許達到最高的32767個字符。
14w27a 加入了CommandStatsNBT標籤。
1.8.6 發射器不再放置指令方塊。[2]
1.9 15w34a Chain Command Block JE1.pngRepeating Command Block JE1.png 加入了連鎖式指令方塊和重複型指令方塊。
加入了方塊朝向。
Impulse Command Block JE2.png 更改了指令方塊材質。
15w34b 加入了條件制約模式。
15w35a Impulse Command Block JE3 BE1.pngChain Command Block JE2 BE1.pngRepeating Command Block JE2 BE1.png 更改了所有指令方塊的材質。
加入了保持開啟和紅石控制選項。加入了autoNBT標籤負責控制此項。
設定為條件制約模式後,指令方塊箭頭尾部會彎曲。
15w36a 不能使用像/give這類指令的玩家不再能放置指令方塊。
15w36d 不同類型的指令方塊現在在地圖上將顯示不同的顏色。
16w02a 現在在指令方塊中運行/help將隨機使用各種不同的幽默短語作為上一個輸出。
16w04a 在指令方塊中不帶「/」將「Searge」作為指令運行,輸出會變成「#itzlipofutzli」。
1.11 16w32a 方塊實體ID由Control更改為command_block
1.12 17w16a 連鎖式指令方塊不再安排指令鏈中的指令在下一刻執行了,現在這些指令會在被讀取後的同一刻執行。這使之後放置的方塊可以經由之前放置的方塊被修改,由此可以在一個遊戲刻內實現分支、循環等手法。
加入了遊戲規則maxCommandChainLength以決定連鎖式指令方塊運行的限度。
17w17a 加入了NBT標籤UpdateLastExecutionLastExecution,可以控制對存儲連鎖式指令方塊最後執行的那一刻的跟蹤。
pre6 指令方塊中使用Tab鍵來自動補全的指令名稱不再添加/前綴。
1.13 17w47a 扁平化之前,指令方塊、循環型、連鎖式指令方塊的數字ID分別為137、210、211。
pre1 玩家現在可以重新用tab鍵補全指令了。
1.14 18w43a Impulse Command Block JE4.pngChain Command Block JE3 BE2.pngRepeating Command Block JE3.png 更改了所有指令方塊的材質。
18w47b Impulse Command Block JE5 BE2.png Repeating Command Block JE4 BE2.png 更改了脈衝型和重複型指令方塊的材質。
攜帶版
1.0.5 alpha 1.0.5.0 Impulse Command Block JE3 BE1.pngChain Command Block JE2 BE1.pngRepeating Command Block JE2 BE1.png 加入了所有種類的指令方塊。
基岩版
1.8.0 beta 1.8.0.8 指令方塊現在的預設名稱為!而不是@
1.10.0 beta 1.10.0.3 Impulse Command Block JE5 BE2.pngChain Command Block JE3 BE2.pngRepeating Command Block JE4 BE2.png 更改了材質。
1.12.0 beta 1.12.0.2 加入了自動完成功能。
加入了延遲選項。
原主機版
TU19CU71.12Patch 1Impulse Command Block JE2.png 加入了指令方塊。
指令方塊沒有任何功能。

畫廊[編輯 | 編輯原始碼]

參考[編輯 | 編輯原始碼]