命令方塊(Command Block)是一種用於執行命令的方塊,只能透過作弊獲得,常用於多人伺服器與自訂地圖中。
生成[]
命令方塊不會生成在世界中。
取得[]
命令方塊的物品形式只能透過創造模式物品欄/give @s minecraft:command_block
命令獲得,也可用/setblock
等命令放置。
在Java版中,就像其他的方塊實體一樣,命令方塊有對應的方塊實體,能夠儲存NBT數據,使用Ctrl + 選取方塊會複製命令方塊內的命令和設定。這允許它被放置在別的地方時無須重新輸入裏面的數據。
破壞[]
命令方塊不能被挖掘破壞。
命令方塊被破壞後不會跌落。
權限等級不足2
1
用途[]
命令方塊可以被紅石訊號所開啟。此項沒有權限限制,可以被一些通常情況不能使用命令的玩家執行一個特定的命令(比如,允許所有人透過/give
獲得一件特定的物品,而不是讓他們用/give
獲得任何他們想要的東西)。
命令方塊會擁有朝向(facing),決定哪個連環型命令方塊會受到感應,「有條件」模式的命令方塊會受哪個命令方塊控制。
要執行命令,在Java版中,多人遊戲中server.properties檔案中的enable-command-block
必須設定為true(預設為false);在基岩版中,必須啟用選項中的「命令方塊已開啟」。
命令方塊的權限等級為2
1
玩家無法在生存模式下打開命令方塊的互動界面並修改其內容。
命令方塊不能在生存模式中或以非管理員身份破壞,不能被點燃,有和基岩一樣的爆炸抗性。命令方塊不能被活塞推動。
設定[]
要輸入或修改命令,對命令方塊點擊使用鍵以打開命令方塊GUI(圖形用户界面)。GUI只會在玩家處於創造模式,擁有相關權限才會打開。在單人遊戲裏,玩家必須處於創造模式並啟動了作弊功能才可以編輯命令方塊。在多人遊戲中,只能由創造模式中的管理員所編輯。為了使命令方塊能工作,以下在server.properties的配置必須設定為:
enable-command-block
必須為true
op-permission-level
必須為2
及以上(預設為4)
- 控制台命令
- 命令可被輸入到第一個文字框。命令方塊的命令長度限定在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 | 2.0 | 1.8 | 16 | 否 | 否 |
方塊 | 破壞方塊 | dig.stone | break | 2.0 | 1.65-1.8 | 16 | 否 | 否 | |
方塊 | 挖掘方塊 | hit.stone | hit | 0.3 | 1.125 | 16 | 否 | 否 | |
方塊 | 放置方塊 | dig.stone | place | 2.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_immune wither_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 | true false | 當命令方塊為條件制約模式時為「true」 |
facing | north | north south east west up down | 命令方塊的朝向 |
基岩版:
名稱 | 對應的附加值位 | 預設值 | 接受值 | 附加值位的值 | 描述 |
---|---|---|---|---|---|
conditional_bit | 0x8 | false | false true | 0 1 | 當命令方塊為條件制約模式時為「true」 |
facing_direction | 0x1 0x2 0x4 | 0 | 0 1 2 3 4 5 | 0 1 2 3 4 5 | 命令方塊的朝向
|
方塊實體[]
- 方塊實體數據
- 方塊實體共通標籤
- 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 | 加入了CommandStats NBT標籤。 | ||||
1.8.6 | 發射器不再放置命令方塊。[4] | ||||
1.9 | 15w34a | 加入了連環型命令方塊和重複型命令方塊。 | |||
加入了方塊朝向。 | |||||
變更了命令方塊紋理。 | |||||
15w34b | 加入了條件制約模式。 | ||||
15w35a | 變更了所有命令方塊的紋理。 | ||||
加入了保持開啟和紅石控制選項。加入了auto NBT標籤負責控制此項。 | |||||
設定為條件制約模式後,命令方塊箭頭尾部會彎曲。 | |||||
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
語言