@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onEntityExplode(final EntityExplodeEvent event) { if (arena == null) { return; } boolean contains = false; for (final ArenaRegion region : arena.getRegionsByType(RegionType.BATTLE)) { if (region.getShape().contains(new PABlockLocation(event.getLocation()))) { contains = true; break; } } if (!contains) { return; } final Set<PABlock> blocks = SpawnManager.getPABlocksContaining(arena, "block"); // final Set<PABlockLocation> for (final Block b : event.blockList()) { final PABlockLocation loc = new PABlockLocation(b.getLocation()); for (final PABlock pb : blocks) { if (pb.getLocation().getDistanceSquared(loc) < 1) { final String blockTeam = pb.getName().split("block")[0]; try { arena.broadcast( Language.parse( arena, MSG.GOAL_BLOCKDESTROY_SCORE, Language.parse(arena, MSG.DEATHCAUSE_BLOCK_EXPLOSION) + ChatColor.YELLOW, arena.getTeam(blockTeam).getColoredName() + ChatColor.YELLOW, String.valueOf(getLifeMap().get(blockTeam) - 1))); } catch (final Exception e) { Bukkit.getLogger().severe("[PVP Arena] team unknown/no lives: " + blockTeam); e.printStackTrace(); } takeBlock(arena.getTeam(blockTeam).getColor().name(), pb.getLocation()); reduceLivesCheckEndAndCommit(arena, blockTeam); } } } }