package net.knarcraft.blacksmith.util; import org.bukkit.Material; import org.bukkit.enchantments.EnchantmentTarget; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.Damageable; import java.util.ArrayList; import java.util.List; public final class ItemHelper { private ItemHelper() { } /** * Gets the current durability of the given item * * @param itemStack

The item to get the durability of

* @return

The durability of the item

*/ public static short getDurability(ItemStack itemStack) { Damageable damageable = (Damageable) itemStack.getItemMeta(); int maxDurability = itemStack.getType().getMaxDurability(); if (damageable != null) { return (short) (maxDurability - damageable.getDamage()); } else { return (short) maxDurability; } } /** * Gets the damage done to the given item * * @param itemStack

The damage done to the item

* @return

The damage done to the item

*/ public static short getDamage(ItemStack itemStack) { Damageable damageable = (Damageable) itemStack.getItemMeta(); if (damageable != null) { return (short) damageable.getDamage(); } else { return 0; } } /** * Gets a complete list of all reforge-able materials * * @return

A complete list of reforge-able materials

*/ public static List getAllReforgeAbleMaterials() { List reforgeAbleMaterials = new ArrayList<>(); for (Material material : Material.values()) { ItemStack item = new ItemStack(material); if (item.getItemMeta() instanceof Damageable && EnchantmentTarget.BREAKABLE.includes(item)) { reforgeAbleMaterials.add(material); } } return reforgeAbleMaterials; } }