From 17ba2879dd1315ba12bd07bc5c375677caed8a32 Mon Sep 17 00:00:00 2001 From: Brianna Date: Wed, 11 Dec 2019 16:43:23 -0500 Subject: [PATCH 1/4] Added 1.15 Support. --- pom.xml | 4 ++-- .../songoda/ultimatestacker/listeners/DeathListeners.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 5c7b954..1676509 100644 --- a/pom.xml +++ b/pom.xml @@ -105,8 +105,8 @@ org.spigotmc - spigot-api - 1.14.4-R0.1-SNAPSHOT + spigot + 1.15 provided diff --git a/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java b/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java index 5eb679b..b0be237 100644 --- a/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java +++ b/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java @@ -108,15 +108,15 @@ public class DeathListeners implements Listener { @EventHandler public void onEntityHit(EntityDamageByEntityEvent event) { - if (!(event.getDamager() instanceof Player)) return; + if (!(event.getDamager() instanceof Player) || ServerVersion.isServerVersionAtOrBelow(ServerVersion.V1_12)) return; if (!instance.getEntityStackManager().isStacked(event.getEntity())) return; EntityStack stack = instance.getEntityStackManager().getStack(event.getEntity()); if (Settings.KILL_WHOLE_STACK_ON_DEATH.getBoolean() && Settings.REALISTIC_DAMAGE.getBoolean()) { Player player = (Player) event.getDamager(); ItemStack tool = player.getInventory().getItemInHand(); - if (tool.getType().getMaxDurability() < 1 || (tool.getItemMeta() != null && (tool.getItemMeta().spigot().isUnbreakable() - || (ServerProject.isServer(ServerProject.SPIGOT, ServerProject.PAPER) && tool.getItemMeta().spigot().isUnbreakable())))) + if (tool.getType().getMaxDurability() < 1 || (tool.getItemMeta() != null && (tool.getItemMeta().isUnbreakable() + || (ServerProject.isServer(ServerProject.SPIGOT, ServerProject.PAPER) && tool.getItemMeta().isUnbreakable())))) return; int unbreakingLevel = tool.getEnchantmentLevel(Enchantment.DURABILITY); From efcde28e834a2d3a129a334bb179dc1d57468261 Mon Sep 17 00:00:00 2001 From: Brianna Date: Wed, 11 Dec 2019 17:30:40 -0500 Subject: [PATCH 2/4] Bees fly. --- src/main/java/com/songoda/ultimatestacker/utils/Methods.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/songoda/ultimatestacker/utils/Methods.java b/src/main/java/com/songoda/ultimatestacker/utils/Methods.java index ddc7b36..ecd12f6 100644 --- a/src/main/java/com/songoda/ultimatestacker/utils/Methods.java +++ b/src/main/java/com/songoda/ultimatestacker/utils/Methods.java @@ -119,6 +119,7 @@ public class Methods { case BLAZE: case PHANTOM: case BAT: + case BEE: return true; default: return false; From e5e72f25d3a8196050ef73c8058f1ac02505b334 Mon Sep 17 00:00:00 2001 From: Brianna Date: Wed, 11 Dec 2019 17:31:32 -0500 Subject: [PATCH 3/4] Optimizations. --- .../songoda/ultimatestacker/tasks/StackingTask.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/songoda/ultimatestacker/tasks/StackingTask.java b/src/main/java/com/songoda/ultimatestacker/tasks/StackingTask.java index a213fc1..17291f5 100644 --- a/src/main/java/com/songoda/ultimatestacker/tasks/StackingTask.java +++ b/src/main/java/com/songoda/ultimatestacker/tasks/StackingTask.java @@ -32,6 +32,9 @@ public class StackingTask extends BukkitRunnable { private final int minEntityStackSize = Settings.MIN_STACK_ENTITIES.getInt(); private final int maxPerTypeStacksPerChunk = Settings.MAX_PER_TYPE_STACKS_PER_CHUNK.getInt(); private final List disabledWorlds = Settings.DISABLED_WORLDS.getStringList(); + private final boolean onlyStackFromSpawners = Settings.ONLY_STACK_FROM_SPAWNERS.getBoolean(); + private final List stackReasons = Settings.STACK_REASONS.getStringList(); + private final boolean onlyStackOnSurface = Settings.ONLY_STACK_ON_SURFACE.getBoolean(); public StackingTask(UltimateStacker plugin) { this.plugin = plugin; @@ -59,8 +62,10 @@ public class StackingTask extends BukkitRunnable { for (Entity entity : entities) { // Get entity location to pass around as its faster this way. Location location = entity.getLocation(); + // Check to see if entity is stackable. if (!isEntityStackable(entity, location)) continue; + // Make sure our entity has not already been processed. // Skip it if it has been. if (this.processed.contains(entity.getUniqueId())) continue; @@ -99,11 +104,11 @@ public class StackingTask extends BukkitRunnable { final String spawnReason = entity.hasMetadata("US_REASON") && !entity.getMetadata("US_REASON").isEmpty() ? entity.getMetadata("US_REASON").get(0).asString() : null; List stackReasons; - if (Settings.ONLY_STACK_FROM_SPAWNERS.getBoolean()) { + if (onlyStackFromSpawners) { // If only stack from spawners is enabled, make sure the entity spawned from a spawner. if (!"SPAWNER".equals(spawnReason)) return false; - } else if (!(stackReasons = Settings.STACK_REASONS.getStringList()).isEmpty() && !stackReasons.contains(spawnReason)) + } else if (!(stackReasons = this.stackReasons).isEmpty() && !stackReasons.contains(spawnReason)) // Only stack if on the list of events to stack return false; @@ -111,7 +116,7 @@ public class StackingTask extends BukkitRunnable { LivingEntity livingEntity = (LivingEntity) entity; // If only stack on surface is enabled make sure the entity is on a surface then entity is stackable. - return !Settings.ONLY_STACK_ON_SURFACE.getBoolean() + return !onlyStackOnSurface || Methods.canFly(livingEntity) || entity.getType().name().equals("SHULKER") || (livingEntity.isOnGround() || location.getBlock().isLiquid()); From 80a81a1cb8efe86093e049e8d1cfd106840125d8 Mon Sep 17 00:00:00 2001 From: Brianna Date: Wed, 11 Dec 2019 16:44:00 -0500 Subject: [PATCH 4/4] 1.11 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1676509..bddfd88 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ com.songoda UltimateStacker 4.0.0 - 1.10.23 + 1.11 clean install UltimateStacker-${project.version}