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
test wow test
Please login to leave a comment.