@Override public List<String> getTreeString(int depth) { List<String> out = new ArrayList<String>(); out.add(getTreeDepth(depth) + "Universe (" + getName() + ")"); if (plugin != null) { out.add(getTreeDepth(depth + 1) + "Server (" + plugin.getServer().getName() + ")"); out.add(getTreeDepth(depth + 2) + "Version: " + plugin.getServer().getVersion()); out.add( getTreeDepth(depth + 2) + "Players: " + plugin.getServer().getOnlinePlayers().length + "/" + plugin.getServer().getMaxPlayers()); out.add( getTreeDepth(depth + 2) + "Worlds (" + plugin.getServer().getWorlds().size() + "): " + Arrays.toString(plugin.getServer().getWorlds().toArray(new World[0]))); } out.add(getTreeDepth(depth + 1) + "Worlds (" + getDataSource().getWorlds().size() + "):"); for (TownyWorld world : getDataSource().getWorlds()) out.addAll(world.getTreeString(depth + 2)); out.add(getTreeDepth(depth + 1) + "Nations (" + getDataSource().getNations().size() + "):"); for (Nation nation : getDataSource().getNations()) out.addAll(nation.getTreeString(depth + 2)); Collection<Town> townsWithoutNation = getDataSource().getTownsWithoutNation(); out.add(getTreeDepth(depth + 1) + "Towns (" + townsWithoutNation.size() + "):"); for (Town town : townsWithoutNation) out.addAll(town.getTreeString(depth + 2)); Collection<Resident> residentsWithoutTown = getDataSource().getResidentsWithoutTown(); out.add(getTreeDepth(depth + 1) + "Residents (" + residentsWithoutTown.size() + "):"); for (Resident resident : residentsWithoutTown) out.addAll(resident.getTreeString(depth + 2)); return out; }
public Location getTownSpawnLocation(Player player) throws TownyException { try { Resident resident = getDataSource().getResident(player.getName()); Town town = resident.getTown(); return town.getSpawn(); } catch (TownyException x) { throw new TownyException("Unable to get spawn location"); } }
public boolean isEnemy(Town a, Town b) { try { if (a == b) return false; if (a.getNation() == b.getNation()) return false; if (a.getNation().hasEnemy(b.getNation())) return true; } catch (NotRegisteredException e) { return false; } return false; }
public void onLogin(Player player) throws AlreadyRegisteredException, NotRegisteredException { if (!player.isOnline()) return; // Test and kick any players with invalid names. if ((player.getName().trim() == null) || (player.getName().contains(" "))) { player.kickPlayer("Invalid name!"); return; } Resident resident; if (!getDataSource().hasResident(player.getName())) { getDataSource().newResident(player.getName()); resident = getDataSource().getResident(player.getName()); TownyMessaging.sendMessage(player, TownySettings.getRegistrationMsg(player.getName())); resident.setRegistered(System.currentTimeMillis()); if (!TownySettings.getDefaultTownName().equals("")) try { Town town = getDataSource().getTown(TownySettings.getDefaultTownName()); town.addResident(resident); getDataSource().saveTown(town); } catch (NotRegisteredException e) { } catch (AlreadyRegisteredException e) { } getDataSource().saveResident(resident); getDataSource().saveResidentList(); } else { resident = getDataSource().getResident(player.getName()); resident.setLastOnline(System.currentTimeMillis()); getDataSource().saveResident(resident); } try { TownyMessaging.sendTownBoard(player, resident.getTown()); } catch (NotRegisteredException e) { } if (isWarTime()) getWarEvent().sendScores(player, 3); // Schedule to setup default modes when the player has finished loading if (getPlugin() .getServer() .getScheduler() .scheduleSyncDelayedTask(getPlugin(), new SetDefaultModes(this, player, false), 1) == -1) TownyMessaging.sendErrorMsg("Could not set default modes for " + player.getName() + "."); setChangedNotify(PLAYER_LOGIN); }
public static List<Player> getOnlinePlayers(Town town) { ArrayList<Player> players = new ArrayList<Player>(); for (Player player : getOnlinePlayers()) if (town.hasResident(player.getName())) players.add(player); return players; }