Lumi - серверный софт с мультиверсией от 1.20.0

Добавили систему материалов и тегов для предметов и блоков.

Пример работы с материалами

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

Теги для блоков и предметов очень удобны для проверки, относится ли конкретный блок или предмет к какому-то типу, например к дереву.

3 лайка