Simplify /glist showall code.

This commit is contained in:
Tux 2013-12-12 15:29:29 -05:00
parent 3925c3a313
commit 14aba0ffb3
1 changed files with 4 additions and 5 deletions

View File

@ -7,8 +7,9 @@
package com.imaginarycode.minecraft.redisbungee; package com.imaginarycode.minecraft.redisbungee;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.Ordering;
import com.google.common.collect.TreeMultimap;
import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.config.ServerInfo;
@ -38,15 +39,13 @@ public class RedisBungeeCommands {
int count = RedisBungee.getApi().getPlayerCount(); int count = RedisBungee.getApi().getPlayerCount();
if (args.length > 0 && args[0].equals("showall")) { if (args.length > 0 && args[0].equals("showall")) {
if (RedisBungee.getConfiguration().isCanonicalGlist()) { if (RedisBungee.getConfiguration().isCanonicalGlist()) {
Multimap<String, String> serverToPlayers = HashMultimap.create(); Multimap<String, String> serverToPlayers = TreeMultimap.create(Ordering.natural(), Ordering.allEqual());
for (String p : RedisBungee.getApi().getPlayersOnline()) { for (String p : RedisBungee.getApi().getPlayersOnline()) {
ServerInfo si = RedisBungee.getApi().getServerFor(p); ServerInfo si = RedisBungee.getApi().getServerFor(p);
if (si != null) if (si != null)
serverToPlayers.put(si.getName(), p); serverToPlayers.put(si.getName(), p);
} }
if (serverToPlayers.size() == 0) return; for (String server : serverToPlayers.keySet())
Set<String> sortedServers = new TreeSet<>(serverToPlayers.keySet());
for (String server : sortedServers)
sender.sendMessage(ChatColor.GREEN + "[" + server + "] " + ChatColor.YELLOW + "(" sender.sendMessage(ChatColor.GREEN + "[" + server + "] " + ChatColor.YELLOW + "("
+ serverToPlayers.get(server).size() + "): " + ChatColor.WHITE + serverToPlayers.get(server).size() + "): " + ChatColor.WHITE
+ Joiner.on(", ").join(serverToPlayers.get(server))); + Joiner.on(", ").join(serverToPlayers.get(server)));