Solved Check if item is damageable?

Discussion in 'Plugin Development' started by Tim_M, Nov 19, 2021.

Thread Status:
Not open for further replies.
  1. Offline

    Tim_M

    I need to check if item can take damage e.g. Sword, Axe, Fishing Rod etc.
    Or if it can't e.g. stone, enderpearl etc.

    I have tried the following:
    Code:
    item.getItemMeta() instanceof org.bukkit.inventory.meta.Damageable
    
    but it's always true no matter what item I check, any help?

    Here's the solution for whoever needs it:
    Code:
    boolean isDamageable(Material m)
    {
    return switch (m) {
    case DIAMOND_SWORD, STONE_SWORD, GOLDEN_SWORD, NETHERITE_SWORD, IRON_SWORD, WOODEN_SWORD,
    DIAMOND_PICKAXE, GOLDEN_PICKAXE, IRON_PICKAXE, NETHERITE_PICKAXE, WOODEN_PICKAXE,
    STONE_PICKAXE, STONE_HOE, WOODEN_HOE, GOLDEN_HOE, DIAMOND_HOE, NETHERITE_HOE, IRON_HOE,
    DIAMOND_AXE, GOLDEN_AXE, NETHERITE_AXE, WOODEN_AXE, STONE_AXE, IRON_AXE, STONE_SHOVEL,
    DIAMOND_SHOVEL, IRON_SHOVEL, GOLDEN_SHOVEL, NETHERITE_SHOVEL, WOODEN_SHOVEL, CHAINMAIL_HELMET,
    DIAMOND_HELMET, GOLDEN_HELMET, LEATHER_HELMET, NETHERITE_HELMET, IRON_HELMET, TURTLE_HELMET,
    CHAINMAIL_CHESTPLATE, DIAMOND_CHESTPLATE, GOLDEN_CHESTPLATE, LEATHER_CHESTPLATE, NETHERITE_CHESTPLATE,
    IRON_CHESTPLATE, LEATHER_LEGGINGS, CHAINMAIL_LEGGINGS, DIAMOND_LEGGINGS, GOLDEN_LEGGINGS, IRON_LEGGINGS,
    NETHERITE_LEGGINGS, CHAINMAIL_BOOTS, DIAMOND_BOOTS, LEATHER_BOOTS, GOLDEN_BOOTS, IRON_BOOTS, NETHERITE_BOOTS,
    TRIDENT, ELYTRA, SHEARS, BOW, CROSSBOW, FISHING_ROD, WARPED_FUNGUS_ON_A_STICK, CARROT_ON_A_STICK, SHIELD,
    FLINT_AND_STEEL -> true;
    default -> false;
    };
    }
    
     
    Last edited: Dec 17, 2021
  2. Offline

    pixelrider2000

    I havn't looked into that but couldn't you use getDurability()? What does that return for items that don't have any? Just my thoughts, good luck ;)
     
  3. Offline

    Tim_M

    Getdurability is deprecated. But I made a solution. I made a switch case that reruns a Boolean. Then I just added every damageable material in it.
     
Thread Status:
Not open for further replies.

Share This Page