指令方塊(Command Block)是一種用於執行指令的方塊,只能透過作弊獲得,常用於多人伺服器與自訂地圖中。
生成[]
指令方塊不會生成在世界中。
取得[]
指令方塊的物品形式只能透過創造模式物品欄/give指令獲得,也可用/setblock等指令放置。
在Java版中,就像其他的方塊實體一樣,指令方塊有對應的方塊實體,能夠儲存NBT資料,使用Ctrl + 選取方塊會複製指令方塊內的指令和設定。這允許它被放置在別的地方時無須重新輸入裡面的資料。
破壞[]
指令方塊不能被挖掘破壞。
Lua錯誤 在Module:Breaking_table的第443行:bad argument #1 to 'ipairs' (table expected, got string)
指令方塊被破壞後不會掉落。
權限等級不足21
用途[]
指令方塊可以被紅石訊號所開啟。此項沒有權限限制,可以被一些通常情況不能使用指令的玩家執行一個特定的指令(比如,允許所有人透過/give獲得一件特定的物品,而不是讓他們用/give獲得任何他們想要的東西)。
指令方塊會擁有朝向(facing),決定哪個連鎖式指令方塊會受到感應,「有條件」模式的指令方塊會受哪個指令方塊控制。
要執行指令,在Java版中,多人遊戲中server.properties檔案中的enable-command-block必須設定為true(預設為false);在基岩版中,必須啟用選項中的「指令方塊已開啟」。
指令方塊的權限等級為21
玩家無法在生存模式下打開指令方塊的互動介面並修改其內容。
指令方塊不能在生存模式中或以非管理員身份破壞,不能被點燃,有和基岩一樣的爆炸抗性。指令方塊不能被活塞推動。
設定[]
Java版指令方塊GUI
要輸入或修改指令,對指令方塊點擊使用鍵以打開指令方塊GUI(圖形使用者介面)。GUI只會在玩家處於創造模式,擁有相關權限才會打開。在單人遊戲裡,玩家必須處於創造模式並啟動了作弊功能才可以編輯指令方塊。在多人遊戲中,只能由創造模式中的管理員所編輯。為了使指令方塊能工作,以下在server.properties的配置必須設定為:
enable-command-block必須為trueop-permission-level必須為2及以上(預設為4)
基岩版指令方塊GUI
- 控制台指令
- 指令可被輸入到第一個文字框。指令方塊的指令長度限定在32,500個字元以內,但這個文字框一次只能顯示其中的一小段。按Tab ↹可以補全指令且循環代入可選項。
- 指令方塊內的指令可以加斜槓前綴(
/),就像在聊天框使用時的那樣,但這不是必需的。
- 上一個輸出
- 文字框右邊
[僅JE]或左邊 [僅BE]的按鈕控制上一個輸出是否儲存並顯示。它設定為輸出時將顯示為 O[僅JE]或開關打開 [僅BE](預設),設定為隱藏時將顯示為 X[僅JE]或開關關閉 [僅BE]。當世界中有很多指令方塊,尤其是電路高速運轉時,不顯示輸出可以減少記憶體使用以處理很多請求。
- 脈衝/重複/連鎖
- 點擊「脈衝/重複/連鎖」按鈕可變更指令方塊類型。預設為「脈衝」,但非預設類型的指令方塊也能被放置。指令方塊改變類型時也會改變顏色:
- 脈衝型指令方塊是橙色的。這種方塊是「標準」的指令方塊,啟動一次執行一次指令。
- 連鎖式指令方塊是綠色的。這種方塊只在指向它的方塊執行指令時才會執行指令。指向它的指令方塊不必是連鎖式指令方塊。
- 重複型指令方塊是紫色的。這種方塊被啟動時每一遊戲刻都執行一次指令。
- 有條件/無條件
上方:「無條件」模式的指令方塊
下方:「有條件」模式的指令方塊
- 點擊「有條件/無條件」按鈕來改變指令方塊的條件制約行為:
- 「有條件」:只有當背後的指令方塊成功執行指令時才會執行指令(「背後」的意思是該指令方塊上箭頭指向的反方向,無視連鎖方向)。
- 「無條件」(預設):無論背後的指令方塊是否成功執行指令,該指令方塊都會正常執行指令。
- 永遠啟動/需要紅石
- 點擊「永遠啟動/需要紅石」按鈕改變指令方塊的開啟需求條件:
- 指定重複型指令方塊是否在啟動後立即執行其指令。如果已停用,則從啟動時起延遲後第一次執行。
- 對於脈衝型指令方塊和連鎖式指令方塊,指定在被啟動或觸發後,執行指令之前延遲的遊戲刻。對於重複型指令方塊,指定其重新執行指令所延遲的遊戲刻。對於脈衝型指令方塊和重複型指令方塊,延遲設定為0和1的效果相同,遊戲將把0視為1。但是,對於連鎖式指令方塊,0和1是不同的。當被設定延遲的指令方塊被破壞,未執行的指令將不會執行。
- 懸浮文字
[僅基岩版]
- 指定指令方塊的名稱,當你指向該方塊時可以看到它。它也用於訊息指令。如果指令方塊有在鐵砧中命名,將採用此名稱。如果為空,則預設為
!。
- 完成
- 取消
- 點擊「取消」按鈕或按Esc
[僅Java版]會在不儲存任何修改的情況下退出指令方塊GUI。
啟動[]
當處於「需要紅石」模式下,指令方塊屬於紅石元件且能由以下物件啟動:
- 毗鄰的電源:例如紅石火把(紅石火把附著於指令方塊上時除外)、紅石方塊、日光感測器、按鈕等等;
- 毗鄰的充能方塊;
- 輸出訊號且指向向指令方塊的紅石比較器或紅石中繼器;
- 啟動的且指向指令方塊(或附著其上)的紅石粉。
處於「永遠啟動」的指令方塊將一直被啟動。
指令方塊有1遊戲刻的延遲,當它受到上升沿時將在1遊戲刻後做出反應(啟動或撤銷啟動)。
當被啟動時,指令方塊將嘗試執行它的指令。啟動後的動作將取決於指令方塊的類型:
- 脈衝型指令方塊會在剛啟動時嘗試執行指令一次。
- 連鎖式指令方塊將在指向它的指令方塊執行指令後才會執行指令。
- 重複型指令方塊將會在每個遊戲刻都嘗試執行一次指令直到不再被啟動為止。
連鎖執行[]
如果一個指向連鎖式指令方塊的指令方塊被啟動了,它將向該方塊發出準備執行指令的訊號。連鎖式指令方塊只有在被啟動開啟時(在「條件制約」模式下還要在它所指向方向的反方向的指令方塊成功執行指令時)才會執行指令。不管這個連鎖式指令方塊方塊是否執行指令,只要指向另一個連鎖式指令方塊,它也同樣會發送出準備執行指令的訊號。
連鎖中的方塊將在同一遊戲刻執行指令。連鎖執行的訊號無法傳遞給一個已經在這個遊戲刻執行過指令的方塊。遊戲規則maxCommandChainLength決定了連鎖式指令方塊能連鎖執行的總數量,預設為65536。
輸出[]
當啟動時,指令方塊可以有幾種不同類型的輸出:
- 成功次數
- 指令方塊可以啟動背對它的紅石比較器(兩者可以被一個固體方塊隔著),強度等於指令方塊的成功次數。成功次數是0到2,147,483,647(含)之間的整數。
- 訊號強度總是反映指令方塊最後一次執行的結果,即便指令方塊取消啟動。
- 訊息
- 輸出訊息描述執行指令的成功與否,會有幾種輸出位置:
- 上一個輸出:輸出訊息都會寫入指令方塊GUI的「上一個輸出」文字框裡。
- 聊天框:輸出資訊將在單人模式下或多人模式下對所有管理員寫入聊天框,除非已經用
/gamerule commandBlockOutput false關閉。一些指令可能會在聊天框寫入其正常工作時的附帶文字,這不會被攔截。(比如,/say指令將在所有玩家的聊天框寫入訊息)。帶有執行者的名字作為前綴的聊天資訊(比如指令/me,/say和/tell)會使用@[僅Java版]/ ![僅基岩版]作為執行者名字。如果指令方塊在放置前已經被命名過,那麼就使用這個名字。
- 日誌:輸出資訊會寫入到多人遊戲伺服器日誌,除非使用
/gamerule logAdminCommands false關閉。
備註[]
以下指令不能在指令方塊中使用:/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」。
音效[]
| 音效 | 字幕 | 分類 | 描述 | 命名空間ID | 本地化鍵名 |
|---|---|---|---|---|---|
| 方塊破壞聲 | 方塊 | 破壞方塊 | block.metal.break | subtitles.block.generic.break | |
| 無[音效 1] | 玩家 | 帶有墜落傷害時墜落在方塊上 | block.metal.fall | 無[音效 1] | |
| 正在破壞方塊 | 方塊 | 挖掘方塊 | block.metal.hit | subtitles.block.generic.hit | |
| 方塊放置聲 | 方塊 | 放置方塊 | block.metal.place | subtitles.block.generic.place | |
| 腳步聲 | 玩家 | 在方塊上行走 | block.metal.step | subtitles.block.generic.footsteps |
基岩版:
| 音效 | 分類 | 描述 | 命名空間ID | 系統音效類型 | 音量 | 音高 | 衰減距離 | 流 | 預載 |
|---|---|---|---|---|---|---|---|---|---|
| - | 方塊 | 方塊作為物品使用時發出的音效 | use.anvil | item.use.on | 1.0 | 1.8 | 16 | 否 | 否 |
| 方塊 | 破壞方塊 | dig.stone | break | 1.0 | 1.65-1.8 | 16 | 否 | 是 | |
| 方塊 | 挖掘方塊 | hit.stone | hit | 0.3 | 1.125 | 16 | 否 | 是 | |
| 方塊 | 放置方塊 | dig.stone | place | 1.0 | 1.8-1.875 | 16 | 否 | 是 | |
| 玩家 | 帶有墜落傷害時墜落在方塊上 | fall.stone | fall | 0.4 | 1.5 | 16 | 否 | 否 | |
| 玩家 | 在方塊上行走 | step.stone | step | 0.35 | 1.5 | 16 | 否 | 是 | |
| 方塊 | 在方塊上跳躍 | jump.stone | jump | 0.12 | 1.5 | 16 | 否 | 是 | |
| 方塊 | 在方塊上著陸 | land.stone | land | 0.22 | 1.5 | 16 | 否 | 否 |
資料值[]
指令方塊擁有ID名稱minecraft:command_block並在方塊資料 和 方塊實體中有更深的定位。指令方塊也有 方塊狀態旨在未來的版本中取代方塊資料,
ID[]
| 名稱 | 命名空間ID | 方塊標籤(JE) | 本地化鍵名 |
|---|---|---|---|
| 指令方塊 | command_block | dragon_immunewither_immune | block.minecraft.command_block |
| 連鎖式指令方塊 | chain_command_block | block.minecraft.chain_command_block | |
| 重複型指令方塊 | repeating_command_block | block.minecraft.repeating_command_block |
| 名稱 | 命名空間ID |
|---|---|
| 方塊實體 | command_block |
基岩版:
| 名稱 | 命名空間ID | 數字ID | 本地化鍵名 |
|---|---|---|---|
| 指令方塊 | command_block | 137 | tile.command_block.name |
| 連鎖式指令方塊 | chain_command_block | 189 | tile.chain_command_block.name |
| 重複型指令方塊 | repeating_command_block | 188 | tile.repeating_command_block.name |
| 名稱 | 存檔ID |
|---|---|
| 方塊實體 | command_block |
方塊資料[]
在基岩版中,指令方塊的方塊資料用於確定方塊朝向與條件制約模式:
| 位元 | 數值 |
|---|---|
| 0x1 0x2 0x4 |
3個位元的空間儲存了指令方塊的朝向
6 和 7 未被使用但會造成指令方塊分別朝下和朝上 |
| 0x8 | 決定該方塊的條件制約狀態 |
方塊狀態[]
| 名稱 | 預設值 | 接受值 | 描述 |
|---|---|---|---|
| conditional | false | truefalse | 當指令方塊為條件制約模式時為「true」 |
| facing | north | northsoutheastwestupdown | 指令方塊的朝向 |
基岩版:
| 名稱 | 對應的附加值位 | 預設值 | 接受值 | 附加值位的值 | 描述 |
|---|---|---|---|---|---|
| conditional_bit | 0x8 | false | falsetrue | 01 | 當指令方塊為條件制約模式時為「true」 |
| facing_direction | 0x10x20x4 | 0 | 012345 | 012345 | 指令方塊的朝向
|
方塊實體[]
- 方塊實體資料
- 方塊實體共通標籤
- auto:表示此指令方塊是否保持開啟。
- Command:指令方塊中的指令。
- conditionMet:表示受條件制約的指令方塊是否滿足條件。如果此指令方塊不受制約,此值為true。
- CustomName:表示目前指令方塊名稱的JSON文字,預設為「@」。
- LastOutput:上一條指令的輸出,是一個JSON文字。遊戲規則
commandBlockOutput為false時依舊會儲存。當 TrackOutput為false時不存在。 - LastExecution:上一條指令執行的時間戳。當 UpdateLastExecution為false時不存在。
- powered:表示指令方塊是否已被啟動。
- SuccessCount:表示用紅石比較器輸出的模擬訊號強度。只在指令方塊啟動後更新。
- TrackOutput:表示是否儲存上一條指令的輸出。可以在GUI中點擊"上一個輸出"文字框旁的按鈕進行開關。按鈕上的標誌指示出目前的狀態:O為true,X為false。
- UpdateLastExecution:表示是否儲存上一條指令執行的時間戳。
基岩版:
- 方塊實體資料
- 方塊實體共通標籤
- Command:指令方塊內的指令。
- Version:資料版本。
- SuccessCount:成功次數,表示紅石比較器輸出的訊號強度。
- CustomName:指令方塊的自訂名稱,顯示在方塊頂部以及GUI內。
- LastOutput:由指令方塊最新的一行輸出的本地化鍵名。在遊戲規則
commandBlockOutput被設定為false時仍會儲存。在指令方塊的GUI中顯示。 - LastOutputParams:輸出的本地化字串的參數列表。
- :具體參數。
- TrackOutput:用於決定是否儲存
LastOutput。可以在指令方塊UI內的「上一個輸出」旁邊的按鈕進行控制。 - LastExecution:儲存指令方塊最後一次執行指令的時間。
- TickDelay:執行每次指令的間隔時間(刻)。
- ExecuteOnFirstTick:在儲存或啟動後在首個刻執行指令時為true。
指令方塊有包含方塊附加資料的方塊實體。方塊的方塊實體ID為command_block。
歷史[]
| Java版 | |||||
|---|---|---|---|---|---|
| 2012年7月27日 | Jeb開始發一些關於擴展生存模式的新方塊的推文。他開始推送一些圖片,想法和方塊將來用法的線索。 | ||||
| 2012年7月31日 | Notch在他的AMA中暗示這個方塊會在1.4中出現。 | ||||
| 1.4.2 | 12w32a | ||||
| 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 | 發射器不再放置指令方塊。[4] | ||||
| 1.9 | 15w34a | ||||
| 加入了方塊朝向。 | |||||
| 15w34b | 加入了條件制約模式。 | ||||
| 15w35a | |||||
加入了保持開啟和紅石控制選項。加入了autoNBT標籤負責控制此項。 | |||||
| 設定為條件制約模式後,指令方塊箭頭尾部會彎曲。 | |||||
| 15w36a | 不能使用像/give這類指令的玩家不再能放置指令方塊。 | ||||
| 15w36d | 不同類型的指令方塊現在在地圖上將顯示不同的顏色。 | ||||
| 16w02a | 現在在指令方塊中執行/help將隨機使用各種不同的幽默短語作為上一個輸出。 | ||||
| 16w04a | 在指令方塊中不帶「/」將「Searge」作為指令執行,輸出會變成「#itzlipofutzli」。 | ||||
| 1.11 | 16w32a | 方塊實體ID由Control變更為command_block。 | |||
| 1.12 | 17w16a | 連鎖式指令方塊不再安排指令鏈中的指令在下一刻執行了,現在這些指令會在被讀取後的同一刻執行。這使之後放置的方塊可以經由之前放置的方塊被修改,由此可以在一個遊戲刻內實現分支、循環等手法。 | |||
加入了遊戲規則maxCommandChainLength以決定連鎖式指令方塊執行的限度。 | |||||
| 17w17a | 加入了NBT標籤UpdateLastExecution和LastExecution,可以控制對儲存連鎖式指令方塊最後執行的那一刻的跟蹤。 | ||||
| pre6 | 指令方塊中使用Tab鍵來自動補全的指令名稱不再加入/前綴。 | ||||
| 1.13 | 17w47a | 在平坦化之前,指令方塊、循環型、連鎖式指令方塊的數字ID分別為137、210、211。 | |||
| pre1 | 玩家現在可以重新用Tab ↹補全指令了。 | ||||
| 1.14 | 18w43a | ||||
| 18w47b | |||||
| 1.19.3 | 22w44a | 現在所有種類的指令方塊均可從創造模式物品欄中取得。 | |||
| 攜帶版 | |||||
| 1.0.5 | 1.0.5.0 | ||||
| 基岩版 | |||||
| 1.8.0 | 1.8.0.8 | 指令方塊現在的預設名稱為!而不是@。 | |||
| 1.10.0 | 1.10.0.3 | ||||
| 1.12.0 | 1.12.0.2 | 加入了自動完成功能。 | |||
| 加入了延遲選項。 | |||||
| 原主機版 | |||||
| TU19 | CU7 | 1.12 | Patch 1 | ||
| 指令方塊沒有任何功能。 | |||||
畫廊[]
Mojang發布的第一張指令方塊的截圖
參考[]
- ↑ https://twitter.com/jeb_/status/228829830731427840
- ↑ 原文為「Execute on First Tick」,應譯作「首刻執行」
- ↑ 原文為「Delay in Ticks」,應譯作「延遲刻數」
- ↑ https://bugs.mojang.com/browse/MC-80671?focusedCommentId=228546&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-228546
語言








