Uids will not be showed until the parameter <uid> is added,

like this: /list uid
This commit is contained in:
coooookies 2022-05-01 03:43:41 +08:00
parent c0b7859f93
commit ba97dfe7d9

View File

@ -8,29 +8,41 @@ 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();
boolean finalNeedUID = needUID;
playersMap.values().forEach(player -> {
playerSet.append(player.getNickname());
if (sender != null) {
playerSet.append("<color=green><UID:")
.append(player.getUid())
.append("></color>, ");
} else {
playerSet.append("<UID:")
.append(player.getUid())
.append(">, ");
if (finalNeedUID) {
if (sender != null) {
playerSet.append("<color=green><UID:")
.append(player.getUid())
.append("></color>");
} else {
playerSet.append("<UID:")
.append(player.getUid())
.append(">");
}
}
playerSet.append(", ");
});
String players = playerSet.toString();