Example #1
0
  @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);
        }
      }
    }
  }