// Create simple custom item
ItemStack 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 player
Player player = // ... get player
player.getInventory().addItemStack(result);
// Create custom weapon with NBT data
ItemStack 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 usage
GlobalEventHandler 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 item
ItemStack 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();