summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Essentials/src/config.yml4
-rw-r--r--Essentials/src/net/ess3/settings/protect/Prevent.java3
-rw-r--r--EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java25
-rw-r--r--EssentialsProtect/src/net/ess3/protect/Permissions.java1
4 files changed, 33 insertions, 0 deletions
diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml
index 9dfc79cfb..bdf3fef41 100644
--- a/Essentials/src/config.yml
+++ b/Essentials/src/config.yml
@@ -447,6 +447,10 @@ protect:
fireball-explosion: false
fireball-fire: false
fireball-playerdamage: false
+ witherskull-explosion: flase
+ witherskull-playerdamage: false
+ wither-spawnexplosion: flase
+ wither-blockreplace: false
creeper-explosion: false
creeper-playerdamage: false
creeper-blockdamage: false
diff --git a/Essentials/src/net/ess3/settings/protect/Prevent.java b/Essentials/src/net/ess3/settings/protect/Prevent.java
index 206b9626b..6d67908b1 100644
--- a/Essentials/src/net/ess3/settings/protect/Prevent.java
+++ b/Essentials/src/net/ess3/settings/protect/Prevent.java
@@ -23,6 +23,9 @@ public class Prevent implements StorageObject
private boolean creeperExplosion = false;
private boolean creeperBlockdamage = false;
private boolean enderdragonBlockdamage = false;
+ private boolean WitherSpawnExplosion = false;
+ private boolean WitherSkullExplosion = false;
+ private boolean WitherBlockreplace = false;
private boolean endermanPickup = false;
private boolean villagerDeath = false;
@Comment(
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.";