absorption fix?

master
Benjamin Kraft 3 years ago
parent bdabf203ab
commit ea607b8c2e
  1. 22
      src/main/java/com/benjocraeft/sharehealth/AbsorptionManager.java
  2. 5
      src/main/java/com/benjocraeft/sharehealth/PlayerListeners.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<Player> 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);
}

@ -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();

Loading…
Cancel
Save