Added option to hide player from /list /who ... login message.

This is for other plugins, that want to hide a player.
Use IEssentials.getUser(Player p).setHidden(boolean)
This commit is contained in:
snowleo 2011-07-18 03:42:21 +02:00
parent e3a470e264
commit be83383fd5
10 changed files with 107 additions and 9 deletions

View file

@ -24,9 +24,33 @@ public class Commandlist extends EssentialsCommand
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
boolean showhidden = false;
if (sender instanceof Player)
{
if (ess.getUser(sender).isAuthorized("essentials.list.hidden"))
{
showhidden = true;
}
}
else
{
showhidden = true;
}
int playerHidden = 0;
for (Player p : server.getOnlinePlayers())
{
if (ess.getUser(p).isHidden())
{
playerHidden++;
}
}
charge(sender);
StringBuilder online = new StringBuilder();
online.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().length);
online.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().length - playerHidden);
if (showhidden)
{
online.append(ChatColor.GRAY).append("/").append(playerHidden);
}
online.append(ChatColor.BLUE).append(" out of a maximum ").append(ChatColor.RED).append(server.getMaxPlayers());
online.append(ChatColor.BLUE).append(" players online.");
sender.sendMessage(online.toString());
@ -37,6 +61,10 @@ public class Commandlist extends EssentialsCommand
for (Player p : server.getOnlinePlayers())
{
User u = ess.getUser(p);
if (u.isHidden() && !showhidden)
{
continue;
}
String group = u.getGroup();
List<User> list = sort.get(group);
if (list == null)
@ -69,6 +97,10 @@ public class Commandlist extends EssentialsCommand
{
groupString.append("§7[AFK]§f");
}
if (user.isHidden())
{
groupString.append("§7[HIDDEN]§f");
}
groupString.append(user.getDisplayName());
}
sender.sendMessage(groupString.toString());
@ -79,7 +111,12 @@ public class Commandlist extends EssentialsCommand
List<User> users = new ArrayList<User>();
for (Player p : server.getOnlinePlayers())
{
users.add(ess.getUser(p));
final User u = ess.getUser(p);
if (u.isHidden() && !showhidden)
{
continue;
}
users.add(u);
}
Collections.sort(users);
@ -100,6 +137,10 @@ public class Commandlist extends EssentialsCommand
{
onlineUsers.append("§7[AFK]§f");
}
if (user.isHidden())
{
onlineUsers.append("§7[HIDDEN]§f");
}
onlineUsers.append(user.getDisplayName());
}
sender.sendMessage(onlineUsers.toString());