diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldConfiguration.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldConfiguration.java index d5e97ced..9a0b9a6d 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldConfiguration.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldConfiguration.java @@ -93,6 +93,7 @@ public class WorldConfiguration { public boolean teleportOnSuffocation; public boolean disableVoidDamage; public boolean teleportOnVoid; + public boolean disableExplosionDamage; public boolean useRegions; public boolean highFreqFlags; public int regionWand = 287; @@ -194,6 +195,7 @@ private void loadConfiguration() { teleportOnSuffocation = config.getBoolean("player-damage.teleport-on-suffocation", false); 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); 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 834bea26..9f059dfd 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java @@ -128,6 +128,10 @@ public void onEntityDamageByBlock(EntityDamageByBlockEvent event) { return; } + if (wcfg.disableExplosionDamage && event.getCause() == DamageCause.BLOCK_EXPLOSION) { + event.setCancelled(true); + return; + } } } @@ -151,6 +155,11 @@ public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { return; } + if (wcfg.disableExplosionDamage && event.getCause() == DamageCause.ENTITY_EXPLOSION) { + event.setCancelled(true); + return; + } + if (attacker != null && attacker instanceof Player) { if (wcfg.useRegions) { Vector pt = toVector(defender.getLocation()); diff --git a/src/main/resources/config_world.yml b/src/main/resources/config_world.yml index 96270441..d0c47f62 100644 --- a/src/main/resources/config_world.yml +++ b/src/main/resources/config_world.yml @@ -81,6 +81,7 @@ player-damage: teleport-on-suffocation: off disable-void-damage: off teleport-on-void-falling: off + disable-explosion-damage: off regions: enable: on