我的世界命令

命令(Command),也被称作控制台命令(Console Command)斜杠命令(Slash Command),是通过输入特定文本字符串而激活的高级功能。


使用方法

我的世界命令

在Java版中选取实体的UUID

在客户端中,命令通过Minecraft的聊天窗口输入,通过按下T键、我的世界命令[仅基岩版和教育版]我的世界命令[仅基岩版](默认)或/键唤出聊天窗口。使用/键会同时输入命令必需的前缀斜杠(/),因此这是个实用的快捷键。键可浏览之前输入的文本,包含所有之前执行的命令。在输入命令时按下Tab ↹键会循环显示当前可用的命令或参数,也可以快速输入准星当前指向方块的坐标(在Java版输入实体参数时,如果准星指向某个实体,则可以直接输入其UUID)。当光标在某些参数(比如一个ID)的对应位置时,在文本框上方会展示一个可用值的列表。如果这个参数已经输入了一半,这个列表则只会展示包含当前输入内容的值。

在命令方块中,命令可以以前缀斜杠开头,但不是必须的。在命令方块中的命令通常还需要一个可选参数,如玩家名称。

命令也可以在多人服务器的控制台中输入,但是应加入前缀/。在英语中,以这种方式执行命令的服务器管理员被称为“ghosting”。

大多数命令只能在以下状况有效:

  • 在Minecraft多人游戏服务器游戏中,由管理员或命令方块使用。
  • 在其他的多人模式游戏中,由开启局域网并允许作弊的玩家,或主持多人游戏服务器的玩家使用。
  • 在单人模式中,创建世界时开启作弊(由“更多世界选项…”按钮)。

权限等级为0的命令所有玩家均可用。详见权限等级。

注意:在Java版中,在单人游戏中,如果不允许作弊,仍可以通过公开目前的游戏至局域网(Esc→“对局域网开放”,点选“允许作弊”为开,接着“创造一个局域网世界”)而暂时可以作弊。你不必实际连入局域网或等待别人加入。这并不是永久的,但直至退出世界前都可以使用命令,且命令做出的修改都会被保存(物品、生物生成等)。你可以在再次开启游戏时重复以上步骤。注意对局域网开放时游戏便无法暂停,所以在公开到局域网时若有需要最好找个安全的地方。你可以重新载入世界来取消对局域网开放。

在基岩版中,作弊可以随时使用设置菜单中的选项切换。开启作弊会导致玩家在那个世界永远无法获得成就,即使后来作弊被关闭。

 

坐标

主条目:坐标

命令中的坐标可以用三个绝对坐标(X Y Z)组成的一组坐标来表示。也可以使用波浪号(~)来指定相对坐标和使用脱字符(^)来指定局部坐标。

目标选择器

主条目:目标选择器

目标选择器是命令中使用得最频繁的参数之一,允许规范地,自由地选择将要参与命令的实体。目标选择器也在原始JSON文本中使用。

目标选择器分为两个部分,分别为变量和参数。

  • 变量是目标选择器必要的成分,可以大致地指定要选择的实体(例如:所有实体、距离最近的玩家、与NPC交互的玩家等)。
  • 参数是可选的,负责修饰变量,可以对变量选中的实体进行进一步的过滤。参数中有许多子参数供玩家使用(例如:type、name、scores等)。

NBT标签

主条目:NBT格式

NBT标签是一种树状数据结构,可以被用花括号包含的键值对(即SNBT)描述。SNBT用于Java版的命令中,用于指定玩家、实体和一些方块的较为复杂的数据。

SNBT由零个或多个用逗号分隔的键值对组成,且本身用大括号括住。每个键值对包含键名和键值,用冒号分开。但是,有些键值可以继续包含键值对,因此SNBT可以用来描述层次结构。

例: {name1:123,name2:"sometext",name3:{subname1:456,subname2:789}}

这些NBT标签所采用的数据结构与Minecraft世界存档相同。这种数据结构在其他条目中有详细描述。NBT标签中键名有严格的限定(区分大小写):

数据结构规范链接
对象 例子
方块 箱子、熔炉、命令方块、刷怪蛋、告示牌等
物品 物品栏中的物品 (包括附魔、自定义名称等)
物品实体 在地上的物品
生物 苦力怕、牛、村民等
弹射物 箭、火球、喷溅药水等
交通工具 船、矿车等
动态方块 引燃的TNT及正在掉落的沙子、沙砾、铁砧等
其他实体 烟花火箭、画和物品展示框

指定键名的键值也必须符合数据类型要求。

NBT标签键值数据类型
类型 说明
 字节(byte) 介于-128和127之间(包含)的整数。
 短整型(short) 介于-32768和32767之间(包含)的整数。
 整型(int) 介于-2147483648和2147483647之间(包含)的整数。
 长整型(long) 介于-9,223,372,036,854,775,808和9,223,372,036,854,775,807之间(包含)的整数。
 单精度浮点型(float)
 双精度浮点型(double)
Float: 32位单精度浮点数,介于-3.4E+38和+3.4E+38之间。

例:3.1415927

Double: 64位双精度浮点数,介于-1.7E+308和+1.7E+308之间。

例:3.141592653589793

详见IEEE二进制浮点数算术标准。

 字符串(string) 一串字符,如果内容包含不在 a-z A-Z 0-9 _ .(不包括空格)的字符则需要在整个字符串前后加上双引号。\可以将后面的字符转义(支持像JSON那样的转义,如\n\u00a7)。转义方式为,在"\号前加上\

例:"Call me \"Ishmael\""
 列表(list) 值的序列,用逗号分隔并用方括号包含。所有值的数据类型必须统一——数据类型标准由列表的第一个元素决定。

例:[3.2,64,129.5]
 复合标签(compound) 键值对的序列,用逗号分隔并用花括号包含。

例: {X:3,Y:64,Z:129}

每个NBT标签的内容本身就是一个复合标签。

复合标签里面可以包含任何标签。

 字节数组(byte-array) 介于-128和127(包含)之间的整数序列,用逗号分隔内容并用方括号包含,首个元素前方需要加入类型标识B;

例: [B;1b,2b,3b]
 整型数组(int-array) 介于-2,147,483,648和2,147,483,647(包含)之间的整数序列,用逗号分隔内容并用方括号包含,首个元素前方需要加入类型标识I;

例: [I;1,2,3]
 长整型数组(long-array) 介于-9,223,372,036,854,775,808和9,223,372,036,854,775,807(包含)之间的整数序列,用逗号分隔内容并用方括号包含,首个元素前方需要加入类型标识L;

例: [L;1l,2l,3l]
 布尔型(boolean) 一种数据类型,只有“true”和“false”两种取值。由于程序通常使用 字节存储布尔值,布尔型只会在JSON格式中出现。在NBT中,true和false相当于1和0。

例: {doFoo:true}

某些命令要求明确指明某些数值的数据类型,这可以通过在数值后附加限定字符(B、S、L、F、D)来实现。举例来说,3s表示短整型,3.2f表示单精度浮点,等等。(字符I不能限定整型。)限定字符不区分大小写。在不加限定字符,且Minecraft无法根据上下文来确定数据类型或需要比对NBT标签时,会将数据类型假定为双精度浮点型(数值有小数部分时)、整型(数值没有小数点,且在整型取值范围内)或字符串(若前述情况均不符合)。被方括号包含的集合中,被逗号分隔的元素若全为整型,则会将数据类型假定为整型数组(如[I;1,2,3]是一个整型数组,[L;1L,2L,3L]是一个长整型数组);否则会假定为列表。但有以下特例:[]是一个空列表,而[,]是一个空整型数组。

如果用/clear等命令来查找NBT标签,这些命令只会检查目标实体/方块/物品是否存在此标签。这意味着一个符合条件的实体/方块/物品可能同时还拥有其他标签。这对列表和数组同样成立:只要列表或数组中包含待查找的所有元素,就会成功匹配,既不考虑元素的排列顺序,也不考虑是否有多余的元素存在。

原始JSON文本

主条目:原始JSON文本格式

在Java版中,/tellraw/title命令使用严格的JSON语法以显示文字。此外,部分NBT标签的值需要输入原始JSON文本。

在基岩版中,原始JSON文本可以作用于/tellraw的内容、/titleraw的标题、书与笔的文本(题目和作者除外)、告示牌的文本以及NPC的对话的编辑(操作员在编辑时,效果不可见)。

Java版中的ID参数

参见:命名空间ID§从字符串识别

许多命令要求指定某种方块、物品、实体、药水效果、附魔、boss栏等的ID。在下文的命令语法中,这些参数会被标注为-{}-<方块><物品>,或在实例中用诸如minecraft:stone之类的标识符替换。这些ID都有命名空间。所有来自Minecraft的内容都使用minecraft命名空间,而来自mod及数据包的内容都使用其他命名空间。 在大多数情况下,可以省略命名空间为minecraft的ID的前缀,但是在某些情况下,例如匹配NBT标签时,需要完整的命名空间ID。

-{}-<方块>

例子:

  • stone
  • minecraft:redstone_wire[power=15,north=up,south=side]
  • minecraft:jukebox{RecordItem:{...}}
  • minecraft:furnace[facing=north]{BurnTime:200}

-{}-<方块>参数的格式为-{}-命名空间ID[方块状态]{NBT标签},其中方块状态和NBT标签在不需要时可以省略。

  • 方块的命名空间ID是必需的(如果没有设定命名空间则将默认为预设值:minecraft:)。
  • 方块状态是可选的,位于[]内,名称与值用等号分隔,名称数值组用逗号分隔,且必须是该方块支持的状态:
    -{}-[<方块状态名称>=<>,<方块状态名称>=<>,…]
    • minecraft:stone[doesntexist=purpleberry]有语法错误,因为stone(石头)没有doesntexist状态。
    • minecraft:redstone_wire[power=tuesday]有语法错误,因为redstone_wire(红石线)的power是一个在0和15之间的数字。
  • NBT标签是可选的,位于{}内。
  • 如果方块参数被用于检查方块,则只会检查参数内指定了的方块状态与NBT标签是否符合。
  • 如果方块参数用于放置方块,你所提供的任何状态与标签都会被设置,而其他未提供的状态与标签会被设为预设值
    • 如当你设置redstone_wire[power=15],那它将设置power到15却使north设为预设值(在这个情况下被设置为none

如果方块参数被用于检查方块,则也可以填写带#前缀的方块标签的命名空间ID,如#minecraft:planks

<物品>

例子:

  • stone
  • -{}-minecraft:stick{display:{Name:"\"谎言之杖\""}}

<物品>参数的格式为-{}-命名空间ID{NBT标签},其中NBT标签在不需要时可以省略。

  • 物品的命名空间ID是必需的(如果没有设定命名空间则将设为预设值minecraft:)。
  • NBT标签位于{},是可选的。

参数类型列表

主条目:Java版参数类型

权限等级

权限等级用于控制命令执行者可以执行什么命令。比如在Java版中,/kick不能在命令方块中执行,因为这个命令需要3的权限等级,而命令方块的权限等级仅为2

在Java版中,权限等级可为01234

  • 命令方块或命令方块矿车的权限等级为2
  • 服务器控制台的权限等级为4
  • 函数的权限等级为2(可在server.properties中更改)。
  • /execute执行子命令的权限等级为2
  • 对于玩家来说:
    • 如果该玩家是服务器的管理员,那么他的权限等级由ops.json中的值决定(默认为4)。
    • 如果该玩家已经启用作弊,并在单人游戏世界中或是局域网世界的所有者,那么他的权限等级为4
    • 如果该玩家在一个允许作弊的局域网世界中,那么他的权限等级为4
    • 否则,他的权限等级为0

在基岩版中,权限等级可为01234

  • 命令方块或命令方块矿车的权限等级为1
  • 服务器控制台的权限等级为4
  • 函数和附加包中的脚本的权限等级为1
  • /execute执行子命令的权限等级为1[需要验证]
  • 对于玩家来说:
    • 如果该玩家在服务器中,且该玩家在“玩家权限”屏幕中的“操作员命令”开关已打开,那么他的权限等级默认为1(可在server.properties中更改)。
    • 如果该玩家在单人游戏世界或局域网世界中,且该玩家在“玩家权限”屏幕中的“操作员命令”开关已打开,那么他的权限等级默认为3
    • 否则,他的权限等级为0[需要测试]

注:命令的权限等级与暂停菜单和“玩家权限”屏幕中的身份(访客,成员,操作员或自定义)不同。例如在单人游戏世界中,身份为操作员的玩家的权限等级为3,因为其对应的“操作员命令”开关已打开;身份为访客或成员的玩家的权限等级为0,因为其对应的“操作员命令”开关没有打开。[仅基岩版]

已有 0 条评论