From a9f7f68a1bba6a183fe90c44a7f48a82088c8434 Mon Sep 17 00:00:00 2001 From: Default Date: Sat, 2 Jan 2021 00:33:23 +0100 Subject: [PATCH] better absorption --- .../benjocraeft/sharehealth/PlayerListeners.java | 10 ++++++---- .../com/benjocraeft/sharehealth/Sharehealth.java | 14 +++++++------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java b/src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java index c311db1..54e4319 100644 --- a/src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java +++ b/src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java @@ -51,8 +51,8 @@ public class PlayerListeners implements Listener{ break; } } - double originalAbsorptionDamage = -event.getOriginalDamage(DamageModifier.ABSORPTION); - Sharehealth.Instance.onPlayerGotDamage((Player) entity, damage, cause, allowed, originalAbsorptionDamage); + double absorbedDamage = -event.getOriginalDamage(DamageModifier.ABSORPTION); + Sharehealth.Instance.onPlayerGotDamage((Player) entity, damage, cause, allowed, absorbedDamage); } } @@ -63,7 +63,8 @@ public class PlayerListeners implements Listener{ Entity cause = event.getDamager(); if (entity instanceof Player) { - Sharehealth.Instance.onPlayerGotDamageByEntity((Player)entity, damage, cause); + double absorbedDamage = -event.getOriginalDamage(DamageModifier.ABSORPTION); + Sharehealth.Instance.onPlayerGotDamageByEntity((Player)entity, damage, cause, absorbedDamage); } } @@ -74,7 +75,8 @@ public class PlayerListeners implements Listener{ Block cause = event.getDamager(); if (entity instanceof Player) { - Sharehealth.Instance.onPlayerGotDamageByBlock((Player)entity, damage, cause); + double absorbedDamage = -event.getOriginalDamage(DamageModifier.ABSORPTION); + Sharehealth.Instance.onPlayerGotDamageByBlock((Player)entity, damage, cause, absorbedDamage); } } diff --git a/src/main/java/com/benjocraeft/sharehealth/Sharehealth.java b/src/main/java/com/benjocraeft/sharehealth/Sharehealth.java index 2da7a86..22dad75 100644 --- a/src/main/java/com/benjocraeft/sharehealth/Sharehealth.java +++ b/src/main/java/com/benjocraeft/sharehealth/Sharehealth.java @@ -99,33 +99,33 @@ public class Sharehealth extends JavaPlugin { healthManager.updatePlayer(player); } - void onPlayerGotDamage(Player player, double damage, DamageCause cause, boolean allowed, double absorptionDamage){ + void onPlayerGotDamage(Player player, double damage, DamageCause cause, boolean allowed, double absorbedDamage){ if (isFailed) return; - double receivedDamage = damage + absorptionDamage; + double receivedDamage = damage + absorbedDamage; if (allowed) messenger.onPlayerGotDamageMessage(player, receivedDamage, cause); statistics.onPlayerGotDamage(player, receivedDamage); - if (!healthManager.onPlayerGotDamage(player, damage, absorptionDamage)){ + if (!healthManager.onPlayerGotDamage(player, damage, absorbedDamage)){ failed(player); } saveStatus(); } - void onPlayerGotDamageByEntity(Player player, double damage, Entity cause){ + void onPlayerGotDamageByEntity(Player player, double damage, Entity cause, double absorbedDamage){ if (isFailed) return; - messenger.onPlayerGotDamageMessage(player, damage, cause); + messenger.onPlayerGotDamageMessage(player, damage + absorbedDamage, cause); } - void onPlayerGotDamageByBlock(Player player, double damage, Block cause){ + void onPlayerGotDamageByBlock(Player player, double damage, Block cause, double absorbedDamage){ if (isFailed) return; - messenger.onPlayerGotDamageMessage(player, damage, cause); + messenger.onPlayerGotDamageMessage(player, damage + absorbedDamage, cause); } boolean onPlayerRegainedHealth(Player player, double amount, RegainReason reason){