Order `/f show` by rank. Adds #150

This commit is contained in:
eueln 2014-12-06 21:44:00 -06:00
parent 6107e9502e
commit 5e676bdd50
2 changed files with 32 additions and 1 deletions

View File

@ -7,6 +7,7 @@ import com.massivecraft.factions.Factions;
import com.massivecraft.factions.integration.Econ;
import com.massivecraft.factions.struct.Permission;
import com.massivecraft.factions.struct.Relation;
import com.massivecraft.factions.util.MiscUtil;
import mkremins.fanciful.FancyMessage;
import org.bukkit.ChatColor;
@ -129,7 +130,7 @@ public class CmdShow extends FCommand {
FancyMessage offline = new FancyMessage("Members offline: ").color(ChatColor.GOLD);
boolean firstOnline = true;
boolean firstOffline = true;
for (FPlayer p : faction.getFPlayers()) {
for (FPlayer p : MiscUtil.rankOrder(faction.getFPlayers())) {
String name = p.getNameAndTitle();
if (p.isOnline()) {
if (firstOnline) {

View File

@ -1,6 +1,7 @@
package com.massivecraft.factions.util;
import com.massivecraft.factions.Conf;
import com.massivecraft.factions.FPlayer;
import com.massivecraft.factions.P;
import org.bukkit.ChatColor;
import org.bukkit.entity.Creature;
@ -10,6 +11,7 @@ import org.bukkit.entity.EntityType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
public class MiscUtil {
@ -77,5 +79,33 @@ public class MiscUtil {
return errors;
}
public static Iterable<FPlayer> rankOrder(Iterable<FPlayer> players) {
List<FPlayer> admins = new ArrayList<FPlayer>();
List<FPlayer> moderators = new ArrayList<FPlayer>();
List<FPlayer> normal = new ArrayList<FPlayer>();
for (FPlayer player : players) {
switch (player.getRole()) {
case ADMIN:
admins.add(player);
break;
case MODERATOR:
moderators.add(player);
break;
case NORMAL:
normal.add(player);
break;
}
}
List<FPlayer> ret = new ArrayList<FPlayer>();
ret.addAll(admins);
ret.addAll(moderators);
ret.addAll(normal);
return ret;
}
}