From df275fc23768efb4c0267d66cf0e7c0beed121bb Mon Sep 17 00:00:00 2001 From: Iaccidentally Date: Sun, 28 Oct 2012 13:41:13 -0400 Subject: Prevent changes (wither support) --- .../protect/EssentialsProtectEntityListener.java | 25 ++++++++++++++++++++++ .../src/net/ess3/protect/Permissions.java | 1 + 2 files changed, 26 insertions(+) (limited to 'EssentialsProtect/src/net') diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java index 5adb2b4a3..d2553b30f 100644 --- a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java +++ b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java @@ -89,6 +89,14 @@ public class EssentialsProtectEntityListener implements Listener event.setCancelled(true); return; } + + if ((event.getEntity() instanceof WitherSkull + && Permissions.PREVENTDAMAGE_WITHERSKULL.isAuthorized(user) + && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user))) + { + event.setCancelled(true); + return; + } if (eAttack instanceof TNTPrimed && (Permissions.PREVENTDAMAGE_TNT.isAuthorized(user) @@ -171,6 +179,12 @@ public class EssentialsProtectEntityListener implements Listener event.setCancelled(true); return; } + else if (event.getEntity() instanceof Wither + && settings.getData().getPrevent().isWitherSpawnExplosion()) + { + event.setCancelled(true); + return; + } else if (event.getEntity() instanceof Creeper && (settings.getData().getPrevent().isCreeperExplosion() || settings.getData().getPrevent().isCreeperBlockdamage() @@ -192,6 +206,12 @@ public class EssentialsProtectEntityListener implements Listener event.setCancelled(true); return; } + else if ((event.getEntity() instanceof WitherSkull) + && settings.getData().getPrevent().isWitherSkullExplosion()) + { + event.setCancelled(true); + return; + } } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @@ -239,5 +259,10 @@ public class EssentialsProtectEntityListener implements Listener { event.setCancelled(true); } + if (event.getEntityType() == EntityType.WITHER && settings.getData().getPrevent().isWitherBlockreplace()) + { + event.setCancelled(true); + return; + } } } diff --git a/EssentialsProtect/src/net/ess3/protect/Permissions.java b/EssentialsProtect/src/net/ess3/protect/Permissions.java index 9574ca886..9890231d5 100644 --- a/EssentialsProtect/src/net/ess3/protect/Permissions.java +++ b/EssentialsProtect/src/net/ess3/protect/Permissions.java @@ -23,6 +23,7 @@ public enum Permissions implements IPermission PREVENTDAMAGE_DROWNING(PermissionDefault.FALSE), PREVENTDAMAGE_LIGHTNING(PermissionDefault.FALSE), PREVENTDAMAGE_WITHER(PermissionDefault.FALSE), + PREVENTDAMAGE_WITHERSKULL(PermissionDefault.FALSE), PREVENTDAMAGE_NONE(PermissionDefault.FALSE), USEFLINTSTEEL(PermissionDefault.TRUE); private static final String base = "essentials.protect."; -- cgit v1.2.3