Add vanish filtering to list

This commit is contained in:
Telesphoreo 2024-05-31 15:38:56 -05:00
parent fff35ad34c
commit 5f12a1532f

View File

@ -18,7 +18,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@CommandParameters(name = "list", description = "Show a list of all online players", usage = "/<command> [-d]", aliases = "lsit,who,playerlist,online") @CommandParameters(name = "list", description = "Show a list of all online players", usage = "/<command> [-d | -v]", aliases = "lsit,who,playerlist,online")
@CommandPermissions(permission = "plex.list") @CommandPermissions(permission = "plex.list")
public class ListCMD extends PlexCommand 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) protected Component execute(@NotNull CommandSender sender, @Nullable Player playerSender, String[] args)
{ {
List<Player> players = Lists.newArrayList(Bukkit.getOnlinePlayers()); List<Player> players = Lists.newArrayList(Bukkit.getOnlinePlayers());
if (args.length > 0 && args[0].equalsIgnoreCase("-v"))
{
checkPermission(sender, "plex.list.vanished");
players.removeIf(player -> !PlayerMeta.isVanished(player));
}
else
{
players.removeIf(PlayerMeta::isVanished); players.removeIf(PlayerMeta::isVanished);
}
Component list = Component.empty(); Component list = Component.empty();
Component header = PlexUtils.messageComponent(players.size() == 1 ? "listHeader" : "listHeaderPlural", players.size(), Bukkit.getMaxPlayers()); Component header = PlexUtils.messageComponent(players.size() == 1 ? "listHeader" : "listHeaderPlural", players.size(), Bukkit.getMaxPlayers());
send(sender, header); send(sender, header);
@ -62,7 +70,7 @@ public class ListCMD extends PlexCommand
{ {
if (args.length == 1 && silentCheckPermission(sender, this.getPermission())) if (args.length == 1 && silentCheckPermission(sender, this.getPermission()))
{ {
return Collections.singletonList("-d"); return List.of("-d", "-v");
} }
return Collections.emptyList(); return Collections.emptyList();
} }