summaryrefslogtreecommitdiffstats
path: root/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2011-07-18 07:22:28 +0200
committersnowleo <schneeleo@gmail.com>2011-07-18 07:22:28 +0200
commit3d232e13d9c30284a83e4df2c3e4d62fd22f2950 (patch)
tree1b87e719d456a381dedd9a07edf13b08d5c97d62 /EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
parent83b71eef5ed18ee352707c06b40d4c2133f0cdf6 (diff)
downloadEssentials-3d232e13d9c30284a83e4df2c3e4d62fd22f2950.tar
Essentials-3d232e13d9c30284a83e4df2c3e4d62fd22f2950.tar.gz
Essentials-3d232e13d9c30284a83e4df2c3e4d62fd22f2950.tar.lz
Essentials-3d232e13d9c30284a83e4df2c3e4d62fd22f2950.tar.xz
Essentials-3d232e13d9c30284a83e4df2c3e4d62fd22f2950.zip
New config settings for Protect:
protect.prevent.tnt-playerdamage protect.prevent.fireball-fire protect.prevent.fireball-playerdamage
Diffstat (limited to 'EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java')
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
index ceb72bd8d..a71bcbd09 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
@@ -18,8 +18,10 @@ import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.craftbukkit.entity.CraftTNTPrimed;
import org.bukkit.entity.Creeper;
import org.bukkit.entity.Entity;
+import org.bukkit.entity.Fireball;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
+import org.bukkit.entity.TNTPrimed;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.EntityDamageByBlockEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
@@ -30,6 +32,7 @@ import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.entity.EntityListener;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.event.entity.EntityTargetEvent.TargetReason;
+import org.bukkit.event.entity.ExplosionPrimeEvent;
public class EssentialsProtectEntityListener extends EntityListener
@@ -118,6 +121,24 @@ public class EssentialsProtectEntityListener extends EntityListener
event.setCancelled(true);
return;
}
+
+ if (eAttack instanceof Fireball && prot.getSettingBool(ProtectConfig.prevent_fireball_playerdmg)
+ && !(target instanceof Player
+ && user.isAuthorized("essentials.protect.damage.fireball")
+ && !user.isAuthorized("essentials.protect.damage.disable")))
+ {
+ event.setCancelled(true);
+ return;
+ }
+
+ if (eAttack instanceof TNTPrimed && prot.getSettingBool(ProtectConfig.prevent_tnt_playerdmg)
+ && !(target instanceof Player
+ && user.isAuthorized("essentials.protect.damage.tnt")
+ && !user.isAuthorized("essentials.protect.damage.disable")))
+ {
+ event.setCancelled(true);
+ return;
+ }
}
if (event instanceof EntityDamageByProjectileEvent
@@ -314,4 +335,14 @@ public class EssentialsProtectEntityListener extends EntityListener
return;
}
}
+
+ @Override
+ public void onExplosionPrime(ExplosionPrimeEvent event)
+ {
+ if (event.getEntity() instanceof CraftFireball
+ && prot.getSettingBool(ProtectConfig.prevent_fireball_fire))
+ {
+ event.setFire(false);
+ }
+ }
}