diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/combat/CombatManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/combat/CombatManager.java index 3fd8e43..792b964 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/combat/CombatManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/combat/CombatManager.java @@ -5,6 +5,7 @@ import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.spawnIndicator; import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.updateActionBar; import java.util.HashMap; +import java.util.Map; import java.util.Map.Entry; import java.util.Random; import java.util.UUID; @@ -29,19 +30,10 @@ import org.jetbrains.annotations.NotNull; public class CombatManager extends Manager { public static final Random RANDOM = new Random(); - private final HashMap> historyMobDamage = new HashMap<>(); - - @EventHandler - public void onDamage(@NotNull EntityDamageByBlockEvent e) { - // TODO: Implement - // blast enchant :shrug: - // fall damage, fire damage, etc - e.setDamage(0.0); - e.setCancelled(true); - } + private final Map> historyMobDamage = new HashMap<>(); private static void playerVictim( - @NotNull EntityDamageByEntityEvent e, Player player, Mob mob, PlayerManager pm) { + @NotNull EntityDamageByEntityEvent e, Player player, @NotNull Mob mob, PlayerManager pm) { // get equipment of damager EntityEquipment equipment = mob.getEquipment(); Double dStrength = Items.getTotalAttribute(equipment, Attribute.STRENGTH); @@ -100,6 +92,15 @@ public class CombatManager extends Manager { // TODO: check for status effects (apply status effects depending item of damager) } + @EventHandler + public void onDamage(@NotNull EntityDamageByBlockEvent e) { + // TODO: Implement + // blast enchant :shrug: + // fall damage, fire damage, etc + e.setDamage(0.0); + e.setCancelled(true); + } + // TODO: Finish this @EventHandler public void onDamage(@NotNull EntityDamageByEntityEvent e) { @@ -141,7 +142,7 @@ public class CombatManager extends Manager { @NotNull EntityDamageByEntityEvent e, LivingEntity entity, Player d, - PlayerManager pm, + @NotNull PlayerManager pm, Mob mob) { double dStrength = Items.getTotalAttribute(d, Attribute.STRENGTH); SRPlayer player = pm.getPlayer(d.getUniqueId()); @@ -201,18 +202,19 @@ public class CombatManager extends Manager { // TODO: check for status effects (apply status effects depending item of damager) } - private void die(LivingEntity entity, Player d, PlayerManager pm, SREntity ent) { + private void die( + LivingEntity entity, @NotNull Player d, @NotNull PlayerManager pm, SREntity ent) { // entity is dead, give experience to player SRPlayer player1 = pm.getPlayer(d.getUniqueId()); if (player1 != null && ent != null) { // calculate experience % based on damage - HashMap playerDoubleHashMap = historyMobDamage.get(entity.getUniqueId()); + Map playerDoubleHashMap = historyMobDamage.get(entity.getUniqueId()); if (playerDoubleHashMap == null) { return; } - for (Entry map : playerDoubleHashMap.entrySet()) { + for (Entry map : playerDoubleHashMap.entrySet()) { Double exp = ent.getExperience() * (map.getValue() / ent.getHealth()); - SRPlayer tmp = pm.getPlayer(map.getKey().getUniqueId()); + SRPlayer tmp = pm.getPlayer(map.getKey()); if (tmp != null) { tmp.setExperience((long) (tmp.getExperience() + exp)); } @@ -220,18 +222,18 @@ public class CombatManager extends Manager { } } - private void historyHandler(LivingEntity entity, Player d, Double damage) { + private void historyHandler(@NotNull LivingEntity entity, Player d, Double damage) { if (historyMobDamage.containsKey(entity.getUniqueId())) { - HashMap history = + Map history = historyMobDamage.getOrDefault(entity.getUniqueId(), new HashMap<>()); - if (history.containsKey(d)) { - history.put(d, history.get(d) + damage); + if (history.containsKey(d.getUniqueId())) { + history.put(d.getUniqueId(), history.get(d.getUniqueId()) + damage); } else { - history.put(d, damage); + history.put(d.getUniqueId(), damage); } } else { - HashMap history = new HashMap<>(); - history.put(d, damage); + Map history = new HashMap<>(); + history.put(d.getUniqueId(), damage); historyMobDamage.put(entity.getUniqueId(), history); } }