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

致繁體用戶:由於近期 MediaWiki 簡繁轉換表故障頻發,繁體譯名不能正確顯示。繁體譯名一概以遊戲內為准,不便之處敬請諒解。

命令方块

来自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

爆炸抗性

3,600,000

开采工具

可再生

可堆叠

是(64)

可燃尽

可被熔岩点燃

数据值

数据值

命名空间ID

数据值

Jeb twitter.jpg

那么这些方块将可以通过红石信号控制来执行命令。只要使用恰当的命令,很多东西都能被编程。

——Jeb关于命令方块的宣告 [1]

命令方块(Command Block)是一种用以执行命令方块。因为生存模式中只能通过作弊获得,它常用在多人服务器与自定义地图中。

获取[编辑 | 编辑源代码]

命令方块可以通过选取方块键或使用命令(如/give @s minecraft:command_block‌‌[仅Java版]/give @s command_block‌‌[仅基岩版])获得。

就像其他的方块实体一样,命令方块有对应的方块实体,能够存储NBT数据,使用ctrl + 选取方块会复制命令方块内的命令和设置。这允许它被放置在别的地方时无须重新输入里面的数据。

命令方块不在创造模式物品栏中,不能在生存模式中或以非管理员身份破坏,不能被点燃,有和基岩一样的爆炸抗性。命令方块不能被活塞推动。

用途[编辑 | 编辑源代码]

参见:命令教程/命令方块

命令方块可以被红石信号开启。此项没有权限限制,可以被一些通常情况不能使用命令的玩家执行一个特定的命令(比如,允许所有人通过/give获得一件特定的物品,而不是让他们用/give获得任何他们想要的东西)。

命令方块会拥有朝向(facing),决定哪个连锁型命令方块会受到感应,“条件制约”模式的命令方块会受哪个命令方块控制。

要执行命令,在Java版中,多人游戏server.properties文件中的enable-command-block必须设置为true(默认为false);在基岩版中,必须启用选项中的“命令方块已启用”。

设置[编辑 | 编辑源代码]

命令方块GUI

要输入或修改命令,对命令方块点击使用键以打开命令方块GUI(图形用户界面)。GUI只会在玩家处于创造模式,拥有相关权限才会打开。在单人游戏里,作弊必须开启才可以编辑命令方块。在多人游戏中,只能由创造模式中的管理员所编辑。为了使命令方块能工作,以下在server.properties的配置必须设置为:

  • enable-command-block必须为true
  • op-permission-level必须为2及以上(默认为4)

Java版中,在单人游戏中打开GUI会暂停游戏。

控制台命令
命令可被输入到第一个文本框。命令方块的命令长度限定在32,500个字符以内,但这个文本框一次只能显示其中的一小段。按Tab ↹可以补全命令且循环代入可选项。
命令方块内的命令可以加斜杠前缀(/),就像在聊天框使用时的那样,但这不是必需的。
在命令文本框下是一些如何使用目标选择器的小提示。
上一个输出
下方的文本框显示上一个命令的输出。这里的文本无法编辑。
文本框右边的按钮设置上一个输出是否储存并显示。它设置输出将隐藏时为O(默认),将显示时为X。当世界中有很多命令方块,尤其是电路高速运转时,不显示输出可以减少内存使用以处理很多请求。
脉冲/循环/连锁
点击“脉冲/连锁/循环”按钮可更改命令方块类型。默认为“脉冲”,但非默认类型的命令方块也能被放置。命令方块改变类型时也会改变颜色:
  • 脉冲型命令方块是橙色的。这种方块是“标准”的命令方块,激活一次执行一次命令。
  • 连锁型命令方块是绿色的。这种方块只在指向它的方块执行命令时才会执行命令。这不同于条件制约模式,连锁型命令方块检测的是指向着它的命令方块,而不是在它后面。指向它的命令方块不必是连锁型命令方块。
  • 循环型命令方块是紫色的。这种方块被激活时每一游戏刻都执行一次命令。
条件制约/不受制约
上方:“不受制约”模式的命令方块 下方:“条件制约”模式的命令方块
点击“条件制约/不受制约”按钮来改变命令方块的条件制约行为:
  • “条件制约”:只有当背后的命令方块成功执行命令时才会执行命令(“背后”的意思是命令方块的指向的反方向,无视连锁方向)。
  • “不受制约”(默认):命令方块将忽略背后的方块。
保持开启/红石控制
点击“保持开启/红石控制”按钮改变命令方块的开启需求条件:
  • “红石控制”(脉冲型命令方块和循环型命令方块的默认设置):命令方块必须像红石机械一样激活才能执行命令。
  • “保持开启”(连锁型命令方块的默认设置):命令方块甚至在没有红石信号时也会保持为开启状态 (连锁型命令方块将在感应后执行命令, 循环型命令方块将在每一游戏刻执行一次命令(每秒20次),脉冲型命令方块在设置完毕后将立即激活,且此后将无法再次执行)。
执行第一个已选项‌‌[仅基岩版]
指定循环型命令方块是否在激活后立即执行其命令。如果已禁用,则从激活时起延迟后第一次执行。
已选项中的延迟‌‌[仅基岩版]
对于脉冲型命令方块和连锁型命令方块,指定在被激活或触发后,执行命令之前延迟的游戏刻。对于循环型命令方块,指定其重新执行命令所延迟的游戏刻。注意:对于脉冲型命令方块和循环型命令方块,延迟设置为0和1的效果相同,游戏将把0视为1。但是,对于连锁型命令方块,0和1是不同的。
悬浮文本‌‌[仅基岩版]
指定命令方块的名称,当你指向该方块时可以看到它。它也用于消息命令。如果命令方块有在铁砧中命名,将采用此名称。如果为空,则默认为!
完成
点击“完成”按钮或按↵ Enter以保存命令并退出命令方块GUI。‌‌[仅Java版]
点击“关闭”按钮或按Esc以保存并退出命令方块GUI。‌‌[仅基岩版]
取消
点击“取消”按钮或按Esc‌‌[仅Java版]在不保存任何修改的情况下退出命令方块GUI。

激活[编辑 | 编辑源代码]

命令方块属于红石机械且能由以下物件激活:

命令方块有1游戏刻的延迟,当它受到红石更新时将在1游戏刻后做出反应(激活或撤销激活)。

当被激活时,命令方块将尝试执行它的命令。激活后的动作将取决于命令方块的类型:

  • 脉冲型命令方块会在刚激活时尝试执行命令一次。
  • 连锁型命令方块将在指向它的命令方块执行命令后才会执行命令。
  • 循环型命令方块将会在每个游戏刻都尝试执行一次命令直到不再被激活为止。

连锁执行[编辑 | 编辑源代码]

如果一个指向连锁型命令方块的命令方块被激活了,它将向该方块发出准备执行命令的信号。连锁型命令方块只有在被激活开启时(在“条件制约”模式下还要在它所指向方向的反方向的命令方块成功执行命令时)才会执行命令。不管这个连锁型命令方块方块是否执行命令,只要指向另一个连锁型命令方块,它也同样会发送出准备执行命令的信号。

连锁中的方块将在同一游戏刻执行命令。连锁执行的信号无法传递给一个已经在这个游戏刻执行过命令的方块。游戏规则maxCommandChainLength决定了连锁型命令方块能连锁执行的总数量,默认为65536。


输出[编辑 | 编辑源代码]

当激活时,命令方块可以有几种不同类型的输出:

红石比较器
命令方块可以向背对它的红石比较器输入一个信号,强度取决于上一个命令的执行情况的信号(例如,被命令所影响的玩家数)。
信号强度一直根据上一个命令的执行情况保持,即使是在命令方块关闭之后。
消息
输出消息描述执行命令的成功与否,会有几种输出位置:
上一个输出:输出消息都会写入命令方块GUI的“上一个输出”文本框里。
聊天框:输出信息将在单人模式下或多人模式下对所有管理员写入聊天框,除非已经用/gamerule commandBlockOutput false关闭。一些命令可能会在聊天框写入其正常工作时的附带文本,这不会被拦截。(比如,/say命令将在所有玩家的聊天框写入消息)。带有执行者的名字作为前缀的聊天信息(比如命令/me/say/tell)会使用@‌‌[仅Java版]/!‌‌[仅基岩版]作为执行者名字。如果命令方块在放置前已经被命名过,那么就使用这个名字。
日志:输出信息会写入到多人游戏服务器日志,除非使用/gamerule logAdminCommands false关闭。

备注[编辑 | 编辑源代码]

以下命令不能在命令方块中使用:/ban/banlist/ban-ip/debug/deop/kick‌‌[仅Java版]/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

以下命令会在输出中用到命令方块的名字(默认为@‌‌[仅Java版]!‌‌[仅基岩版]):/me/say/tell

彩蛋[编辑 | 编辑源代码]

在命令方块中不加“/”运行命令“Searge”会把上一个输出设为“#itzlipofutzli”。另外,如果在命令方块中运行/help,它会给出一些带有“Searge says:(Searge说:) ”前缀的信息。

数据值[编辑 | 编辑源代码]

命令方块拥有ID名称minecraft:command_block并在方块数据方块实体中有更深的定位。命令方块也有 方块状态旨在未来的版本中取代方块数据,

ID[编辑 | 编辑源代码]

Java版

名称命名空间ID本地化键名
命令方块command_block 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 137tile.command_block.name
连锁型命令方块chain_command_block 189tile.chain_command_block.name
循环型命令方块repeating_command_block 188tile.repeating_command_block.name
名称存档ID
方块实体command_block

方块数据[编辑 | 编辑源代码]

参见:数据值

命令方块的方块数据用于确定方块是否处于开启状态:

位元 数值
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.212w32aImpulse Command Block JE1.png 加入了命令方块。
1.513w03a命令方块的成功运行可用红石比较器输出信号。
13w04a铁砧重命名的命令方块在聊天框中会用其名字代替@
1.6.113w19a命令方块在生存模式中不再可破坏,也不会在爆炸中破坏,但蓝色的凋灵之首除外。
1.7.213w37a加入了一个显示上一个输出的框。
增加游戏内输入命令的字符限制从256到16,369。使用第三方编辑器可以达到32767个字符。
1.814w07a发射器会放置命令方块,而不是发射它。
14w20a移除了游戏内16369的字符限制,允许达到最高的32767个字符。
14w27a加入了CommandStatsNBT标签。
1.8.6发射器不再放置命令方块。[2]
1.915w34aChain Command Block JE1.pngRepeating Command Block JE1.png 加入了连锁型命令方块和循环型命令方块。
加入了方块朝向。
Impulse Command Block JE2.png 更改了命令方块材质。
15w34b加入了条件制约模式。
15w35aImpulse 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.1116w32a方块实体ID由Control更改为command_block
1.1217w16a连锁型命令方块不再安排命令链中的命令在下一刻执行了,现在这些命令会在被读取后的同一刻执行。这使之后放置的方块可以经由之前放置的方块被修改,由此可以在一个游戏刻内实现分支、循环等手法。
加入了游戏规则maxCommandChainLength以决定连锁型命令方块运行的限度。
17w17a加入了NBT标签UpdateLastExecutionLastExecution,可以控制对存储连锁型命令方块最后执行的那一刻的跟踪。
pre6命令方块中使用Tab键来自动补全的命令名称不再添加/前缀。
1.1317w47a扁平化之前,命令方块、循环型、连锁型命令方块的数字ID分别为137、210、211。
pre1玩家现在可以重新用tab键补全命令了。
1.1418w43aImpulse Command Block JE4.pngChain Command Block JE3 BE2.pngRepeating Command Block JE3.png 更改了所有命令方块的材质。
18w47bImpulse Command Block JE5 BE2.pngRepeating Command Block JE4 BE2.png 更改了脉冲型和循环型命令方块的材质。
携带版
1.0.5alpha 1.0.5.0Impulse Command Block JE3 BE1.pngChain Command Block JE2 BE1.pngRepeating Command Block JE2 BE1.png 加入了所有种类的命令方块。
基岩版
1.8.0beta 1.8.0.8命令方块现在的默认名称为!而不是@
1.10.0beta 1.10.0.3Impulse Command Block JE5 BE2.pngChain Command Block JE3 BE2.pngRepeating Command Block JE4 BE2.png 更改了材质。
1.12.0beta 1.12.0.2加入了自动完成功能。
加入了延迟选项。
原主机版
TU19CU71.12Patch 1Impulse Command Block JE2.png 加入了命令方块。
命令方块没有任何功能。

画廊[编辑 | 编辑源代码]

参考[编辑 | 编辑源代码]