diff --git a/src/main/java/com/benjocraeft/sharehealth/AbsorptionManager.java b/src/main/java/com/benjocraeft/sharehealth/AbsorptionManager.java index dde8245..e99d422 100644 --- a/src/main/java/com/benjocraeft/sharehealth/AbsorptionManager.java +++ b/src/main/java/com/benjocraeft/sharehealth/AbsorptionManager.java @@ -32,7 +32,7 @@ public class AbsorptionManager { duration -= 20; if (duration <= 0) - expire(); + expire(false); } void onPlayerGotDamage(Player player, double absorptionDamage){ @@ -42,19 +42,20 @@ public class AbsorptionManager { setAmount(player, amount - absorptionDamage); } - private void expire(){ + private void expire(boolean fromBeingBroken){ Bukkit.getScheduler().cancelTask(task); duration = 0; - amount = 0; - setAmount(0); + if (!fromBeingBroken){ + setAmount(0); + } } - private void setAmount(Player triggeringPlayer, double amount){ - if (amount <= 0){ - expire(); + private void setAmount(Player triggeringPlayer, double newAmount){ + if (newAmount <= 0){ + expire(true); amount = 0; - } - this.amount = amount; + } else + amount = newAmount; List players = Sharehealth.GetPlayers(); players.remove(triggeringPlayer); players.forEach(this::setAbsorption); @@ -65,9 +66,6 @@ public class AbsorptionManager { } void setAbsorption(Player player){ - if (!isActive()) - return; - player.setAbsorptionAmount(amount); } diff --git a/src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java b/src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java index 3d44c04..f962013 100644 --- a/src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java +++ b/src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java @@ -26,6 +26,11 @@ public class PlayerListeners implements Listener{ Sharehealth.Instance.onPlayerJoin(e.getPlayer()); } + @EventHandler + public void onDeath(PlayerDeathEvent e){ + Player p = e.getEntity(); + } + @EventHandler public void onPlayerRespawn(final PlayerRespawnEvent e){ Player p = e.getPlayer();