diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/BlastMining.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/BlastMining.java index 450dd9bf..12e14a84 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/BlastMining.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/BlastMining.java @@ -83,9 +83,11 @@ public class BlastMining extends EcoEnchant { } } } + ItemStack itemStack = player.getInventory().getItemInMainHand(); ItemMeta beforeMeta = itemStack.getItemMeta(); assert beforeMeta != null; + boolean hadUnbreak = beforeMeta.isUnbreakable(); beforeMeta.setUnbreakable(true); itemStack.setItemMeta(beforeMeta); int blocks = toBreak.size(); @@ -98,15 +100,17 @@ public class BlastMining extends EcoEnchant { ItemMeta afterMeta = itemStack.getItemMeta(); assert afterMeta != null; - afterMeta.setUnbreakable(false); + afterMeta.setUnbreakable(hadUnbreak); itemStack.setItemMeta(afterMeta); PlayerItemDamageEvent mockEvent = new PlayerItemDamageEvent(player, itemStack, blocks); Bukkit.getPluginManager().callEvent(mockEvent); - ItemMeta wayAfterMeta = itemStack.getItemMeta(); - assert wayAfterMeta != null; - ((Damageable) wayAfterMeta).setDamage(((Damageable) wayAfterMeta).getDamage() + mockEvent.getDamage()); - itemStack.setItemMeta(wayAfterMeta); + if (!hadUnbreak) { + ItemMeta wayAfterMeta = itemStack.getItemMeta(); + assert wayAfterMeta != null; + ((Damageable) wayAfterMeta).setDamage(((Damageable) wayAfterMeta).getDamage() + mockEvent.getDamage()); + itemStack.setItemMeta(wayAfterMeta); + } AnticheatManager.unexemptPlayer(player); } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Lumberjack.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Lumberjack.java index 5d9fb58c..7d7e79c3 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Lumberjack.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Lumberjack.java @@ -58,6 +58,7 @@ public class Lumberjack extends EcoEnchant { ItemStack itemStack = player.getInventory().getItemInMainHand(); ItemMeta beforeMeta = itemStack.getItemMeta(); assert beforeMeta != null; + boolean hadUnbreak = beforeMeta.isUnbreakable(); beforeMeta.setUnbreakable(true); itemStack.setItemMeta(beforeMeta); int blocks = treeBlocks.size(); @@ -75,15 +76,17 @@ public class Lumberjack extends EcoEnchant { ItemMeta afterMeta = itemStack.getItemMeta(); assert afterMeta != null; - afterMeta.setUnbreakable(false); + afterMeta.setUnbreakable(hadUnbreak); itemStack.setItemMeta(afterMeta); PlayerItemDamageEvent mockEvent = new PlayerItemDamageEvent(player, itemStack, blocks); Bukkit.getPluginManager().callEvent(mockEvent); - ItemMeta wayAfterMeta = itemStack.getItemMeta(); - assert wayAfterMeta != null; - ((Damageable) wayAfterMeta).setDamage(((Damageable) wayAfterMeta).getDamage() + mockEvent.getDamage()); - itemStack.setItemMeta(wayAfterMeta); + if (!hadUnbreak) { + ItemMeta wayAfterMeta = itemStack.getItemMeta(); + assert wayAfterMeta != null; + ((Damageable) wayAfterMeta).setDamage(((Damageable) wayAfterMeta).getDamage() + mockEvent.getDamage()); + itemStack.setItemMeta(wayAfterMeta); + } AnticheatManager.unexemptPlayer(player); }