From 5f12a1532f19301298adb493d39cf481fe7d5c6a Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Fri, 31 May 2024 15:38:56 -0500 Subject: [PATCH] Add vanish filtering to list --- .../main/java/dev/plex/command/impl/ListCMD.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/dev/plex/command/impl/ListCMD.java b/server/src/main/java/dev/plex/command/impl/ListCMD.java index b57a6c5..d2963b3 100644 --- a/server/src/main/java/dev/plex/command/impl/ListCMD.java +++ b/server/src/main/java/dev/plex/command/impl/ListCMD.java @@ -18,7 +18,7 @@ import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.List; -@CommandParameters(name = "list", description = "Show a list of all online players", usage = "/ [-d]", aliases = "lsit,who,playerlist,online") +@CommandParameters(name = "list", description = "Show a list of all online players", usage = "/ [-d | -v]", aliases = "lsit,who,playerlist,online") @CommandPermissions(permission = "plex.list") public class ListCMD extends PlexCommand { @@ -26,7 +26,15 @@ public class ListCMD extends PlexCommand protected Component execute(@NotNull CommandSender sender, @Nullable Player playerSender, String[] args) { List players = Lists.newArrayList(Bukkit.getOnlinePlayers()); - players.removeIf(PlayerMeta::isVanished); + if (args.length > 0 && args[0].equalsIgnoreCase("-v")) + { + checkPermission(sender, "plex.list.vanished"); + players.removeIf(player -> !PlayerMeta.isVanished(player)); + } + else + { + players.removeIf(PlayerMeta::isVanished); + } Component list = Component.empty(); Component header = PlexUtils.messageComponent(players.size() == 1 ? "listHeader" : "listHeaderPlural", players.size(), Bukkit.getMaxPlayers()); send(sender, header); @@ -62,7 +70,7 @@ public class ListCMD extends PlexCommand { if (args.length == 1 && silentCheckPermission(sender, this.getPermission())) { - return Collections.singletonList("-d"); + return List.of("-d", "-v"); } return Collections.emptyList(); }