diff --git a/src/main/java/com/songoda/ultimatestacker/entity/EntityStack.java b/src/main/java/com/songoda/ultimatestacker/entity/EntityStack.java index 3c9e159..3aeddb1 100644 --- a/src/main/java/com/songoda/ultimatestacker/entity/EntityStack.java +++ b/src/main/java/com/songoda/ultimatestacker/entity/EntityStack.java @@ -186,15 +186,7 @@ public class EntityStack { } public void mergeHealth(EntityStack stack) { - this.health.addAll(stack.getHealthDeque()); - } - - public Deque getHealthDeque() { - return new ArrayDeque<>(health); - } - - public void setHealthDeque(Deque health) { - this.health = health; + this.health.addAll(stack.health); } @Override diff --git a/src/main/java/com/songoda/ultimatestacker/tasks/StackingTask.java b/src/main/java/com/songoda/ultimatestacker/tasks/StackingTask.java index ee7a5b2..1ea1167 100644 --- a/src/main/java/com/songoda/ultimatestacker/tasks/StackingTask.java +++ b/src/main/java/com/songoda/ultimatestacker/tasks/StackingTask.java @@ -117,14 +117,15 @@ public class StackingTask extends BukkitRunnable { stack.updateStack(); if (initialStack == null) - stack.addHealth(initialEntity.getHealth()); + stack.addHealth(entity.getHealth()); else stack.mergeHealth(initialStack); removed.add(initialEntity.getUniqueId()); fixHealth(entity, initialEntity); - updateHealth(stack); + if (Setting.STACK_ENTITY_HEALTH.getBoolean()) + entity.setHealth(initialEntity.getHealth()); initialEntity.remove(); @@ -137,12 +138,14 @@ public class StackingTask extends BukkitRunnable { && initialEntity.getLocation().getY() > entity.getLocation().getY()) { EntityStack newStack = stackManager.addStack(entity, initialStack.getAmount() + 1); - newStack.setHealthDeque(initialStack.getHealthDeque()); - newStack.addHealth(entity.getHealth()); + newStack.mergeHealth(initialStack); + + newStack.addHealth(initialEntity.getHealth()); removed.add(initialEntity.getUniqueId()); fixHealth(initialEntity, entity); - updateHealth(newStack); + if (Setting.STACK_ENTITY_HEALTH.getBoolean()) + entity.setHealth(entity.getHealth()); stackManager.removeStack(initialEntity); initialEntity.remove();