命令是一行行简短的文本,能让 Minecraft 里发生各种事情:给予物品、传送玩家、生成生物、改变天气等等。它们也是给附加包添加逻辑最简单的方法,因为你可以把它们打包成函数。
快捷方式:GodCraft
在 GodCraft 中,你可以在函数里编写命令,输入时会有提示帮你补全命令名和参数。
- 打开工坊,在你的附加包中添加一个函数。
- 输入你的命令。提示会帮你写对语法。
- 选择它何时运行:每刻运行、世界加载时运行一次,或者只在你输入
/function时运行。 - 把它和附加包的其他内容一起导出。
本页其余部分讲解命令语言本身,无论用哪种方式你都需要了解它。
开启作弊
大多数命令只有在开启作弊后才能使用。
- 打开世界设置。
- 开启激活作弊(在“游戏”或“作弊”部分)。
- 打开聊天栏并输入
/,就会出现命令列表。
成就
开启作弊会让这个世界无法获得成就,即使你之后再关掉作弊也一样。请为附加包开发准备一个单独的测试世界。
有少数命令不开作弊也能使用,比如 /say 和 /tell。
命令语法
每条命令都以命令名开头,后面跟着用空格分隔的参数:
/give @p minecraft:diamond 5give是命令。@p是谁获得物品(目标选择器,见下文)。minecraft:diamond是物品 ID。原版物品可以省略minecraft:。5是数量。它是可选的:不写的话就得到 1 个。
参考页面会标明必填参数和可选参数。例如,/give 需要一个玩家和一个物品,而数量和数据值是可选的。所有参数都必须按正确顺序书写,你不能跳过一个可选参数去设置它后面的参数。
小贴士
在聊天栏中,命令以 / 开头。在函数文件和命令方块中,斜杠可写可不写,通常会省略。
目标选择器
目标选择器用来选出命令要作用于哪些玩家或实体。
| 选择器 | 选中 |
|---|---|
@p | 最近的玩家 |
@a | 所有玩家 |
@r | 一名随机玩家 |
@s | 你自己:执行命令的实体 |
@e | 所有实体(生物、掉落物、玩家等等) |
@initiator | 正在与 NPC 对话的玩家(用于 NPC 对话按钮) |
你也可以直接输入玩家名代替选择器,比如 /give Steve diamond。带空格的名字要加引号:"Steve Two"。
选择器参数
在方括号中添加参数来缩小选择范围。多个参数用逗号分隔,= 两边不要加空格。
/kill @e[type=minecraft:zombie,r=10]这只会清除 10 格以内的僵尸。最有用的参数有:
| 参数 | 含义 | 示例 |
|---|---|---|
type | 实体类型 | @e[type=minecraft:cow] |
name | 名字或命名牌名称 | @e[name=Bob] |
family | 生物的类型族 | @e[family=monster] |
r 和 rm | 最大和最小距离 | @a[r=20] |
c | 选取多少个,从最近的开始 | @e[type=minecraft:pig,c=3] |
tag | 拥有 /tag 添加的标签 | @a[tag=red_team] |
m | 游戏模式 | @a[m=survival] |
l 和 lm | 最高和最低经验等级 | @a[lm=10] |
x、y、z | 从哪里开始测量距离 | @e[x=0,y=64,z=0,r=5] |
scores | 计分板数值 | @a[scores={points=10..}] |
加上 ! 可以反转条件:@e[type=!minecraft:player] 表示“所有不是玩家的实体”。c 为负数时会从最远的开始选,而不是最近的。
你自己做的生物也可以用。如果你按照你的第一个自定义生物做了 myname:critter,可以试试 @e[type=myname:critter] 或 @e[family=critter]。
坐标
位置用三个数字表示:x(东西方向)、y(上下方向)和 z(南北方向)。
绝对坐标
普通数字表示世界中的确切位置:
/tp @s 100 70 -250相对坐标:~
波浪号 ~ 表示“从命令执行的位置算起”,沿世界的坐标轴测量。后面跟一个数字表示偏移量。
/tp @s ~ ~10 ~
/setblock ~2 ~ ~ minecraft:gold_block
/summon minecraft:pig ~ ~1 ~~ ~10 ~表示正上方 10 格。~2 ~ ~表示向东 2 格。- 单独一个
~表示该轴上“不变”。
参见 /teleport、/setblock 和 /summon。
局部坐标:^
脱字符 ^ 是从实体面朝的方向来测量的:左、上和前。
/tp @s ^ ^ ^5这会让你朝面对的方向移动 5 格,即使你是斜着看的也一样。三个部分分别是 ^左 ^上 ^前,负数则表示反方向。
提示
在同一个位置中,你不能把 ^ 和 ~ 或普通数字混用。要么三个都用 ^,要么都不用。
以其他身份执行命令
/execute 可以改变谁来执行命令以及在哪里执行。它是游戏中最强大的命令:
/execute as @a at @s run summon minecraft:lightning_bolt ~ ~ ~从左往右读:对每个玩家(as @a),在他们自己的位置(at @s),执行一次 summon。在 /execute 内部,@s 依次表示每个被选中的实体,~ ~ ~ 就是他们所在的位置。
试试这几条命令
/give @s minecraft:diamond_sword
/effect @a minecraft:speed 30 1
/time set day
/weather clear
/say Hello, world!
/kill @e[type=minecraft:item]