From 853d8861e8d2f96cbfe6674d85fe60292951df19 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Wed, 25 Aug 2021 14:01:32 -0700 Subject: [PATCH] allow getting AdaptedPlayer via UUID --- .../us/ajg0702/queue/api/PlatformMethods.java | 27 +++++++++++++++++++ .../platforms/bungeecord/BungeeMethods.java | 12 ++++++--- .../platforms/velocity/VelocityMethods.java | 15 +++++++---- 3 files changed, 45 insertions(+), 9 deletions(-) diff --git a/api/src/main/java/us/ajg0702/queue/api/PlatformMethods.java b/api/src/main/java/us/ajg0702/queue/api/PlatformMethods.java index 14bfcc4..b46ca8d 100644 --- a/api/src/main/java/us/ajg0702/queue/api/PlatformMethods.java +++ b/api/src/main/java/us/ajg0702/queue/api/PlatformMethods.java @@ -6,6 +6,7 @@ import us.ajg0702.queue.api.players.AdaptedPlayer; import us.ajg0702.queue.api.server.AdaptedServer; import java.util.List; +import java.util.UUID; public interface PlatformMethods { @@ -29,10 +30,31 @@ public interface PlatformMethods { List getOnlinePlayers(); List getPlayerNames(boolean lowercase); + + /** + * Gets an online player by their name + * @param name The players name + * @return The AdaptedPlayer for this player + */ AdaptedPlayer getPlayer(String name); + /** + * Gets an online player by their UUID + * @param uuid their UUID + * @return the AdaptedPlayer for this player + */ + AdaptedPlayer getPlayer(UUID uuid); + + /** + * Gets a list of the server names + * @return A list of the server names + */ List getServerNames(); + /** + * Gets the name of the implementation. E.g. bungeecord, velocity + * @return the name of the implementation + */ String getImplementationName(); List getCommands(); @@ -44,6 +66,11 @@ public interface PlatformMethods { */ boolean hasPlugin(String pluginName); + /** + * Gets an AdaptedServer from the server name + * @param name The name of the server + * @return The AdaptedServer + */ AdaptedServer getServer(String name); List getServers(); diff --git a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeMethods.java b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeMethods.java index c09244e..ec0e36e 100644 --- a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeMethods.java +++ b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeMethods.java @@ -16,10 +16,7 @@ import us.ajg0702.queue.commands.commands.PlayerSender; import us.ajg0702.queue.platforms.bungeecord.players.BungeePlayer; import us.ajg0702.queue.platforms.bungeecord.server.BungeeServer; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Locale; +import java.util.*; public class BungeeMethods implements PlatformMethods { @@ -87,6 +84,13 @@ public class BungeeMethods implements PlatformMethods { return new BungeePlayer(player); } + @Override + public AdaptedPlayer getPlayer(UUID uuid) { + ProxiedPlayer player = proxyServer.getPlayer(uuid); + if(player == null) return null; + return new BungeePlayer(player); + } + @Override public List getServerNames() { return new ArrayList<>(proxyServer.getServers().keySet()); diff --git a/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/VelocityMethods.java b/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/VelocityMethods.java index e899725..d52bd1d 100644 --- a/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/VelocityMethods.java +++ b/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/VelocityMethods.java @@ -19,10 +19,7 @@ import us.ajg0702.queue.commands.commands.PlayerSender; import us.ajg0702.queue.platforms.velocity.players.VelocityPlayer; import us.ajg0702.queue.platforms.velocity.server.VelocityServer; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; -import java.util.Optional; +import java.util.*; @SuppressWarnings("OptionalIsPresent") public class VelocityMethods implements PlatformMethods { @@ -96,7 +93,15 @@ public class VelocityMethods implements PlatformMethods { public AdaptedPlayer getPlayer(String name) { Optional player = proxyServer.getPlayer(name); if(!player.isPresent()) { - System.out.println("Player "+name+" not found"); + return null; + } + return new VelocityPlayer(player.get()); + } + + @Override + public AdaptedPlayer getPlayer(UUID uuid) { + Optional player = proxyServer.getPlayer(uuid); + if(!player.isPresent()) { return null; } return new VelocityPlayer(player.get());