MC Toolkit

指南 / 命令与数据

方块、物品和实体 ID:命名空间、方块状态,以及那些不一致的 ID

ID 并不总是物品的名字,方块 ID 也不等于它的物品 ID。命名规则、会破坏旧命令的改名,以及状态在哪里起作用,/setblock 接受的方块 ID,和 /give 接受的物品 ID 其实并不是同一套。

每一条报错“Unknown item”或“Unknown block”的命令都是 ID 问题,而规则比“小写加下划线”要微妙得多。

在数据中命名空间不是可选项

minecraft:diamond_sword
my_pack:custom_sword

命令允许你省略 minecraft:——/give @s diamond_sword 就能用——JSON 文件也一样:战利品表或配方里光写 diamond_sword 会解析为 minecraft:diamond_sword。但无论如何还是把命名空间写全吧;这样你自己的 ID 不会有歧义,命名空间里的拼写错误也容易发现。

方块 ID 和物品 ID 是两回事

有些方块没有对应的物品,有些物品放置的是另一种方块:

物品放置的方块
minecraft:wheat_seedsminecraft:wheat
minecraft:redstoneminecraft:redstone_wire
minecraft:stringminecraft:tripwire
minecraft:flower_potminecraft:flower_pot,但盆栽变体是独立的方块
—minecraft:water、minecraft:fire 没有物品(air 作为物品只以空堆叠形式存在)

/setblock 接受方块 ID。/give 接受物品 ID。用错一个是最常见的“那个 ID 不存在”来源——哪怕那东西明明就在那儿。

方块状态写在方括号里

/setblock ~ ~ ~ oak_stairs[facing=east,half=top,waterlogged=true]

状态是方块的属性,不是物品的——普通楼梯物品的朝向是在放置时决定的。例外是带有 block_state 组件的物品,它的属性会在放置后应用。未指定的属性取默认值。

waterlogged 很容易坑人:它存在于楼梯、台阶、栅栏以及几十种其他方块上,而设置一个不带它的方块会移除原本在那里的水。

会破坏旧命令的改名

有少数 ID 变了,旧的现在直接是未知的:

旧当前
grassshort_grass
grass_pathdirt_path
scuteturtle_scute
signoak_sign 及其同类

grass 是最让人头疼的一个,因为 grass_block 仍然存在,而且是另一种东西。旧命令里用 grass 指那种植物的,现在会作为未知方块而失败。

实体 ID

大多可以预测,但也有例外:是 minecraft:snow_golem 不是 snowman,是 minecraft:mooshroom 不是 mushroom_cow,而且每种弹射物都是独立的实体——minecraft:arrow、minecraft:spectral_arrow、minecraft:trident。

技术上属于方块实体的实体——箱子、漏斗、告示牌——不会出现在实体列表里,也不能被 /summon。它们作为方块放置,用 /data 编辑。

标签胜过列表

#minecraft:planks   #minecraft:logs   #minecraft:wool
#minecraft:doors    #minecraft:beds   #minecraft:swords

只要命令或 JSON 接受标签,用它就能在 Mojang 添加新木材种类时依然有效。把所有十三个木板 ID 硬编码进去则不行。

在 方块、物品和实体 ID 浏览器 中搜索每一个方块、物品和实体 ID,包括方块状态以及各自所属的标签。

方块、物品与实体 ID 浏览器 →

更多指南

查看全部 →