Guides / Commands & Data

方块、物品和实体ID:命名空间、方块状态及差异

ID并非总是物品的名称,方块ID也不同于其物品ID。本文将介绍命名规则、导致旧命令失效的重命名,以及方块状态的用法。

任何以“未知物品”或“未知方块”失败的命令都与ID有关,其规则比“小写加下划线”更为微妙。

命名空间在数据中不可省略

minecraft:diamond_sword
my_pack:custom_sword

命令允许你省略 minecraft:/give @s diamond_sword 也能正常工作。但 JSON 文件则不然。一个缺少命名空间的战利品表或配方,例如只写 diamond_sword,有时会悄无声息地失败。在所有地方都写上命名空间,问题便会迎刃而解。

方块ID和物品ID是不同的概念

有些方块没有对应的物品,有些物品放置的却是不同的方块:

物品放置的方块
minecraft:wheat_seedsminecraft:wheat
minecraft:redstoneminecraft:redstone_wire
minecraft:stringminecraft:tripwire
minecraft:flower_potminecraft:flower_pot,但盆栽变种是独立的方块
minecraft:waterminecraft:fireminecraft:air 没有对应的物品

/setblock 使用的是方块ID。/give 使用的是物品ID。当某个物品或方块明明存在,但却提示“该ID不存在”时,最常见的原因就是用错了ID。

方块状态位于方括号内

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

状态是方块的属性,而非物品的属性——你无法给予一个预先旋转好的楼梯,因为旋转是在放置时决定的。未指定的属性将采用其默认值。

waterlogged 经常让人困惑:它存在于楼梯、台阶、栅栏以及许多其他方块上,如果设置方块时没有指定它,将会移除原有的水。

导致旧命令失效的重命名

少数ID发生了改变,旧的ID现在已无法识别:

旧ID当前ID
grassshort_grass
grass_pathdirt_path
scuteturtle_scute
signoak_sign 及相关方块

grass 是最令人头疼的一个,因为 grass_block 仍然存在,但它是一个不同的物品。使用 grass 指代植物的旧命令现在会悄无声息地失效。

实体ID

实体ID大多可预测,但也有例外:minecraft:snow_golem 而非 snowmanminecraft:mooshroom 而非 mushroom_cow,并且每个投掷物都是独立的实体——minecraft:arrowminecraft:spectral_arrowminecraft:trident

技术上属于方块实体(block entities)的实体——箱子、漏斗、告示牌——不会出现在实体列表中,也无法通过 /summon 命令生成。它们以方块的形式放置,并通过 /data 命令进行编辑。

标签优于列表

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

只要命令或JSON接受标签,使用标签就能适应Mojang新增的木材类型。而硬编码所有八种木板ID则无法做到这一点。

方块、物品与实体ID浏览器中,你可以搜索所有方块、物品和实体ID,包括方块状态以及它们所属的标签。

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

More guides

Browse all →

还想找别的我的世界工具?

一整套在浏览器里运行的生成器、查看器和转换器,全部免费。