Merge pull request #381 from Coooookies/development

Show the player's UID with the `/list` command
This commit is contained in:
Magix 2022-04-30 16:16:18 -04:00 committed by GitHub
commit a62520f922

View File

@ -8,19 +8,42 @@ import emu.grasscutter.game.player.Player;
import java.util.List;
import java.util.Map;
@Command(label = "list", description = "List online players")
@Command(label = "list", usage = "list [uid]",
description = "List online players", aliases = {"players"})
public final class ListCommand implements CommandHandler {
@Override
public void execute(Player sender, List<String> args) {
Map<Integer, Player> playersMap = Grasscutter.getGameServer().getPlayers();
boolean needUID = false;
if (args.size() > 0) {
needUID = args.get(0).equals("uid");
}
CommandHandler.sendMessage(sender, String.format("There are %s player(s) online:", playersMap.size()));
if (playersMap.size() != 0) {
StringBuilder playerSet = new StringBuilder();
playersMap.values().forEach(player ->
playerSet.append(player.getNickname()).append(", "));
boolean finalNeedUID = needUID;
playersMap.values().forEach(player -> {
playerSet.append(player.getNickname());
if (finalNeedUID) {
if (sender != null) {
playerSet.append(" <color=green>(")
.append(player.getUid())
.append(")</color>");
} else {
playerSet.append(" (")
.append(player.getUid())
.append(")");
}
}
playerSet.append(", ");
});
String players = playerSet.toString();
CommandHandler.sendMessage(sender, players.substring(0, players.length() - 2));