diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Parasitic.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Parasitic.java index 2b6f30ae..37381a99 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Parasitic.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Parasitic.java @@ -28,6 +28,8 @@ public class Parasitic extends EcoEnchant { if (newHealth > attacker.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()) { newHealth = attacker.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue(); } - attacker.setHealth(newHealth); + if (attacker.getHealth() > 0) { + attacker.setHealth(newHealth); + } } } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Soulbound.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Soulbound.java index 89aa8f59..21d786b3 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Soulbound.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Soulbound.java @@ -17,6 +17,7 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Arrow; import java.util.ArrayList; import java.util.List; @@ -42,18 +43,19 @@ public class Soulbound extends EcoEnchant { return; } - if (player.getKiller() != null) { - Player killer = player.getKiller(); - int reaperLevel = EnchantChecks.getMainhandLevel(killer, EcoEnchants.REAPER); - if (reaperLevel > 0) { - if (!(EcoEnchants.REAPER.getDisabledWorlds().contains(killer.getWorld()))) { - if (EnchantmentUtils.passedChance(EcoEnchants.REAPER, reaperLevel)) { - return; - } - } - } - } - + if (!(event.getEntity() instanceof Arrow)) { + if (player.getKiller() != null) { + Player killer = player.getKiller(); + int reaperLevel = EnchantChecks.getMainhandLevel(killer, EcoEnchants.REAPER); + if (reaperLevel > 0) { + if (!(EcoEnchants.REAPER.getDisabledWorlds().contains(killer.getWorld()))) { + if (EnchantmentUtils.passedChance(EcoEnchants.REAPER, reaperLevel)) { + return; + } + } + } + } + } for (ItemStack itemStack : player.getInventory().getContents()) { if (itemStack == null) { continue;