Handle BlockExplodeEvent as other explosion.

Also misc cleanup.
Closes #407, WORLDGUARD-3843.
This commit is contained in:
wizjany 2019-05-12 00:17:34 -04:00 committed by Wyatt Childers
parent f76259df82
commit d296e6e429
3 changed files with 25 additions and 3 deletions

View File

@ -880,6 +880,14 @@ public class EventAbstractionListener extends AbstractListener {
}
}
@EventHandler(ignoreCancelled = true)
public void onBlockExplode(BlockExplodeEvent event) {
final BreakBlockEvent eventToFire = new BreakBlockEvent(event, create(event.getBlock()),
event.getBlock().getLocation().getWorld(), event.blockList(), Material.AIR);
eventToFire.getRelevantFlags().add(DefaultFlag.OTHER_EXPLOSION);
Events.fireBulkEventToCancel(event, eventToFire);
}
/**
* Handle the right click of a block while an item is held.
*

View File

@ -37,6 +37,7 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockBurnEvent;
import org.bukkit.event.block.BlockExplodeEvent;
import org.bukkit.event.block.BlockFadeEvent;
import org.bukkit.event.block.BlockFormEvent;
import org.bukkit.event.block.BlockFromToEvent;
@ -664,4 +665,19 @@ public class WorldGuardBlockListener implements Listener {
}
@EventHandler(ignoreCancelled = true)
public void onBlockExplode(BlockExplodeEvent event) {
ConfigurationManager cfg = plugin.getGlobalStateManager();
if (cfg.activityHaltToggle) {
event.setCancelled(true);
return;
}
WorldConfiguration wcfg = getWorldConfig(event.getBlock().getWorld());
if (wcfg.blockOtherExplosions) {
event.setCancelled(true);
}
}
}

View File

@ -410,9 +410,7 @@ public class WorldGuardEntityListener implements Listener {
Entity ent = event.getEntity();
if (cfg.activityHaltToggle) {
if (ent != null) {
ent.remove();
}
ent.remove();
event.setCancelled(true);
return;
}