package xyz.etztech.qol.commands; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import xyz.etztech.qol.QoL; import java.util.*; public class ListCommand implements CommandExecutor { QoL plugin; public ListCommand(QoL plugin) { this.plugin = plugin; plugin.getCommand("list").setExecutor(this); } @Override public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) { LinkedHashMap> list = new LinkedHashMap<>(); List groups = plugin.getConfig().getStringList("list"); for (String group : groups) { list.put(group, new ArrayList<>()); } Collection players = Bukkit.getServer().getOnlinePlayers(); for (Player player : players) { for (String group : groups) { if (player.hasPermission("qol.list." + group)) { List names = list.get(group); names.add(player.getName()); list.put(group, names); break; } } } StringBuilder message = new StringBuilder(ChatColor.GOLD + "===== Player List (" + ChatColor.YELLOW + players.size() + ChatColor.GOLD + ") ====="); for (String key : list.keySet()) { List parts = Arrays.asList(key.split("_")); for (int i = 0; i < parts.size(); i++) { parts.set(i, StringUtils.capitalize(parts.get(i))); } List names = list.get(key); message.append("\n").append(ChatColor.GOLD) .append(StringUtils.join(parts, " ")) .append(" (") .append(ChatColor.YELLOW) .append(names.size()) .append(ChatColor.GOLD) .append("): ") .append(ChatColor.YELLOW) .append(StringUtils.join(names, ", ")); } commandSender.sendMessage(message.toString()); return true; } }