本站文本内容除另有声明外,均在知识共享 署名-非商业性使用-相同方式共享 3.0 协议下提供。(详情…本站文本内容除另有声明外,均在知识共享 署名-非商业性使用-相同方式共享 3.0 协议下提供。(详情…中文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
命令方块连锁型命令方块循环型命令方块
类型

方块实体

稀有度

史诗

需求

物理特性

透明

亮度

爆炸抗性

18,000,000

硬度

-1

工具

可再生

可堆叠

是(64)

可燃尽

首次出现

历史

掉落物

自身

方块实体ID

command_block

数据值

数据值

命名空间ID

数据值

Information icon.svg
此特性为Java版基岩版教育版独有。
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的“上一个输出”文本框里。
Java版bug
在1.13及之后版本,命令方块执行某些命令时可能无法向聊天框输出信息
聊天框:输出信息将在单人模式下或多人模式下对所有管理员写入聊天框,除非已经用/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外的多人游戏命令)。

Java版bug
在1.13及之后版本,命令方块执行某些命令时可能无法向聊天框输出信息。在java版中,除下文列出的命令外,还有很多命令无法输出信息

以下命令可以使用但功能受限(它们的输出只会在命令方块的“上一个输出”文本框显示而不是聊天框):/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:可选。命令方块的名字,用以在saytell等命令中代替“@”。

    •  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 Revision 1.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 Revision 1.pngRepeating Command Block Revision 1.png 加入了连锁型命令方块和循环型命令方块。
加入了方块朝向。
Impulse Command Block Revision 2.png 更改了命令方块材质。
15w34b 加入了条件制约模式。
15w35a Impulse Command Block Revision 3.pngChain Command Block Revision 2.pngRepeating Command Block Revision 2.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 Revision 4.pngChain Command Block Revision 3.pngRepeating Command Block Revision 3.png 更改了所有命令方块的材质。
18w47b Impulse Command Block Revision 5.pngRepeating Command Block Revision 4.png更改了脉冲型和循环型命令方块的材质。
携带版
1.0.5 alpha 1.0.5.0 Impulse Command Block Revision 2.pngChain Command Block Revision 1.pngRepeating Command Block Revision 1.png 加入了所有种类的命令方块。
基岩版
1.8.0 beta 1.8.0.8 命令方块现在的默认名称为!而不是@
1.12.0 beta 1.12.0.2 加入了自动完成功能。
加入了延迟选项。
原主机版
TU19CU71.12Patch 1Impulse Command Block Revision 2.png加入了命令方块。
命令方块没有任何功能。

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

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