From 6496bbd87fb10c9db80a37dea158652f6aa93cfd Mon Sep 17 00:00:00 2001 From: Wizjany Date: Wed, 15 Jun 2011 13:02:59 -0400 Subject: [PATCH] Added config option to disable mob damage for people not using regions --- .../com/sk89q/worldguard/bukkit/WorldConfiguration.java | 2 ++ .../worldguard/bukkit/WorldGuardEntityListener.java | 9 +++++++++ src/main/resources/config_world.yml | 1 + 3 files changed, 12 insertions(+) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldConfiguration.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldConfiguration.java index 9a2fa0df..a4aa2105 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldConfiguration.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldConfiguration.java @@ -96,6 +96,7 @@ public class WorldConfiguration { public boolean disableVoidDamage; public boolean teleportOnVoid; public boolean disableExplosionDamage; + public boolean disableMobDamage; public boolean useRegions; public boolean highFreqFlags; public int regionWand = 287; @@ -198,6 +199,7 @@ private void loadConfiguration() { disableVoidDamage = config.getBoolean("player-damage.disable-void-damage", false); teleportOnVoid = config.getBoolean("player-damage.teleport-on-void-falling", false); disableExplosionDamage = config.getBoolean("player-damage.disable-explosion-damage", false); + disableMobDamage = config.getBoolean("player-damage.disable-mob-damage", false); signChestProtection = config.getBoolean("chest-protection.enable", false); diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java index 91e93f05..1d39993a 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java @@ -218,6 +218,11 @@ private void onEntityDamageByEntity(EntityDamageByEntityEvent event) { return; } + if (wcfg.disableMobDamage) { + event.setCancelled(true); + return; + } + if (wcfg.useRegions) { Vector pt = toVector(defender.getLocation()); RegionManager mgr = plugin.getGlobalRegionManager().get(player.getWorld()); @@ -273,6 +278,10 @@ private void onEntityDamageByProjectile(EntityDamageByProjectileEvent event) { } } if (attacker != null && attacker instanceof Skeleton) { + if (wcfg.disableMobDamage) { + event.setCancelled(true); + return; + } if (wcfg.useRegions) { Vector pt = toVector(defender.getLocation()); RegionManager mgr = plugin.getGlobalRegionManager().get(player.getWorld()); diff --git a/src/main/resources/config_world.yml b/src/main/resources/config_world.yml index d0c47f62..872d56e3 100644 --- a/src/main/resources/config_world.yml +++ b/src/main/resources/config_world.yml @@ -82,6 +82,7 @@ player-damage: disable-void-damage: off teleport-on-void-falling: off disable-explosion-damage: off + disable-mob-damage: off regions: enable: on