diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardEntityListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardEntityListener.java index e17cc0bf..9e99d29e 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardEntityListener.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardEntityListener.java @@ -197,29 +197,6 @@ private void onEntityDamageByEntity(EntityDamageByEntityEvent event) { } } - if (attacker instanceof Fireball) { - if (attacker instanceof WitherSkull) { - if (wcfg.blockWitherSkullExplosions) { - event.setCancelled(true); - return; - } - } else { - if (wcfg.blockFireballExplosions) { - event.setCancelled(true); - return; - } - } - if (wcfg.useRegions) { - Fireball fireball = (Fireball) attacker; - RegionQuery query = plugin.getRegionContainer().createQuery(); - if (!query.testState(defender.getLocation(), (Player) defender, DefaultFlag.GHAST_FIREBALL) && wcfg.explosionFlagCancellation) { - event.setCancelled(true); - return; - } - - } - } - if (attacker instanceof LivingEntity && !(attacker instanceof Player)) { if (attacker instanceof Creeper && wcfg.blockCreeperExplosions) { event.setCancelled(true); @@ -281,6 +258,28 @@ private void onEntityDamageByProjectile(EntityDamageByEntityEvent event) { return; } } + if (event.getDamager() instanceof Fireball) { + Fireball fireball = (Fireball) event.getDamager(); + if (fireball instanceof WitherSkull) { + if (wcfg.blockWitherSkullExplosions) { + event.setCancelled(true); + return; + } + } else { + if (wcfg.blockFireballExplosions) { + event.setCancelled(true); + return; + } + } + if (wcfg.useRegions) { + RegionQuery query = plugin.getRegionContainer().createQuery(); + if (!query.testState(defender.getLocation(), (Player) defender, DefaultFlag.GHAST_FIREBALL) && wcfg.explosionFlagCancellation) { + event.setCancelled(true); + return; + } + + } + } } } else if (defender instanceof ItemFrame) { if (checkItemFrameProtection(attacker, (ItemFrame) defender)) {