From 87fad400952fa121431a60b3bee8a6d06636edf3 Mon Sep 17 00:00:00 2001 From: Daniel Saukel Date: Tue, 14 Jul 2020 19:43:48 +0200 Subject: [PATCH] Fix entity combustion; resolves #832 --- .../erethon/dungeonsxl/mob/DMobListener.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/de/erethon/dungeonsxl/mob/DMobListener.java b/core/src/main/java/de/erethon/dungeonsxl/mob/DMobListener.java index a5630619..81f55d90 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/mob/DMobListener.java +++ b/core/src/main/java/de/erethon/dungeonsxl/mob/DMobListener.java @@ -20,7 +20,10 @@ import de.erethon.dungeonsxl.DungeonsXL; import de.erethon.dungeonsxl.api.world.EditWorld; import de.erethon.dungeonsxl.api.world.GameWorld; import org.bukkit.World; +import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Skeleton; +import org.bukkit.entity.Zombie; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.CreatureSpawnEvent; @@ -75,22 +78,16 @@ public class DMobListener implements Listener { } } - // Zombie / Skeleton combustion from the sun. + // Prevent undead combustion from the sun. @EventHandler public void onEntityCombust(EntityCombustEvent event) { - if (plugin.getGameWorld(event.getEntity().getWorld()) != null) { + if (event instanceof EntityCombustByEntityEvent) { + return; + } + Entity entity = event.getEntity(); + if ((entity instanceof Skeleton || entity instanceof Zombie) && plugin.getGameWorld(entity.getWorld()) != null) { event.setCancelled(true); } } - // Allow other combustion - @EventHandler - public void onEntityCombustByEntity(EntityCombustByEntityEvent event) { - if (plugin.getGameWorld(event.getEntity().getWorld()) != null) { - if (event.isCancelled()) { - event.setCancelled(false); - } - } - } - }