跳转至

命令

命令(Command)是Minecraft基岩版中的一种文本指令,用于在游戏运行时直接操控游戏逻辑。命令可以修改世界状态、管理玩家、控制实体行为、操纵记分板等,是游戏内最灵活的交互手段之一。

概述

命令通过在聊天栏中输入以斜杠/开头的文本来执行,因此也被称为斜杠命令(Slash Command)。命令的执行需要满足一定的权限要求:在多人游戏中,通常需要操作员权限;在单人游戏中,需要开启作弊功能。

命令系统是基岩版中最早实现的可编程功能之一,至今仍然是附加包开发和地图创作中不可或缺的工具。命令可以单独使用,也可以与命令方块、函数等机制结合,构建出复杂的自动化逻辑。

命令语法

每条命令由命令名称和若干参数组成。命令名称紧跟在斜杠之后,参数之间以空格分隔。参数的类型包括:

  • 字符串:文本类参数,例如玩家名称、标签名称。
  • 整数:整数类参数,例如数量、槽位编号。
  • 浮点数:浮点类参数,例如坐标值。
  • 坐标:位置参数,支持绝对坐标、相对坐标和局部坐标。
  • 目标选择器:用于选取一个或多个实体的特殊参数。
  • JSON:原始文本等复合参数。

目标选择器

目标选择器(Target Selector)是命令中用于动态选取实体的机制。目标选择器以@符号开头,后跟一个表示选择模式的字母,可选地附加方括号内的筛选参数。

选择器 描述
@a 选取所有玩家
@p 选取最近的玩家
@r 选取随机玩家
@e 选取所有实体
@n 选取最近的实体
@s 选取命令的执行者自身
@initiator 选取与NPC交互的玩家

选择器参数(Selector Parameter)用于进一步筛选选中的实体,例如:

  • type:按实体类型筛选。
  • rrm:按距离范围筛选。
  • xyz:指定选择的中心坐标。
  • tag:按标签筛选。
  • name:按名称筛选。
  • scores:按记分板分数筛选。
  • c:限制选中实体的数量。

例如,@e[type=minecraft:zombie,r=10]选取执行位置10格范围内的所有僵尸。

坐标

命令中的坐标参数支持三种表示方式:

绝对坐标
直接指定世界中的精确位置,例如100 64 -50
相对坐标(Relative Coordinate)
以波浪号~为前缀,表示相对于命令执行位置的偏移量。例如~5 ~-2 ~0表示在执行位置的基础上X方向偏移5格、Y方向偏移-2格。~ ~ ~表示执行位置本身。
局部坐标(Local Coordinate)
以脱字号^为前缀,表示相对于命令执行者朝向的偏移量。三个分量分别代表左方、上方和前方。例如^0 ^1.5 ^1表示执行者上方1.5格、前方1格的位置。

相对坐标和局部坐标不能在同一条命令中混用。

命令方块

命令方块(Command Block)是一种特殊的方块,用于自动执行命令。命令方块在创造模式下可以获取,在冒险模式地图和服务器管理中被广泛使用。

命令方块有三种类型:

类型 描述
脉冲型 每次被激活时执行一次命令
链式型 在前一个命令方块执行成功后执行
循环型 每刻持续执行命令

命令方块可以设置为“需要红石”或“始终激活”两种激活模式,还可以设置为“有条件”模式,即仅在前一个命令方块执行成功时才执行。此外,命令方块支持设置延迟刻数,指定激活后等待若干刻再执行。

函数

函数(Function)是将多条命令组织在一起的文本文件,文件扩展名为.mcfunction。函数文件存放在行为包的functions/目录下,每行包含一条命令(不需要前缀斜杠)。

函数可以通过/function命令手动调用,也可以通过 tick.json文件注册为每刻自动执行。函数中的所有命令在同一刻内按顺序执行。

命令版本

命令版本(Command Version)是控制命令解析行为的一个整数值。不同的命令版本会影响某些命令的语法和参数解析方式。命令版本的详细说明请参阅版本文档。

记分板

记分板(Scoreboard)是命令系统中的一套数据管理机制,允许创建自定义的记分项(Objective)并为实体分配整数分数。记分板被广泛用于命令系统中的逻辑判断和数据存储。

记分板通过/scoreboard命令进行管理,包括创建记分项、设置分数、查询分数等操作。记分板数据在世界关闭时持久保存。