From 5002e7a6ad13295ed85d5758da5a739ade116a72 Mon Sep 17 00:00:00 2001 From: snowleo Date: Thu, 8 Dec 2011 00:48:53 +0100 Subject: Prevent blockdamage by enderdragon (default true) in EssentialsProtect CB#1566 B#1058 --- .../protect/EssentialsProtectEntityListener.java | 25 ++++++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java') diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java index fbbb321f3..89167b2b9 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java @@ -32,13 +32,13 @@ public class EssentialsProtectEntityListener extends EntityListener return; } final Entity target = event.getEntity(); - + if (target instanceof Villager && prot.getSettingBool(ProtectConfig.prevent_villager_death)) { event.setCancelled(true); return; } - + final User user = ess.getUser(target); if (event instanceof EntityDamageByBlockEvent) { @@ -197,12 +197,23 @@ public class EssentialsProtectEntityListener extends EntityListener return; } final int maxHeight = ess.getSettings().getProtectCreeperMaxHeight(); - //Nicccccccccce plaaacccccccccce.. - if (event.getEntity() instanceof LivingEntity - && (prot.getSettingBool(ProtectConfig.prevent_creeper_explosion) - || prot.getSettingBool(ProtectConfig.prevent_creeper_blockdmg) - || (maxHeight >= 0 && event.getLocation().getBlockY() > maxHeight))) + + if (event.getEntity() instanceof EnderDragon + && prot.getSettingBool(ProtectConfig.prevent_enderdragon_blockdmg)) + { + if (prot.getSettingBool(ProtectConfig.enderdragon_fakeexplosions)) + { + FakeExplosion.createExplosion(event, ess.getServer(), ess.getServer().getOnlinePlayers()); + } + event.setCancelled(true); + return; + } + else if (event.getEntity() instanceof Creeper + && (prot.getSettingBool(ProtectConfig.prevent_creeper_explosion) + || prot.getSettingBool(ProtectConfig.prevent_creeper_blockdmg) + || (maxHeight >= 0 && event.getLocation().getBlockY() > maxHeight))) { + //Nicccccccccce plaaacccccccccce.. FakeExplosion.createExplosion(event, ess.getServer(), ess.getServer().getOnlinePlayers()); event.setCancelled(true); return; -- cgit v1.2.3