diff options
author | Iaccidentally <coryhuckaby@gmail.com> | 2012-10-28 12:53:12 -0400 |
---|---|---|
committer | Iaccidentally <coryhuckaby@gmail.com> | 2012-10-28 12:53:12 -0400 |
commit | 73013a19bad6a56e419e577471b5161b75d5da35 (patch) | |
tree | 380970deff4087162329dd4ac08d2102e4b9895d | |
parent | 0a4955cd793cc9b8bb906138b5390997ba74b54e (diff) | |
download | Essentials-73013a19bad6a56e419e577471b5161b75d5da35.tar Essentials-73013a19bad6a56e419e577471b5161b75d5da35.tar.gz Essentials-73013a19bad6a56e419e577471b5161b75d5da35.tar.lz Essentials-73013a19bad6a56e419e577471b5161b75d5da35.tar.xz Essentials-73013a19bad6a56e419e577471b5161b75d5da35.zip |
Fully support wither blocking in protect
3 files changed, 29 insertions, 0 deletions
diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 83a1a5a74..aea76ffd0 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -460,6 +460,9 @@ protect: fireball-explosion: false fireball-fire: false fireball-playerdamage: false + witherskull-explosion: flase + witherskull-playerdamage: false + witherskull-spawnexplosion: flase creeper-explosion: false creeper-playerdamage: false creeper-blockdamage: false diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java index 5ce7623b6..bb406ebf9 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java @@ -114,6 +114,16 @@ public class EssentialsProtectEntityListener implements Listener event.setCancelled(true); return; } + + if ((event.getEntity() instanceof WitherSkull + && prot.getSettingBool(ProtectConfig.prevent_witherskull_playerdmg) + && !(target instanceof Player + && user.isAuthorized("essentials.protect.damage.witherskull") + && !user.isAuthorized("essentials.protect.damage.disable")))) + { + event.setCancelled(true); + return; + } if (eAttack instanceof TNTPrimed && prot.getSettingBool(ProtectConfig.prevent_tnt_playerdmg) && !(target instanceof Player @@ -214,6 +224,12 @@ public class EssentialsProtectEntityListener implements Listener } return; } + if (event.getEntity() instanceof WitherSkull + && prot.getSettingBool(ProtectConfig.prevent_witherskull_spawnexplosion)) + { + event.setCancelled(true); + return; + } else if (event.getEntity() instanceof Creeper && (prot.getSettingBool(ProtectConfig.prevent_creeper_explosion) || prot.getSettingBool(ProtectConfig.prevent_creeper_blockdmg) @@ -236,6 +252,13 @@ public class EssentialsProtectEntityListener implements Listener event.setCancelled(true); return; } + else if ((event.getEntity() instanceof WitherSkull) + && prot.getSettingBool(ProtectConfig.prevent_witherskull_explosion)) + { + event.setCancelled(true); + return; + } + // This code will prevent explosions near protected rails, signs or protected chests // TODO: Use protect db instead of this code diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java b/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java index dda0060bf..c53e921d9 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java @@ -35,6 +35,9 @@ public enum ProtectConfig prevent_fireball_explosion("protect.prevent.fireball-explosion", false), prevent_fireball_fire("protect.prevent.fireball-fire", false), prevent_fireball_playerdmg("protect.prevent.fireball-playerdamage", false), + prevent_witherskull_explosion("protect.prevent.witherskull-explosion", false), + prevent_witherskull_playerdmg("protect.prevent.witherskull-playerdamage", false), + prevent_witherskull_spawnexplosion("protect.prevent.witherskull-spawnexplosion", false), prevent_creeper_explosion("protect.prevent.creeper-explosion", true), prevent_creeper_playerdmg("protect.prevent.creeper-playerdamage", false), prevent_creeper_blockdmg("protect.prevent.creeper-blockdamage", false), |