@Override public void execute(CommandSender sender, String[] args) { Player player = (Player)sender; if (GameManager.hasGame(args[0].toLowerCase())) { player.sendMessage(_("arenaAlreadyExists")); return; } if (args[1].equalsIgnoreCase("cylinder") || args[1].equalsIgnoreCase("cyl")) { //Create a new cylinder game if (args.length < 4) { player.sendMessage(getUsage()); return; } try { int radius = Integer.parseInt(args[2]); int height = Integer.parseInt(args[3]); Location center = player.getLocation(); int minY = center.getBlockY(); int maxY = center.getBlockY() + height; RegionCylinder region = new RegionCylinder(-1, center, radius, minY, maxY); Game game = new GameCylinder(args[0], region); GameManager.addGame(game); } catch (NumberFormatException e) { player.sendMessage(_("notANumber", args[2])); return; } player.sendMessage(_("gameCreated")); } else if (args[1].equalsIgnoreCase("cuboid") || args[1].equalsIgnoreCase("cub")) { //Create a new cuboid game Selection s = HeavySpleef.getInstance().getSelectionManager().getSelection(player); if (!s.hasSelection()) { player.sendMessage(_("needSelection")); return; } if (s.isTroughWorlds()) { player.sendMessage(_("selectionCantTroughWorlds")); return; } RegionCuboid region = new RegionCuboid(-1, s.getFirst(), s.getSecond()); Game game = new GameCuboid(args[0], region); GameManager.addGame(game); player.sendMessage(_("gameCreated")); } else { player.sendMessage(_("unknownSpleefType")); } }
@EventHandler public void onEntitySpawn(CreatureSpawnEvent e) { for (Game game : GameManager.getGames()) { if (game.contains(e.getLocation())) { e.setCancelled(true); return; } } }
@EventHandler public void onEntityExplode(EntityExplodeEvent e) { if (!HeavySpleef.getSystemConfig().getGeneralSection().isProtectArenas()) return; for (Game game : GameManager.getGames()) { if (game.contains(e.getLocation())) { e.blockList().clear(); return; } } }
@EventHandler public void onBlockPlace(BlockPlaceEvent e) { for (Game game : GameManager.getGames()) { if (!game.contains(e.getBlock().getLocation())) { continue; } if (e.getPlayer().hasPermission(Permissions.BUILD_BYPASS.getPerm())) { return; } if (!HeavySpleef.getSystemConfig().getGeneralSection().isProtectArenas()) { return; } e.setCancelled(true); e.getPlayer().sendMessage(I18N._("notAllowedToBuild")); } }
@EventHandler public void onBlockBreak(BlockBreakEvent e) { SpleefPlayer player = HeavySpleef.getInstance().getSpleefPlayer(e.getPlayer()); Block block = e.getBlock(); if (!player.isActive()) { for (Game game : GameManager.getGames()) { if (game.contains(block.getLocation())) { if (player.getBukkitPlayer().hasPermission(Permissions.BUILD_BYPASS.getPerm())) return; if (!HeavySpleef.getSystemConfig().getGeneralSection().isProtectArenas()) return; e.setCancelled(true); fixBlockGlitch(player.getBukkitPlayer(), block); player.sendMessage(I18N._("notAllowedToBuild")); return; } } return; } Game game = player.getGame(); if (!game.canSpleef(player, block.getLocation())) { e.setCancelled(true); fixBlockGlitch(player.getBukkitPlayer(), block); player.sendMessage(I18N._("notAllowedToBuild")); return; } if (game.getFlag(FlagType.BOWSPLEEF) || game.getFlag(FlagType.SPLEGG)) { e.setCancelled(true); return; } player.addBrokenBlock(block); }