From f94c4ec8316b53f5a84fb23735bd515f9cbd7bed Mon Sep 17 00:00:00 2001 From: Wizjany Date: Fri, 11 Jan 2013 19:07:58 -0500 Subject: [PATCH] Mob damage setting/flag blocks poison DoT --- .../bukkit/WorldGuardEntityListener.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java index 910524d6..1046a496 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java @@ -428,6 +428,25 @@ public void onEntityDamage(EntityDamageEvent event) { return; } + if (type == DamageCause.WITHER) { + // wither boss DoT tick + if (wcfg.disableMobDamage) { + event.setCancelled(true); + return; + } + + if (wcfg.useRegions) { + Vector pt = toVector(defender.getLocation()); + RegionManager mgr = plugin.getGlobalRegionManager().get(player.getWorld()); + ApplicableRegionSet set = mgr.getApplicableRegions(pt); + + if (!set.allows(DefaultFlag.MOB_DAMAGE, plugin.wrapPlayer(player))) { + event.setCancelled(true); + return; + } + } + } + if (type == DamageCause.DROWNING && cfg.hasAmphibiousMode(player)) { player.setRemainingAir(player.getMaximumAir()); event.setCancelled(true);