Code

import net.minestom.server.item.ItemStack;import net.minestom.server.item.Material;import net.minestom.server.item.meta.ItemMeta;import net.minestom.server.item.ItemMetaBuilder;import net.kyori.adventure.text.Component;import net.kyori.adventure.text.format.NamedTextColor;import net.minestom.server.event.player.PlayerUseItemEvent;public class CustomItemUtils {        // Create custom item with name and lore    public static ItemStack createCustomItem(Material material, String itemName, String[] lore) {        ItemStack item = new ItemStack(material, 1);        ItemMeta meta = item.getMeta();                ItemMetaBuilder builder = meta.toBuilder();        builder.displayName(Component.text("" + itemName).color(NamedTextColor.WHITE));                if (lore != null && lore.length > 0) {            List<Component> loreComponents = new ArrayList<>();            for (String line : lore) {                loreComponents.add(Component.text("" + line).color(NamedTextColor.GRAY));            }            builder.lore(loreComponents);        }                if (false) {            builder.enchantment(Enchantment.SHARPNESS, 1);        }                return builder.build().toItemStack();    }        // Create custom weapon    public static ItemStack createCustomWeapon(Material material, String name, int damage) {        ItemStack weapon = new ItemStack(material, 1);        ItemMeta meta = weapon.getMeta();                ItemMetaBuilder builder = meta.toBuilder();        builder.displayName(Component.text(name));                List<Component> lore = Arrays.asList(            Component.text("Damage: " + damage).color(NamedTextColor.RED),            Component.text("Custom Weapon").color(NamedTextColor.GRAY)        );        builder.lore(lore);                // Store custom damage in NBT        if (weapon instanceof TagWritable writable) {            writable.setTag(Tag.Integer("custom_damage"), damage);        }                return builder.build().toItemStack();    }        // Register item use event    public static void registerCustomItemUse(GlobalEventHandler eventHandler, Material itemMaterial) {        eventHandler.addListener(PlayerUseItemEvent.class, event -> {            ItemStack item = event.getItemStack();            Player player = event.getPlayer();                        if (item.getMaterial() == itemMaterial) {                // Custom item behavior                player.sendMessage("You used a custom item!");                                if (false) {                    // Apply effect                    player.addEffect(new PotionEffect(                        PotionEffectType.SPEED,                        200,                        1                    ));                }                                if (false) {                    // Consume item                    item.setAmount(item.getAmount() - 1);                    player.getInventory().setItemInMainHand(item);                }            }        });    }        // Create custom food item    public static ItemStack createCustomFood(Material material, String name, int hungerRestore) {        ItemStack food = new ItemStack(material, 1);        ItemMeta meta = food.getMeta();                ItemMetaBuilder builder = meta.toBuilder();        builder.displayName(Component.text(name));                List<Component> lore = Arrays.asList(            Component.text("Hunger Restore: " + hungerRestore).color(NamedTextColor.GREEN)        );        builder.lore(lore);                return builder.build().toItemStack();    }}
// Create simple custom itemItemStack customItem = new ItemStack(Material.DIAMOND, 1);ItemMeta meta = customItem.getMeta();ItemMetaBuilder builder = meta.toBuilder();builder.displayName(Component.text("Custom Diamond").color(NamedTextColor.AQUA));builder.lore(Arrays.asList(    Component.text("This is a custom item").color(NamedTextColor.GRAY),    Component.text("With custom properties").color(NamedTextColor.GRAY)));builder.enchantment(Enchantment.SHARPNESS, 5);ItemStack result = builder.build().toItemStack();// Give item to playerPlayer player = // ... get playerplayer.getInventory().addItemStack(result);// Create custom weapon with NBT dataItemStack customSword = new ItemStack(Material.DIAMOND_SWORD, 1);ItemMeta swordMeta = customSword.getMeta();ItemMetaBuilder swordBuilder = swordMeta.toBuilder();swordBuilder.displayName(Component.text("Excalibur").color(NamedTextColor.GOLD));swordBuilder.lore(Arrays.asList(    Component.text("Damage: 15").color(NamedTextColor.RED),    Component.text("Legendary Weapon").color(NamedTextColor.YELLOW)));if (customSword instanceof TagWritable writable) {    writable.setTag(Tag.Integer("custom_damage"), 15);}ItemStack excalibur = swordBuilder.build().toItemStack();// Handle custom item usageGlobalEventHandler eventHandler = MinecraftServer.getGlobalEventHandler();eventHandler.addListener(PlayerUseItemEvent.class, event -> {    ItemStack item = event.getItemStack();    Player player = event.getPlayer();        if (item.getMaterial() == Material.GOLDEN_APPLE) {        // Custom golden apple behavior        player.setHealth(Math.min(player.getHealth() + 10, player.getMaxHealth()));        player.sendMessage("You consumed a special golden apple!");    }});// Create custom food itemItemStack customFood = new ItemStack(Material.COOKED_BEEF, 1);ItemMeta foodMeta = customFood.getMeta();ItemMetaBuilder foodBuilder = foodMeta.toBuilder();foodBuilder.displayName(Component.text("Super Steak").color(NamedTextColor.RED));foodBuilder.lore(Arrays.asList(    Component.text("Restores 10 hunger").color(NamedTextColor.GREEN)));ItemStack superSteak = foodBuilder.build().toItemStack();

Comments

Modeadmin2025-11-16 05:18

test wow test

0