allow getting AdaptedPlayer via UUID

This commit is contained in:
ajgeiss0702
2021-08-25 14:01:32 -07:00
parent 72e5c86629
commit 853d8861e8
3 changed files with 45 additions and 9 deletions
@@ -6,6 +6,7 @@ import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.api.server.AdaptedServer; import us.ajg0702.queue.api.server.AdaptedServer;
import java.util.List; import java.util.List;
import java.util.UUID;
public interface PlatformMethods { public interface PlatformMethods {
@@ -29,10 +30,31 @@ public interface PlatformMethods {
List<AdaptedPlayer> getOnlinePlayers(); List<AdaptedPlayer> getOnlinePlayers();
List<String> getPlayerNames(boolean lowercase); List<String> 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); 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<String> getServerNames(); List<String> getServerNames();
/**
* Gets the name of the implementation. E.g. bungeecord, velocity
* @return the name of the implementation
*/
String getImplementationName(); String getImplementationName();
List<IBaseCommand> getCommands(); List<IBaseCommand> getCommands();
@@ -44,6 +66,11 @@ public interface PlatformMethods {
*/ */
boolean hasPlugin(String pluginName); 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); AdaptedServer getServer(String name);
List<AdaptedServer> getServers(); List<AdaptedServer> getServers();
@@ -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.players.BungeePlayer;
import us.ajg0702.queue.platforms.bungeecord.server.BungeeServer; import us.ajg0702.queue.platforms.bungeecord.server.BungeeServer;
import java.util.ArrayList; import java.util.*;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
public class BungeeMethods implements PlatformMethods { public class BungeeMethods implements PlatformMethods {
@@ -87,6 +84,13 @@ public class BungeeMethods implements PlatformMethods {
return new BungeePlayer(player); 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 @Override
public List<String> getServerNames() { public List<String> getServerNames() {
return new ArrayList<>(proxyServer.getServers().keySet()); return new ArrayList<>(proxyServer.getServers().keySet());
@@ -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.players.VelocityPlayer;
import us.ajg0702.queue.platforms.velocity.server.VelocityServer; import us.ajg0702.queue.platforms.velocity.server.VelocityServer;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Locale;
import java.util.Optional;
@SuppressWarnings("OptionalIsPresent") @SuppressWarnings("OptionalIsPresent")
public class VelocityMethods implements PlatformMethods { public class VelocityMethods implements PlatformMethods {
@@ -96,7 +93,15 @@ public class VelocityMethods implements PlatformMethods {
public AdaptedPlayer getPlayer(String name) { public AdaptedPlayer getPlayer(String name) {
Optional<Player> player = proxyServer.getPlayer(name); Optional<Player> player = proxyServer.getPlayer(name);
if(!player.isPresent()) { 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> player = proxyServer.getPlayer(uuid);
if(!player.isPresent()) {
return null; return null;
} }
return new VelocityPlayer(player.get()); return new VelocityPlayer(player.get());