Добавили систему материалов и тегов для предметов и блоков.
Пример работы с материалами
import cn.nukkit.block.Block;
import cn.nukkit.block.material.BlockTypes;
import cn.nukkit.item.Item;
import cn.nukkit.item.material.ItemType;
import cn.nukkit.item.material.ItemTypes;
// Работа с предметами
ItemType boat = ItemTypes.ACACIA_CHEST_BOAT; // Тип по константе
ItemType beetroot = ItemTypes.get("minecraft:beetroot"); // Получаем тип по строчному id
Item item = beetroot.createItem(3); // Создаем предмет в количестве 3х штук
// Работа с блоками
Block shulker = BlockTypes.LIME_SHULKER_BOX.createBlock();
Block stone = BlockTypes.get("minecraft:stone").createBlock();
Пример работы с тегами
import cn.nukkit.block.Block;
import cn.nukkit.block.material.BlockTypes;
import cn.nukkit.block.material.tags.BlockTags;
import cn.nukkit.item.Item;
import cn.nukkit.item.material.ItemTypes;
import cn.nukkit.item.material.tags.ItemTags;
import lombok.extern.slf4j.Slf4j;
// Работа с предметами
Item boat = ItemTypes.ACACIA_CHEST_BOAT.createItem();
log.info("Item has tag arrow {}", boat.hasItemTag(ItemTags.ARROW)); // Выведет false
log.info("Item has tag boat {}", boat.hasItemTag(ItemTags.BOAT)); // Выведет true
// Работа с блоками
Block planks = BlockTypes.ACACIA_PLANKS.createBlock();
log.info("Block has tag grass {}", planks.hasBlockTag(BlockTags.GRASS)); // Выведет false
log.info("Block has tag wood {}", planks.hasBlockTag(BlockTags.WOOD)); // Выведет true
Теги для блоков и предметов очень удобны для проверки, относится ли конкретный блок или предмет к какому-то типу, например к дереву.