ID блоков, предметов и сущностей: пространства имён, состояния блоков и отличия
ID не всегда совпадает с названием предмета, а ID блока не то же самое, что ID его предмета. Правила именования, переименования, ломающие старые команды, и куда вписываются состояния.
Каждая команда, которая выдаёт ошибку "Unknown item" (Неизвестный предмет) или "Unknown block" (Неизвестный блок), связана с проблемой ID, и правила здесь более тонкие, чем просто "строчные буквы с нижними подчёркиваниями".
Пространство имён не является необязательным в данных
minecraft:diamond_sword
my_pack:custom_sword
Команды позволяют опускать minecraft: — /give @s diamond_sword работает. JSON-файлы — нет. Таблица лута или рецепт с голым diamond_sword завершится ошибкой, иногда беззвучно. Пишите пространство имён везде, и проблема исчезнет.
ID блока и ID предмета — разные вещи
Некоторые блоки не имеют предмета, некоторые предметы размещают другой блок:
| Предмет | Размещённый блок |
|---|---|
minecraft:wheat_seeds | minecraft:wheat |
minecraft:redstone | minecraft:redstone_wire |
minecraft:string | minecraft:tripwire |
minecraft:flower_pot | minecraft:flower_pot, но горшечные варианты — это отдельные блоки |
| — | minecraft:water, minecraft:fire, minecraft:air не имеют предмета |
/setblock принимает ID блока. /give принимает ID предмета. Использование неправильного ID — самый распространённый источник ошибки "такого ID не существует", когда предмет явно есть.
Состояния блоков находятся в квадратных скобках
/setblock ~ ~ ~ oak_stairs[facing=east,half=top,waterlogged=true]
Состояния — это свойства блока, а не предмета — вы не можете дать лестницу, которая уже повёрнута, потому что поворот определяется при размещении. Неуказанные свойства принимают значения по умолчанию.
waterlogged сбивает с толку: оно существует на лестницах, полублоках, заборах и многих других блоках, и установка блока без него удаляет Воду, которая там была.
Переименования, ломающие старые команды
Несколько ID изменились, и старые теперь просто неизвестны:
| Старый | Текущий |
|---|---|
grass | short_grass |
grass_path | dirt_path |
scute | turtle_scute |
sign | oak_sign и его друзья |
grass — самый болезненный, потому что grass_block всё ещё существует и является чем-то другим. Старые команды, использующие grass для растения, теперь беззвучно ничего не выбирают.
ID сущностей
В основном предсказуемы, с исключениями: minecraft:snow_golem, а не snowman, minecraft:mooshroom, а не mushroom_cow, и каждый снаряд — это отдельная сущность — minecraft:arrow, minecraft:spectral_arrow, minecraft:trident.
Сущности, которые технически являются блочными сущностями (block entities) — сундуки, воронки, таблички — не появляются в списке сущностей и не могут быть /summoned. Они размещаются как блоки и редактируются с помощью /data.
Теги лучше списков
#minecraft:planks #minecraft:logs #minecraft:wool
#minecraft:doors #minecraft:beds #minecraft:swords
Везде, где команда или JSON принимает тег, его использование позволяет сохранить работоспособность при добавлении Mojang новых типов древесины. Жёсткое кодирование всех восьми ID досок — нет.
Найдите каждый ID блока, предмета и сущности, с состояниями блоков и тегами, к которым каждый принадлежит, в Браузере ID блоков, предметов и сущностей.