diff --git a/src/main/java/me/youhavetrouble/enchantio/listeners/BeheadingListener.java b/src/main/java/me/youhavetrouble/enchantio/listeners/BeheadingListener.java index 164e849..268b0fd 100644 --- a/src/main/java/me/youhavetrouble/enchantio/listeners/BeheadingListener.java +++ b/src/main/java/me/youhavetrouble/enchantio/listeners/BeheadingListener.java @@ -11,13 +11,13 @@ import org.bukkit.Material; import org.bukkit.Registry; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.inventory.EntityEquipment; -import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.SkullMeta; import org.jetbrains.annotations.NotNull; @@ -37,14 +37,13 @@ public class BeheadingListener implements Listener { if (beheading == null) return; EnchantioEnchant enchant = EnchantioConfig.ENCHANTS.get(BeheadingEnchant.KEY); if (!(enchant instanceof BeheadingEnchant beheadingEnchant)) return; - if (event.getEntity().getKiller() == null) return; if (event.getDamageSource().isIndirect()) return; Entity killer = event.getDamageSource().getCausingEntity(); if (killer == null) return; - if (!(killer instanceof InventoryHolder inventoryHolder)) return; - if (!(inventoryHolder.getInventory() instanceof EntityEquipment entityEquipment)) return; - - ItemStack weapon = entityEquipment.getItemInMainHand(); + if (!(killer instanceof LivingEntity killerEntity)) return; + EntityEquipment killerEquipment = killerEntity.getEquipment(); + if (killerEquipment == null) return; + ItemStack weapon = killerEquipment.getItemInMainHand(); if (!weapon.containsEnchantment(beheading)) return; diff --git a/src/main/java/me/youhavetrouble/enchantio/listeners/ExecutionerListener.java b/src/main/java/me/youhavetrouble/enchantio/listeners/ExecutionerListener.java index 2c5c58b..d21354b 100644 --- a/src/main/java/me/youhavetrouble/enchantio/listeners/ExecutionerListener.java +++ b/src/main/java/me/youhavetrouble/enchantio/listeners/ExecutionerListener.java @@ -16,7 +16,6 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.inventory.EntityEquipment; -import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; @@ -34,10 +33,11 @@ public class ExecutionerListener implements Listener { Entity damager = event.getDamageSource().getCausingEntity(); if (damager == null) return; if (!damager.equals(event.getDamageSource().getDirectEntity())) return; - if (!(damager instanceof InventoryHolder inventoryHolder)) return; - if (!(inventoryHolder.getInventory() instanceof EntityEquipment entityEquipment)) return; + if (!(damager instanceof LivingEntity damagerEntity)) return; - ItemStack attackingItem = entityEquipment.getItemInMainHand(); + EntityEquipment damagerEquipment = damagerEntity.getEquipment(); + if (damagerEquipment == null) return; + ItemStack attackingItem = damagerEquipment.getItemInMainHand(); if (!attackingItem.containsEnchantment(executioner)) return;