Better fetching of players for spigot api

This commit is contained in:
ajgeiss0702
2023-06-29 11:35:34 -05:00
parent e4a2a3d99d
commit 4a0869c166
2 changed files with 11 additions and 2 deletions
@@ -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<Integer> getPlayersInQueue(String queueName) {
Player p = Bukkit.getOnlinePlayers().iterator().next();
Player p = getSomePlayer();
CompletableFuture<Integer> future = new CompletableFuture<>();
@@ -138,7 +139,7 @@ public class SpigotAPI extends AjQueueSpigotAPI {
@Override
public Future<String> 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<? extends Player> players = Bukkit.getOnlinePlayers();
if(players.size() == 0) return null;
return players.iterator().next();
}
}
@@ -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()