From 4a0869c16601e2c6d25432352aa1e0a845fc58d8 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Thu, 29 Jun 2023 11:35:34 -0500 Subject: [PATCH] Better fetching of players for spigot api --- .../java/us/ajg0702/queue/spigot/api/SpigotAPI.java | 11 +++++++++-- .../placeholders/placeholders/StatusPlayer.java | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/spigot/src/main/java/us/ajg0702/queue/spigot/api/SpigotAPI.java b/spigot/src/main/java/us/ajg0702/queue/spigot/api/SpigotAPI.java index f37e366..a126d18 100644 --- a/spigot/src/main/java/us/ajg0702/queue/spigot/api/SpigotAPI.java +++ b/spigot/src/main/java/us/ajg0702/queue/spigot/api/SpigotAPI.java @@ -7,6 +7,7 @@ import us.ajg0702.queue.api.spigot.MessagedResponse; import us.ajg0702.queue.spigot.SpigotMain; import us.ajg0702.queue.spigot.communication.ResponseManager; +import java.util.Collection; import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Future; @@ -113,7 +114,7 @@ public class SpigotAPI extends AjQueueSpigotAPI { @Override public Future getPlayersInQueue(String queueName) { - Player p = Bukkit.getOnlinePlayers().iterator().next(); + Player p = getSomePlayer(); CompletableFuture future = new CompletableFuture<>(); @@ -138,7 +139,7 @@ public class SpigotAPI extends AjQueueSpigotAPI { @Override public Future getServerStatusString(String queueName, UUID player) { - Player p = player == null ? Bukkit.getOnlinePlayers().iterator().next() : Bukkit.getPlayer(player); + Player p = player == null ? getSomePlayer() : Bukkit.getPlayer(player); if(p == null) throw new IllegalArgumentException("Player must be online!"); String channel = player == null ? "status" : "playerstatus"; @@ -175,4 +176,10 @@ public class SpigotAPI extends AjQueueSpigotAPI { return future; } + + private Player getSomePlayer() { + Collection players = Bukkit.getOnlinePlayers(); + if(players.size() == 0) return null; + return players.iterator().next(); + } } diff --git a/spigot/src/main/java/us/ajg0702/queue/spigot/placeholders/placeholders/StatusPlayer.java b/spigot/src/main/java/us/ajg0702/queue/spigot/placeholders/placeholders/StatusPlayer.java index 8fe71e0..f7b8307 100644 --- a/spigot/src/main/java/us/ajg0702/queue/spigot/placeholders/placeholders/StatusPlayer.java +++ b/spigot/src/main/java/us/ajg0702/queue/spigot/placeholders/placeholders/StatusPlayer.java @@ -35,6 +35,8 @@ public class StatusPlayer extends Placeholder { String queue = matcher.group(1); UUIDStringKey key = new UUIDStringKey(p.getUniqueId(), queue); + if(!p.isOnline()) return "You aren't online!"; + Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { try { String response = AjQueueSpigotAPI.getInstance()