From 0229178e7dc7911e50e73d04b7493a327ea1bc44 Mon Sep 17 00:00:00 2001 From: ceze88 Date: Sat, 6 May 2023 09:13:43 +0200 Subject: [PATCH 1/4] Revert "Fix compatibility issues with 3rd party loot plugins" This reverts commit 91e31c24c3291345858bc019ad1837ab8afdf50d. --- .../listeners/DeathListeners.java | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java b/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java index 8a6ef9d..ac556dd 100644 --- a/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java +++ b/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java @@ -58,42 +58,40 @@ public class DeathListeners implements Listener { @EventHandler public void onEntityDeath(EntityDeathEvent event) { - boolean custom = Settings.CUSTOM_DROPS.getBoolean(); - - if (!custom) return; //Compatibility with other plugins - LivingEntity entity = event.getEntity(); - - if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13) - && !entity.getWorld().getGameRuleValue(GameRule.DO_MOB_LOOT)) { - return; - } - if (event.getEntityType() == EntityType.PLAYER || event.getEntityType() == EntityType.ARMOR_STAND) return; //Respect MythicMobs if (plugin.getCustomEntityManager().isCustomEntity(entity)) return; + boolean custom = Settings.CUSTOM_DROPS.getBoolean(); + List drops = custom ? plugin.getLootablesManager().getDrops(event.getEntity()) + : event.getDrops().stream().map(Drop::new).collect(Collectors.toList()); - List drops = plugin.getLootablesManager().getDrops(event.getEntity()); - - for (ItemStack item : new ArrayList<>(event.getDrops())) { - if (shouldDrop(event.getEntity(), item.getType())) - drops.add(new Drop(item)); + if (custom) { + for (ItemStack item : new ArrayList<>(event.getDrops())) { + if (shouldDrop(event.getEntity(), item.getType())) + drops.add(new Drop(item)); + } } + if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13) + && !entity.getWorld().getGameRuleValue(GameRule.DO_MOB_LOOT)) + drops.clear(); + if (plugin.getCustomEntityManager().getCustomEntity(entity) == null) { //replace %player% in drop commands with the last player to damage the entity //Run commands here, or it will be buggy runCommands(entity, drops); if (plugin.getEntityStackManager().isStackedEntity(event.getEntity())) { - plugin.getEntityStackManager().getStack(event.getEntity()).onDeath(entity, drops, true, event.getDroppedExp(), event); + plugin.getEntityStackManager().getStack(event.getEntity()).onDeath(entity, drops, custom, event.getDroppedExp(), event); } else { DropUtils.processStackedDrop(event.getEntity(), drops, event); } } + finalItems.remove(entity.getUniqueId()); } From 3beb451db586a7bc5f07957d595f9baaf596f1f8 Mon Sep 17 00:00:00 2001 From: ceze88 Date: Sat, 6 May 2023 09:23:44 +0200 Subject: [PATCH 2/4] Fix compatibility issues with 3rd party plugins --- .../ultimatestacker/listeners/DeathListeners.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java b/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java index ac556dd..eddcebd 100644 --- a/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java +++ b/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java @@ -17,6 +17,7 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; @@ -56,9 +57,15 @@ public class DeathListeners implements Listener { } - @EventHandler + @EventHandler(priority = EventPriority.LOW) public void onEntityDeath(EntityDeathEvent event) { LivingEntity entity = event.getEntity(); + + if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13) + && !entity.getWorld().getGameRuleValue(GameRule.DO_MOB_LOOT)) { + return; + } + if (event.getEntityType() == EntityType.PLAYER || event.getEntityType() == EntityType.ARMOR_STAND) return; @@ -76,12 +83,7 @@ public class DeathListeners implements Listener { } } - if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13) - && !entity.getWorld().getGameRuleValue(GameRule.DO_MOB_LOOT)) - drops.clear(); - if (plugin.getCustomEntityManager().getCustomEntity(entity) == null) { - //replace %player% in drop commands with the last player to damage the entity //Run commands here, or it will be buggy runCommands(entity, drops); From f4bcca2c1dab4fe7c0e1ac707909cb8fbb0faf2d Mon Sep 17 00:00:00 2001 From: ceze88 Date: Sat, 6 May 2023 09:24:07 +0200 Subject: [PATCH 3/4] Updates SongodaCore v2.6.21 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bfae19c..97e6df5 100644 --- a/pom.xml +++ b/pom.xml @@ -122,7 +122,7 @@ com.songoda SongodaCore - 2.6.20 + 2.6.21 compile From d51a8096caf3aa1ca78369bf8bc4e7895da5ccf7 Mon Sep 17 00:00:00 2001 From: ceze88 Date: Sat, 6 May 2023 09:25:42 +0200 Subject: [PATCH 4/4] Release 2.4.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 97e6df5..1b11cc1 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ com.songoda UltimateStacker 4.0.0 - 2.4.1 + 2.4.2 clean install UltimateStacker-${project.version}