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.List;
import java.util.Map; 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 { public final class ListCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, List<String> args) { public void execute(Player sender, List<String> args) {
Map<Integer, Player> playersMap = Grasscutter.getGameServer().getPlayers(); 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())); CommandHandler.sendMessage(sender, String.format("There are %s player(s) online:", playersMap.size()));
if (playersMap.size() != 0) { if (playersMap.size() != 0) {
StringBuilder playerSet = new StringBuilder(); StringBuilder playerSet = new StringBuilder();
boolean finalNeedUID = needUID;
playersMap.values().forEach(player -> { playersMap.values().forEach(player -> {
playerSet.append(player.getNickname()); playerSet.append(player.getNickname());
if (finalNeedUID) {
if (sender != null) { if (sender != null) {
playerSet.append("<color=green><UID:") playerSet.append("<color=green><UID:")
.append(player.getUid()) .append(player.getUid())
.append("></color>, "); .append("></color>");
} else { } else {
playerSet.append("<UID:") playerSet.append("<UID:")
.append(player.getUid()) .append(player.getUid())
.append(">, "); .append(">");
} }
}
playerSet.append(", ");
}); });
String players = playerSet.toString(); String players = playerSet.toString();