diff options
4 files changed, 22 insertions, 8 deletions
diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index f0c22e557..10e6f9a4c 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -61,7 +61,7 @@ import org.yaml.snakeyaml.error.YAMLException; public class Essentials extends JavaPlugin implements IEssentials { - public static final int BUKKIT_VERSION = 1560; + public static final int BUKKIT_VERSION = 1566; private static final Logger LOGGER = Logger.getLogger("Minecraft"); private transient ISettings settings; private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this); diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 460997345..019c0ef7a 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -409,6 +409,7 @@ protect: creeper-explosion: false creeper-playerdamage: false creeper-blockdamage: false + enderdragon-blockdamage: true enderman-pickup: false villager-death: false # Monsters won't follow players 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; diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java b/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java index 817ad66af..bee8d0f4d 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java @@ -41,11 +41,13 @@ public enum ProtectConfig prevent_creeper_blockdmg("protect.prevent.creeper-blockdamage", false), prevent_enderman_pickup("protect.prevent.enderman-pickup", false), prevent_villager_death("protect.prevent.villager-death", false), + prevent_enderdragon_blockdmg("protect.prevent.enderdragon-blockdamage", true), prevent_entitytarget("protect.prevent.entitytarget", false), protect_rails("protect.protect.rails", true), protect_below_rails("protect.protect.block-below", true), protect_signs("protect.protect.signs", true), protect_against_signs("protect.protect.block-below", true), + enderdragon_fakeexplosions("protect.enderdragon-fakeexplosions", false), alert_on_placement("protect.alert.on-placement"), alert_on_use("protect.alert.on-use"), alert_on_break("protect.alert.on-break"), |