命令方块

来自Minecraft Wiki
(重定向自連鎖式指令方塊
跳转到导航 跳转到搜索
命令方块
[[|]]Invicon Command Block.gif:Minecraft中Command Block的精灵图,描述:命令方块[[|]]Invicon Chain Command Block.gif:Minecraft中Chain Command Block的精灵图,描述:连锁型命令方块[[|]]Invicon Repeating Command Block.gif:Minecraft中Repeating Command Block的精灵图,描述:循环型命令方块

-1
3,600,000
不可推动,不可拉动
竖琴/钢琴
方块ID
命令方块:command_block
连锁型命令方块:chain_command_block
循环型命令方块:repeating_command_block

这种方块将可以通过红石信号控制来执行命令。使用恰当的命令,即可编写很多东西。

——Jeb对命令方块的介绍[1]

命令方块(Command Block)是一种用于执行命令方块,无法在生存模式中获得,常用于多人服务器与自定义地图中。

生成[编辑 | 编辑源代码]

命令方块不会生成在世界中。

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

命令方块只能通过创造模式物品栏[仅Java版]创造模式中使用选取方块命令获得。

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

破坏[编辑 | 编辑源代码]

命令方块不能被挖掘破坏。

权限等级不足2[仅Java版]1[仅基岩版]的玩家,即使处于创造模式也不能破坏命令方块。

方块 BlockSprite command-block.png:Minecraft中command-block的精灵图,链接到命令方块命令方块
BlockSprite chain-command-block.png:Minecraft中chain-command-block的精灵图,链接到命令方块连锁型命令方块
BlockSprite repeating-command-block.png:Minecraft中repeating-command-block的精灵图,链接到命令方块循环型命令方块
硬度 -1[挖掘 1]
合适挖掘工具
挖掘时间[挖掘 2]
徒手
  1. 硬度为负数的方块不可通过挖掘来破坏。
  2. 根据受影响因素修正前的基础挖掘速度计算出的挖掘时间,单位:秒。更多信息详见挖掘 § 挖掘速度

命令方块被破坏后不会掉落。

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

满足预设条件时,命令方块会执行其内含的命令。可帮助不能使用命令的玩家执行一个特定的命令(如允许所有人通过/give获得一件特定物品,而非让他们直接使用/give获得任何他们想要的东西)。

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

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

命令方块的权限等级为2[仅Java版]1[仅基岩版],不能执行需要更高权限等级的命令。

命令方块执行以下命令时,输出只会在“上一个输出”文本框显示,而不会在聊天框显示:/help/seed/list/scoreboard objectives list/scoreboard players list/team list

玩家无法在生存模式和冒险模式下打开命令方块的交互界面并修改其内容。

只有处于创造模式且拥有管理员权限的玩家才能够破坏命令方块。

命令方块不能被点燃。命令方块的爆炸抗性基岩相同且不能被活塞推动。

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

Java版命令方块界面

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

  • enable-command-block必须为true
  • op-permission-level必须为2及以上(默认为4)
基岩版命令方块界面

Java版中,在单人游戏中打开命令方块界面时会暂停游戏。

控制台命令[编辑 | 编辑源代码]

命令可被输入到第一个文本框。命令方块的命令长度限定在32,500个字符以内,但这个文本框一次只能显示其中的一小段。按Tab ↹可以补全命令且循环代入可选项。

命令方块内的命令可以加斜杠前缀(/),就像在聊天框使用时的那样,并不必需。

基岩版中,在命令文本框下是一些如何使用目标选择器的小提示。

上一个输出[编辑 | 编辑源代码]

下方的文本框显示上一个命令的输出(执行成功或失败)。起初它是空白的[仅Java版] - [仅基岩版]。这里的文本无法编辑。

文本框右边[仅Java版]左边[仅基岩版]的按钮控制上一个输出是否储存并显示。它设置为输出时将显示为O[仅Java版]开关打开[仅基岩版](默认) ,设置为隐藏时将显示为X[仅Java版]开关关闭[仅基岩版]。当世界中有大量命令方块正在运行时,不显示输出可减少内存使用以优化卡顿。

方块类型[编辑 | 编辑源代码]

上方:“不受制约”模式的命令方块
下方:“条件制约”模式的命令方块

点击“脉冲/循环/连锁”按钮[仅Java版]“方块类型:”下拉菜单[仅基岩版]可改变命令方块的类型。默认为命令方块的种类。命令方块改变类型时也会改变颜色:

  • 脉冲型命令方块是橙色的。这种方块是“标准”的命令方块,激活一次执行一次命令。
  • 连锁型命令方块是青色的。这种方块只在指向它的方块执行命令时才会执行命令。指向它的命令方块可为任意类型的命令方块。
  • 循环型命令方块是紫色的。这种方块被激活时每一游戏刻都执行一次命令。

条件[编辑 | 编辑源代码]

点击“条件制约/不受制约”按钮[仅Java版]“条件:”下拉菜单[仅基岩版]可改变命令方块的条件制约行为:

  • “条件制约”:只有当背后的命令方块成功执行命令时才会执行命令(“背后”的意思是该命令方块上箭头指向的反方向,无视连锁方向)。除了连锁型命令方块之外,脉冲型和循环型命令方块都需要至少1游戏刻(在基岩版中取决于“已选项中的延迟”)来激活。条件制约检测的是上一个命令方块在至少1游戏刻前是否成功而忽视同一游戏刻已经发生变化的状态,这就使得检测上一个命令方块是否成功会先于有条件的命令方块激活,即实际不在同一游戏刻内。不过延迟并不代表命令链在进程处理上的混乱,在较短的时间内命令链的结果仍然是相对有序的。
  • “不受制约”(默认):无论背后的命令方块是否成功执行命令,该命令方块都会正常执行命令。

红石[编辑 | 编辑源代码]

点击“保持开启/红石控制”按钮[仅Java版]“红石:”下拉菜单[仅基岩版]可改变命令方块的开启需求条件:

  • “红石控制”(脉冲型命令方块和循环型命令方块的默认设置):命令方块必须接收到红石信号才能执行命令。
  • “保持开启”(连锁型命令方块的默认设置):命令方块在没有红石信号时也会保持为开启状态。连锁型命令方块将在感应后执行命令,循环型命令方块将在每一游戏刻执行一次命令(每秒20次),脉冲型命令方块在设置完毕后将立即激活,此后使用/clone复制或放置带有NBT的命令方块才可以再次激活。

执行第一个已选项[原文如此][仅基岩版][注 1][编辑 | 编辑源代码]

指定循环型命令方块是否在激活后立即执行其命令。若被禁用,则从激活时起延迟后第一次执行。

已选项中的延迟[原文如此][仅基岩版][注 2][编辑 | 编辑源代码]

对于脉冲型命令方块和连锁型命令方块,指定在被激活或触发后,执行命令之前延迟的游戏刻。对于循环型命令方块,指定其重新执行命令所延迟的游戏刻。对于脉冲型命令方块和循环型命令方块,延迟设置为0和1的效果相同,游戏将把0视为1。但对于连锁型命令方块,0和1不同。当被设置延迟的命令方块被破坏,未执行的命令将不会执行。

悬浮文本[仅基岩版][编辑 | 编辑源代码]

指定命令方块的名称,当你指向该方块时可以看到它。它也用于消息命令。若命令方块有在铁砧中命名,放置时将采用此名称。若为空,则默认为!

完成与取消[编辑 | 编辑源代码]

完成

点击“完成”按钮或按↵ Enter[仅Java版]点击“关闭”按钮或按Esc[仅基岩版]会保存命令并退出命令方块界面。

取消

点击“取消”按钮或Esc[仅Java版]会在不保存任何修改的情况下退出命令方块界面。

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

处于“红石控制”模式的命令方块是机械元件,可被下列形式激活:

基岩版中,在同一红石刻内,电容器更新阶段前存在,但在电容器更新阶段被取消的信号无法激活命令方块。

命令方块也是红石导体,因此可被充能。

处于“保持开启”的命令方块将一直被激活。

命令方块有1游戏刻的延迟,当它接收上升沿时将在1游戏刻后做出反应(激活或撤销激活)。

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

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

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

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

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

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

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

成功次数[编辑 | 编辑源代码]

红石比较器可检测并输出命令方块的成功次数。成功次数是0到2,147,483,647(含)之间的整数。信号强度总是反映命令方块最后一次执行的结果,即便命令方块取消激活。

Java版中,成功次数通常是0或1,除了/execute命令。在基岩版中,成功次数通常与命令有关(例如,被命令所影响的玩家数,改变的方块数,命令的返回值)。

Java版中,点击“完成”按钮或按下↵ Enter退出界面时,无论是否作出修改均会将成功次数置零。在基岩版中,在有更改的情况下退出界面会将成功次数置零。

消息[编辑 | 编辑源代码]

输出消息描述执行命令的成功与否,会有几种输出位置:

  • 上一个输出:输出消息都会写入命令方块GUI的“上一个输出”文本框里。
  • 聊天框:输出信息将在单人模式下或多人模式下对所有管理员写入聊天框,除非已用/gamerule commandBlockOutput false关闭。一些命令可能会在聊天框写入其正常工作时的附带文本,这不会被拦截。(比如,/say命令将在所有玩家的聊天框写入消息)。带有执行者的名字作为前缀的聊天信息(比如命令/me/msg/say)会使用@[仅Java版]/![仅基岩版]作为执行者名字。如果命令方块在放置前已经被命名过,那么输出时就会使用命名的名字。
  • 日志:输出信息会写入到多人游戏服务器日志,除非使用/gamerule logAdminCommands false关闭。

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

主条目:彩蛋 § Searge

在命令方块中不加“/”运行命令“Searge”会把上一个输出设为“#itzlipofutzli”。

安全保护[编辑 | 编辑源代码]

本段落所述内容仅适用于Java版
命令方块的物品提示框警告信息

Java版中,命令方块属于“仅管理员可设置数据”的方块。

非管理员玩家对命令方块按下Ctrl+选取方块时不会复制方块实体数据,放置物品栏中已有的带有方块实体数据的这些方块也不会将数据实际加载。

管理员玩家的物品栏中带有方块实体数据的命令方块的物品提示框中会显示警告信息。

音效[编辑 | 编辑源代码]

Java版

音效字幕分类描述命名空间ID本地化键名
方块:被破坏方块破坏方块block.metal.breaksubtitles.block.generic.break
某物:摔落到方块上玩家带有坠落伤害时坠落在方块上block.metal.fallsubtitles.block.generic.fall
方块:损坏中方块挖掘方块block.metal.hitsubtitles.block.generic.hit
方块:被放置方块放置方块block.metal.placesubtitles.block.generic.place
脚步声玩家在方块上行走block.metal.stepsubtitles.block.generic.footsteps

基岩版

音效分类描述命名空间ID系统音效类型音量音高衰减距离预载
-方块方块作为物品使用时发出的音效use.anvilitem.use.on1.01.816
方块破坏方块dig.stonebreak1.01.65-1.816
方块挖掘方块hit.stonehit0.31.12516
方块放置方块dig.stoneplace1.01.8-1.87516
玩家带有坠落伤害时坠落在方块上fall.stonefall0.41.516
玩家在方块上行走step.stonestep0.351.516
方块在方块上跳跃jump.stonejump0.121.516
方块在方块上着陆land.stoneland0.221.516

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

ID[编辑 | 编辑源代码]

Java版

名称命名空间ID方块标签JE本地化键名
BlockSprite command-block.png:Minecraft中command-block的精灵图 命令方块command_blockdragon_immune
wither_immune
block.minecraft.command_block
BlockSprite chain-command-block.png:Minecraft中chain-command-block的精灵图 连锁型命令方块chain_command_block
block.minecraft.chain_command_block
BlockSprite repeating-command-block.png:Minecraft中repeating-command-block的精灵图 循环型命令方块repeating_command_block
block.minecraft.repeating_command_block
名称命名空间ID
BlockSprite command-blocks.png:Minecraft中command-blocks的精灵图 方块实体command_block

基岩版

名称命名空间ID本地化键名
BlockSprite command-block.png:Minecraft中command-block的精灵图 命令方块command_block
tile.command_block.name
BlockSprite chain-command-block.png:Minecraft中chain-command-block的精灵图 连锁型命令方块chain_command_block
tile.chain_command_block.name
BlockSprite repeating-command-block.png:Minecraft中repeating-command-block的精灵图 循环型命令方块repeating_command_block
tile.repeating_command_block.name
名称存档ID
BlockSprite command-blocks.png:Minecraft中command-blocks的精灵图 方块实体CommandBlock

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

基岩版中,命令方块的方块数据用于确定方块朝向与条件制约模式:

数值
0x1
0x2
0x4

3个位的空间储存了命令方块的朝向

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

6 和 7 未被使用但会造成命令方块分别朝下和朝上

0x8 决定该方块的条件制约状态

方块状态[编辑 | 编辑源代码]

参见:方块状态

Java版

方块 方块属性 默认值 接受值 描述
BlockSprite command-block.png:Minecraft中command-block的精灵图,链接到命令方块命令方块
BlockSprite chain-command-block.png:Minecraft中chain-command-block的精灵图,链接到命令方块连锁型命令方块
BlockSprite repeating-command-block.png:Minecraft中repeating-command-block的精灵图,链接到命令方块循环型命令方块
conditional false true 命令方块处于条件制约模式
false 命令方块不处于条件制约模式
facing north north 方块朝向北方
east 方块朝向东方
south 方块朝向南方
west 方块朝向西方
up 方块朝向上方
down 方块朝向下方

基岩版

方块 方块属性 默认值 接受值 描述
BlockSprite command-block.png:Minecraft中command-block的精灵图,链接到命令方块命令方块
BlockSprite chain-command-block.png:Minecraft中chain-command-block的精灵图,链接到命令方块连锁型命令方块
BlockSprite repeating-command-block.png:Minecraft中repeating-command-block的精灵图,链接到命令方块循环型命令方块
conditional_bit false false 命令方块不处于条件制约模式
true 命令方块处于条件制约模式
facing_direction 0 0 方块朝向下方
1 方块朝向上方
2 方块朝向北方
3 方块朝向南方
4 方块朝向西方
5 方块朝向东方

方块实体[编辑 | 编辑源代码]

参见:方块实体

命令方块有包含方块附加数据的方块实体。

Java版

  • NBT复合标签/JSON对象 方块实体数据
    • 方块实体共通标签,见Template:Nbt inherit/blockentity/source[显示]
    • 布尔型*
      *
      auto
      :表示此命令方块是否保持开启。
    • 字符串*
      *
      Command
      :命令方块中的命令。
    • 布尔型*
      *
      conditionMet
      :表示受条件制约的命令方块是否满足条件。如果此命令方块不受制约,此值为true
    • 字符串CustomName:(默认为“@”)一个将被解析为文本组件的字符串。表示命令方块的自定义名称。[失效:JE 1.21.5]
    • 字符串NBT复合标签/JSON对象NBT列表/JSON数组CustomName:(文本组件,默认为“@”)表示命令方块的自定义名称。[新增:JE 1.21.5]
    • 字符串NBT复合标签/JSON对象NBT列表/JSON数组LastOutput:(文本组件,当布尔型*TrackOutputtrue时存在并有效)上一条命令的输出。游戏规则commandBlockOutputfalse时依旧会储存。
    • 长整型LastExecution:(当布尔型*UpdateLastExecutiontrue时存在并有效)上一条命令执行的时间戳。
    • 布尔型*
      *
      powered
      :表示命令方块是否已被激活。
    • 整型*
      *
      SuccessCount
      :命令执行的成功次数,影响用红石比较器输出的模拟信号强度。只在命令方块矿车用激活铁轨激活后更新。
    • 布尔型*TrackOutput:表示是否储存上一条命令的输出,在GUI中点击"上一个输出"文本框旁的按钮进行开关。按钮上的标志指示出目前的状态:O为true,X为false。当此项不存在时游戏默认为true
    • 布尔型*UpdateLastExecution:表示是否储存上一条命令执行的时间戳。当此项不存在时游戏默认为true

基岩版

历史[编辑 | 编辑源代码]

Java版
2012年7月27日Jeb开始发一些关于扩展生存模式的新方块的推文。他开始推送一些图片,想法和方块将来用法的线索。
2012年7月31日Notch在他的AMA中暗示这个方块会在1.4中出现。
1.4.212w32a 加入了命令方块。
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.915w34a 加入了连锁型命令方块和循环型命令方块。
加入了方块朝向。
更改了命令方块的纹理。
15w34b加入了条件制约模式。
15w35a 更改了所有命令方块的纹理。
加入了保持开启和红石控制选项。加入了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.1418w43a 更改了所有命令方块的纹理。
18w47b 更改了脉冲型和循环型命令方块的纹理。
1.19.322w44a现在所有种类的命令方块均可从创造模式物品栏中获取。
1.21.424w44a加入了命令方块的安全保护提示。
携带版
1.0.51.0.5.0 加入了所有种类的命令方块。
基岩版
1.8.01.8.0.8命令方块现在的默认名称为!而不是@
1.10.01.10.0.3 更改了纹理。
1.12.01.12.0.2加入了自动完成功能。
加入了延迟选项。
1.20.701.20.70.22现在命令方块被破坏后不再掉落自身。
原主机版
Xbox 360Xbox OnePS3PS4PS VitaWii USwitch
TU19CU71.121.121.12Patch 11.0.1 加入了命令方块。
命令方块没有任何功能。

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

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

  1. 原文为“Execute on First Tick”,即“首刻执行”。
  2. 原文为“Delay in Ticks”,即“延迟刻数”。

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

导航[编辑 | 编辑源代码]