diff options
Diffstat (limited to 'src/main/java/org/bukkit/command/defaults/ScoreboardCommand.java')
-rw-r--r-- | src/main/java/org/bukkit/command/defaults/ScoreboardCommand.java | 618 |
1 files changed, 0 insertions, 618 deletions
diff --git a/src/main/java/org/bukkit/command/defaults/ScoreboardCommand.java b/src/main/java/org/bukkit/command/defaults/ScoreboardCommand.java deleted file mode 100644 index ff7f562b..00000000 --- a/src/main/java/org/bukkit/command/defaults/ScoreboardCommand.java +++ /dev/null @@ -1,618 +0,0 @@ -package org.bukkit.command.defaults; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.Validate; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.OfflinePlayer; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.scoreboard.DisplaySlot; -import org.bukkit.scoreboard.Objective; -import org.bukkit.scoreboard.Score; -import org.bukkit.scoreboard.Scoreboard; -import org.bukkit.scoreboard.Team; -import org.bukkit.util.StringUtil; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; - -@Deprecated -public class ScoreboardCommand extends VanillaCommand { - - private static final List<String> MAIN_CHOICES = ImmutableList.of("objectives", "players", "teams"); - private static final List<String> OBJECTIVES_CHOICES = ImmutableList.of("list", "add", "remove", "setdisplay"); - private static final List<String> OBJECTIVES_CRITERIA = ImmutableList.of("health", "playerKillCount", "totalKillCount", "deathCount", "dummy"); - private static final List<String> PLAYERS_CHOICES = ImmutableList.of("set", "add", "remove", "reset", "list"); - private static final List<String> TEAMS_CHOICES = ImmutableList.of("add", "remove", "join", "leave", "empty", "list", "option"); - private static final List<String> TEAMS_OPTION_CHOICES = ImmutableList.of("color", "friendlyfire", "seeFriendlyInvisibles"); - private static final Map<String, DisplaySlot> OBJECTIVES_DISPLAYSLOT = ImmutableMap.of("belowName", DisplaySlot.BELOW_NAME, "list", DisplaySlot.PLAYER_LIST, "sidebar", DisplaySlot.SIDEBAR); - private static final Map<String, ChatColor> TEAMS_OPTION_COLOR = ImmutableMap.<String, ChatColor>builder() - .put("aqua", ChatColor.AQUA) - .put("black", ChatColor.BLACK) - .put("blue", ChatColor.BLUE) - .put("bold", ChatColor.BOLD) - .put("dark_aqua", ChatColor.DARK_AQUA) - .put("dark_blue", ChatColor.DARK_BLUE) - .put("dark_gray", ChatColor.DARK_GRAY) - .put("dark_green", ChatColor.DARK_GREEN) - .put("dark_purple", ChatColor.DARK_PURPLE) - .put("dark_red", ChatColor.DARK_RED) - .put("gold", ChatColor.GOLD) - .put("gray", ChatColor.GRAY) - .put("green", ChatColor.GREEN) - .put("italic", ChatColor.ITALIC) - .put("light_purple", ChatColor.LIGHT_PURPLE) - .put("obfuscated", ChatColor.MAGIC) // This is the important line - .put("red", ChatColor.RED) - .put("reset", ChatColor.RESET) - .put("strikethrough", ChatColor.STRIKETHROUGH) - .put("underline", ChatColor.UNDERLINE) - .put("white", ChatColor.WHITE) - .put("yellow", ChatColor.YELLOW) - .build(); - private static final List<String> BOOLEAN = ImmutableList.of("true", "false"); - - public ScoreboardCommand() { - super("scoreboard"); - this.description = "Scoreboard control"; - this.usageMessage = "/scoreboard"; - this.setPermission("bukkit.command.scoreboard"); - } - - @Override - public boolean execute(CommandSender sender, String currentAlias, String[] args) { - if (!testPermission(sender)) - return true; - if (args.length < 1 || args[0].length() == 0) { - sender.sendMessage(ChatColor.RED + "Usage: /scoreboard <objectives|players|teams>"); - return false; - } - - final Scoreboard mainScoreboard = Bukkit.getScoreboardManager().getMainScoreboard(); - - if (args[0].equalsIgnoreCase("objectives")) { - if (args.length == 1) { - sender.sendMessage(ChatColor.RED + "Usage: /scoreboard objectives <list|add|remove|setdisplay>"); - return false; - } - if (args[1].equalsIgnoreCase("list")) { - Set<Objective> objectives = mainScoreboard.getObjectives(); - if (objectives.isEmpty()) { - sender.sendMessage(ChatColor.RED + "There are no objectives on the scoreboard"); - return false; - } - sender.sendMessage(ChatColor.DARK_GREEN + "Showing " + objectives.size() + " objective(s) on scoreboard"); - for (Objective objective : objectives) { - sender.sendMessage("- " + objective.getName() + ": displays as '" + objective.getDisplayName() + "' and is type '" + objective.getCriteria() + "'"); - } - } else if (args[1].equalsIgnoreCase("add")) { - if (args.length < 4) { - sender.sendMessage(ChatColor.RED + "/scoreboard objectives add <name> <criteriaType> [display name ...]"); - return false; - } - String name = args[2]; - String criteria = args[3]; - - if (criteria == null) { - sender.sendMessage(ChatColor.RED + "Invalid objective criteria type. Valid types are: " + stringCollectionToString(OBJECTIVES_CRITERIA)); - } else if (name.length() > 16) { - sender.sendMessage(ChatColor.RED + "The name '" + name + "' is too long for an objective, it can be at most 16 characters long"); - } else if (mainScoreboard.getObjective(name) != null) { - sender.sendMessage(ChatColor.RED + "An objective with the name '" + name + "' already exists"); - } else { - String displayName = null; - if (args.length > 4) { - displayName = StringUtils.join(ArrayUtils.subarray(args, 4, args.length), ' '); - if (displayName.length() > 32) { - sender.sendMessage(ChatColor.RED + "The name '" + displayName + "' is too long for an objective, it can be at most 32 characters long"); - return false; - } - } - Objective objective = mainScoreboard.registerNewObjective(name, criteria); - if (displayName != null && displayName.length() > 0) { - objective.setDisplayName(displayName); - } - sender.sendMessage("Added new objective '" + name + "' successfully"); - } - } else if (args[1].equalsIgnoreCase("remove")) { - if (args.length != 3) { - sender.sendMessage(ChatColor.RED + "/scoreboard objectives remove <name>"); - return false; - } - String name = args[2]; - Objective objective = mainScoreboard.getObjective(name); - if (objective == null) { - sender.sendMessage(ChatColor.RED + "No objective was found by the name '" + name + "'"); - } else { - objective.unregister(); - sender.sendMessage("Removed objective '" + name + "' successfully"); - } - } else if (args[1].equalsIgnoreCase("setdisplay")) { - if (args.length != 3 && args.length != 4) { - sender.sendMessage(ChatColor.RED + "/scoreboard objectives setdisplay <slot> [objective]"); - return false; - } - String slotName = args[2]; - DisplaySlot slot = OBJECTIVES_DISPLAYSLOT.get(slotName); - if (slot == null) { - sender.sendMessage(ChatColor.RED + "No such display slot '" + slotName + "'"); - } else { - if (args.length == 4) { - String objectiveName = args[3]; - Objective objective = mainScoreboard.getObjective(objectiveName); - if (objective == null) { - sender.sendMessage(ChatColor.RED + "No objective was found by the name '" + objectiveName + "'"); - return false; - } - - objective.setDisplaySlot(slot); - sender.sendMessage("Set the display objective in slot '" + slotName + "' to '" + objective.getName() + "'"); - } else { - Objective objective = mainScoreboard.getObjective(slot); - if (objective != null) { - objective.setDisplaySlot(null); - } - sender.sendMessage("Cleared objective display slot '" + slotName + "'"); - } - } - } - } else if (args[0].equalsIgnoreCase("players")) { - if (args.length == 1) { - sender.sendMessage(ChatColor.RED + "/scoreboard players <set|add|remove|reset|list>"); - return false; - } - if (args[1].equalsIgnoreCase("set") || args[1].equalsIgnoreCase("add") || args[1].equalsIgnoreCase("remove")) { - if (args.length != 5) { - if (args[1].equalsIgnoreCase("set")) { - sender.sendMessage(ChatColor.RED + "/scoreboard players set <player> <objective> <score>"); - } else if (args[1].equalsIgnoreCase("add")) { - sender.sendMessage(ChatColor.RED + "/scoreboard players add <player> <objective> <count>"); - } else { - sender.sendMessage(ChatColor.RED + "/scoreboard players remove <player> <objective> <count>"); - } - return false; - } - String objectiveName = args[3]; - Objective objective = mainScoreboard.getObjective(objectiveName); - if (objective == null) { - sender.sendMessage(ChatColor.RED + "No objective was found by the name '" + objectiveName + "'"); - return false; - } else if (!objective.isModifiable()) { - sender.sendMessage(ChatColor.RED + "The objective '" + objectiveName + "' is read-only and cannot be set"); - return false; - } - - String valueString = args[4]; - int value; - try { - value = Integer.parseInt(valueString); - } catch (NumberFormatException e) { - sender.sendMessage(ChatColor.RED + "'" + valueString + "' is not a valid number"); - return false; - } - if (value < 1 && !args[1].equalsIgnoreCase("set")) { - sender.sendMessage(ChatColor.RED + "The number you have entered (" + value + ") is too small, it must be at least 1"); - return false; - } - - String playerName = args[2]; - if (playerName.length() > 16) { - sender.sendMessage(ChatColor.RED + "'" + playerName + "' is too long for a player name"); - return false; - } - Score score = objective.getScore(playerName); - int newScore; - if (args[1].equalsIgnoreCase("set")) { - newScore = value; - } else if (args[1].equalsIgnoreCase("add")) { - newScore = score.getScore() + value; - } else { - newScore = score.getScore() - value; - } - score.setScore(newScore); - sender.sendMessage("Set score of " + objectiveName + " for player " + playerName + " to " + newScore); - } else if (args[1].equalsIgnoreCase("reset")) { - if (args.length != 3) { - sender.sendMessage(ChatColor.RED + "/scoreboard players reset <player>"); - return false; - } - String playerName = args[2]; - if (playerName.length() > 16) { - sender.sendMessage(ChatColor.RED + "'" + playerName + "' is too long for a player name"); - return false; - } - mainScoreboard.resetScores(playerName); - sender.sendMessage("Reset all scores of player " + playerName); - } else if (args[1].equalsIgnoreCase("list")) { - if (args.length > 3) { - sender.sendMessage(ChatColor.RED + "/scoreboard players list <player>"); - return false; - } - if (args.length == 2) { - Set<String> entries = mainScoreboard.getEntries(); - if (entries.isEmpty()) { - sender.sendMessage(ChatColor.RED + "There are no tracked players on the scoreboard"); - } else { - sender.sendMessage(ChatColor.DARK_GREEN + "Showing " + entries.size() + " tracked players on the scoreboard"); - sender.sendMessage(stringCollectionToString(entries)); - } - } else { - String playerName = args[2]; - if (playerName.length() > 16) { - sender.sendMessage(ChatColor.RED + "'" + playerName + "' is too long for a player name"); - return false; - } - Set<Score> scores = mainScoreboard.getScores(playerName); - if (scores.isEmpty()) { - sender.sendMessage(ChatColor.RED + "Player " + playerName + " has no scores recorded"); - } else { - sender.sendMessage(ChatColor.DARK_GREEN + "Showing " + scores.size() + " tracked objective(s) for " + playerName); - for (Score score : scores) { - sender.sendMessage("- " + score.getObjective().getDisplayName() + ": " + score.getScore() + " (" + score.getObjective().getName() + ")"); - } - } - } - } - } else if (args[0].equalsIgnoreCase("teams")) { - if (args.length == 1) { - sender.sendMessage(ChatColor.RED + "/scoreboard teams <list|add|remove|empty|join|leave|option>"); - return false; - } - if (args[1].equalsIgnoreCase("list")) { - if (args.length == 2) { - Set<Team> teams = mainScoreboard.getTeams(); - if (teams.isEmpty()) { - sender.sendMessage(ChatColor.RED + "There are no teams registered on the scoreboard"); - } else { - sender.sendMessage(ChatColor.DARK_GREEN + "Showing " + teams.size() + " teams on the scoreboard"); - for (Team team : teams) { - sender.sendMessage("- " + team.getName() + ": '" + team.getDisplayName() + "' has " + team.getSize() + " players"); - } - } - } else if (args.length == 3) { - String teamName = args[2]; - Team team = mainScoreboard.getTeam(teamName); - if (team == null) { - sender.sendMessage(ChatColor.RED + "No team was found by the name '" + teamName + "'"); - } else { - Set<OfflinePlayer> players = team.getPlayers(); - if (players.isEmpty()) { - sender.sendMessage(ChatColor.RED + "Team " + team.getName() + " has no players"); - } else { - sender.sendMessage(ChatColor.DARK_GREEN + "Showing " + players.size() + " player(s) in team " + team.getName()); - sender.sendMessage(offlinePlayerSetToString(players)); - } - } - } else { - sender.sendMessage(ChatColor.RED + "/scoreboard teams list [name]"); - return false; - } - } else if (args[1].equalsIgnoreCase("add")) { - if (args.length < 3) { - sender.sendMessage(ChatColor.RED + "/scoreboard teams add <name> [display name ...]"); - return false; - } - String name = args[2]; - if (name.length() > 16) { - sender.sendMessage(ChatColor.RED + "The name '" + name + "' is too long for a team, it can be at most 16 characters long"); - } else if (mainScoreboard.getTeam(name) != null) { - sender.sendMessage(ChatColor.RED + "A team with the name '" + name + "' already exists"); - } else { - String displayName = null; - if (args.length > 3) { - displayName = StringUtils.join(ArrayUtils.subarray(args, 3, args.length), ' '); - if (displayName.length() > 32) { - sender.sendMessage(ChatColor.RED + "The display name '" + displayName + "' is too long for a team, it can be at most 32 characters long"); - return false; - } - } - Team team = mainScoreboard.registerNewTeam(name); - if (displayName != null && displayName.length() > 0) { - team.setDisplayName(displayName); - } - sender.sendMessage("Added new team '" + team.getName() + "' successfully"); - } - } else if (args[1].equalsIgnoreCase("remove")) { - if (args.length != 3) { - sender.sendMessage(ChatColor.RED + "/scoreboard teams remove <name>"); - return false; - } - String name = args[2]; - Team team = mainScoreboard.getTeam(name); - if (team == null) { - sender.sendMessage(ChatColor.RED + "No team was found by the name '" + name + "'"); - } else { - team.unregister(); - sender.sendMessage("Removed team " + name); - } - } else if (args[1].equalsIgnoreCase("empty")) { - if (args.length != 3) { - sender.sendMessage(ChatColor.RED + "/scoreboard teams clear <name>"); - return false; - } - String name = args[2]; - Team team = mainScoreboard.getTeam(name); - if (team == null) { - sender.sendMessage(ChatColor.RED + "No team was found by the name '" + name + "'"); - } else { - Set<OfflinePlayer> players = team.getPlayers(); - if (players.isEmpty()) { - sender.sendMessage(ChatColor.RED + "Team " + team.getName() + " is already empty, cannot remove nonexistant players"); - } else { - for (OfflinePlayer player : players) { - team.removePlayer(player); - } - sender.sendMessage("Removed all " + players.size() + " player(s) from team " + team.getName()); - } - } - } else if (args[1].equalsIgnoreCase("join")) { - if ((sender instanceof Player) ? args.length < 3 : args.length < 4) { - sender.sendMessage(ChatColor.RED + "/scoreboard teams join <team> [player...]"); - return false; - } - String teamName = args[2]; - Team team = mainScoreboard.getTeam(teamName); - if (team == null) { - sender.sendMessage(ChatColor.RED + "No team was found by the name '" + teamName + "'"); - } else { - Set<String> addedPlayers = new HashSet<String>(); - if ((sender instanceof Player) && args.length == 3) { - team.addPlayer((Player) sender); - addedPlayers.add(sender.getName()); - } else { - for (int i = 3; i < args.length; i++) { - String playerName = args[i]; - OfflinePlayer offlinePlayer; - Player player = Bukkit.getPlayerExact(playerName); - if (player != null) { - offlinePlayer = player; - } else { - offlinePlayer = Bukkit.getOfflinePlayer(playerName); - } - team.addPlayer(offlinePlayer); - addedPlayers.add(offlinePlayer.getName()); - } - } - sender.sendMessage("Added " + addedPlayers.size() + " player(s) to team " + team.getName() + ": " + stringCollectionToString(addedPlayers)); - } - } else if (args[1].equalsIgnoreCase("leave")) { - if (!(sender instanceof Player) && args.length < 3) { - sender.sendMessage(ChatColor.RED + "/scoreboard teams leave [player...]"); - return false; - } - Set<String> left = new HashSet<String>(); - Set<String> noTeam = new HashSet<String>(); - if ((sender instanceof Player) && args.length == 2) { - Team team = mainScoreboard.getPlayerTeam((Player) sender); - if (team != null) { - team.removePlayer((Player) sender); - left.add(sender.getName()); - } else { - noTeam.add(sender.getName()); - } - } else { - for (int i = 2; i < args.length; i++) { - String playerName = args[i]; - OfflinePlayer offlinePlayer; - Player player = Bukkit.getPlayerExact(playerName); - if (player != null) { - offlinePlayer = player; - } else { - offlinePlayer = Bukkit.getOfflinePlayer(playerName); - } - Team team = mainScoreboard.getPlayerTeam(offlinePlayer); - if (team != null) { - team.removePlayer(offlinePlayer); - left.add(offlinePlayer.getName()); - } else { - noTeam.add(offlinePlayer.getName()); - } - } - } - if (!left.isEmpty()) { - sender.sendMessage("Removed " + left.size() + " player(s) from their teams: " + stringCollectionToString(left)); - } - if (!noTeam.isEmpty()) { - sender.sendMessage("Could not remove " + noTeam.size() + " player(s) from their teams: " + stringCollectionToString(noTeam)); - } - } else if (args[1].equalsIgnoreCase("option")) { - if (args.length != 4 && args.length != 5) { - sender.sendMessage(ChatColor.RED + "/scoreboard teams option <team> <friendlyfire|color|seefriendlyinvisibles> <value>"); - return false; - } - String teamName = args[2]; - Team team = mainScoreboard.getTeam(teamName); - if (team == null) { - sender.sendMessage(ChatColor.RED + "No team was found by the name '" + teamName + "'"); - return false; - } - String option = args[3].toLowerCase(java.util.Locale.ENGLISH); - if (!option.equals("friendlyfire") && !option.equals("color") && !option.equals("seefriendlyinvisibles")) { - sender.sendMessage(ChatColor.RED + "/scoreboard teams option <team> <friendlyfire|color|seefriendlyinvisibles> <value>"); - return false; - } - if (args.length == 4) { - if (option.equals("color")) { - sender.sendMessage(ChatColor.RED + "Valid values for option color are: " + stringCollectionToString(TEAMS_OPTION_COLOR.keySet())); - } else { - sender.sendMessage(ChatColor.RED + "Valid values for option " + option + " are: true and false"); - } - } else { - String value = args[4].toLowerCase(java.util.Locale.ENGLISH); - if (option.equals("color")) { - ChatColor color = TEAMS_OPTION_COLOR.get(value); - if (color == null) { - sender.sendMessage(ChatColor.RED + "Valid values for option color are: " + stringCollectionToString(TEAMS_OPTION_COLOR.keySet())); - return false; - } - team.setPrefix(color.toString()); - team.setSuffix(ChatColor.RESET.toString()); - } else { - if (!value.equals("true") && !value.equals("false")) { - sender.sendMessage(ChatColor.RED + "Valid values for option " + option + " are: true and false"); - return false; - } - if (option.equals("friendlyfire")) { - team.setAllowFriendlyFire(value.equals("true")); - } else { - team.setCanSeeFriendlyInvisibles(value.equals("true")); - } - } - sender.sendMessage("Set option " + option + " for team " + team.getName() + " to " + value); - } - } - } else { - sender.sendMessage(ChatColor.RED + "Usage: /scoreboard <objectives|players|teams>"); - return false; - } - return true; - } - - @Override - public List<String> tabComplete(CommandSender sender, String alias, String[] args) throws IllegalArgumentException { - Validate.notNull(sender, "Sender cannot be null"); - Validate.notNull(args, "Arguments cannot be null"); - Validate.notNull(alias, "Alias cannot be null"); - - if (args.length == 1) { - return StringUtil.copyPartialMatches(args[0], MAIN_CHOICES, new ArrayList<String>()); - } - if (args.length > 1) { - if (args[0].equalsIgnoreCase("objectives")) { - if (args.length == 2) { - return StringUtil.copyPartialMatches(args[1], OBJECTIVES_CHOICES, new ArrayList<String>()); - } - if (args[1].equalsIgnoreCase("add")) { - if (args.length == 4) { - return StringUtil.copyPartialMatches(args[3], OBJECTIVES_CRITERIA, new ArrayList<String>()); - } - } else if (args[1].equalsIgnoreCase("remove")) { - if (args.length == 3) { - return StringUtil.copyPartialMatches(args[2], this.getCurrentObjectives(), new ArrayList<String>()); - } - } else if (args[1].equalsIgnoreCase("setdisplay")) { - if (args.length == 3) { - return StringUtil.copyPartialMatches(args[2], OBJECTIVES_DISPLAYSLOT.keySet(), new ArrayList<String>()); - } - if (args.length == 4) { - return StringUtil.copyPartialMatches(args[3], this.getCurrentObjectives(), new ArrayList<String>()); - } - } - } else if (args[0].equalsIgnoreCase("players")) { - if (args.length == 2) { - return StringUtil.copyPartialMatches(args[1], PLAYERS_CHOICES, new ArrayList<String>()); - } - if (args[1].equalsIgnoreCase("set") || args[1].equalsIgnoreCase("add") || args[1].equalsIgnoreCase("remove")) { - if (args.length == 3) { - return super.tabComplete(sender, alias, args); - } - if (args.length == 4) { - return StringUtil.copyPartialMatches(args[3], this.getCurrentObjectives(), new ArrayList<String>()); - } - } else { - if (args.length == 3) { - return StringUtil.copyPartialMatches(args[2], this.getCurrentEntries(), new ArrayList<String>()); - } - } - } else if (args[0].equalsIgnoreCase("teams")) { - if (args.length == 2) { - return StringUtil.copyPartialMatches(args[1], TEAMS_CHOICES, new ArrayList<String>()); - } - if (args[1].equalsIgnoreCase("join")) { - if (args.length == 3) { - return StringUtil.copyPartialMatches(args[2], this.getCurrentTeams(), new ArrayList<String>()); - } - if (args.length >= 4) { - return super.tabComplete(sender, alias, args); - } - } else if (args[1].equalsIgnoreCase("leave")) { - return super.tabComplete(sender, alias, args); - } else if (args[1].equalsIgnoreCase("option")) { - if (args.length == 3) { - return StringUtil.copyPartialMatches(args[2], this.getCurrentTeams(), new ArrayList<String>()); - } - if (args.length == 4) { - return StringUtil.copyPartialMatches(args[3], TEAMS_OPTION_CHOICES, new ArrayList<String>()); - } - if (args.length == 5) { - if (args[3].equalsIgnoreCase("color")) { - return StringUtil.copyPartialMatches(args[4], TEAMS_OPTION_COLOR.keySet(), new ArrayList<String>()); - } else { - return StringUtil.copyPartialMatches(args[4], BOOLEAN, new ArrayList<String>()); - } - } - } else { - if (args.length == 3) { - return StringUtil.copyPartialMatches(args[2], this.getCurrentTeams(), new ArrayList<String>()); - } - } - } - } - - return ImmutableList.of(); - } - - private static String offlinePlayerSetToString(Set<OfflinePlayer> set) { - StringBuilder string = new StringBuilder(); - String lastValue = null; - for (OfflinePlayer value : set) { - string.append(lastValue = value.getName()).append(", "); - } - string.delete(string.length() - 2, Integer.MAX_VALUE); - if (string.length() != lastValue.length()) { - string.insert(string.length() - lastValue.length(), "and "); - } - return string.toString(); - - } - - private static String stringCollectionToString(Collection<String> set) { - StringBuilder string = new StringBuilder(); - String lastValue = null; - for (String value : set) { - string.append(lastValue = value).append(", "); - } - string.delete(string.length() - 2, Integer.MAX_VALUE); - if (string.length() != lastValue.length()) { - string.insert(string.length() - lastValue.length(), "and "); - } - return string.toString(); - } - - private List<String> getCurrentObjectives() { - List<String> list = new ArrayList<String>(); - for (Objective objective : Bukkit.getScoreboardManager().getMainScoreboard().getObjectives()) { - list.add(objective.getName()); - } - Collections.sort(list, String.CASE_INSENSITIVE_ORDER); - return list; - } - - private List<String> getCurrentEntries() { - List<String> list = new ArrayList<String>(); - for (String entry : Bukkit.getScoreboardManager().getMainScoreboard().getEntries()) { - list.add(entry); - } - Collections.sort(list, String.CASE_INSENSITIVE_ORDER); - return list; - } - - private List<String> getCurrentTeams() { - List<String> list = new ArrayList<String>(); - for (Team team : Bukkit.getScoreboardManager().getMainScoreboard().getTeams()) { - list.add(team.getName()); - } - Collections.sort(list, String.CASE_INSENSITIVE_ORDER); - return list; - } -} |