From 4f7a137ea87f499ed1e0ab43eb778808908d89e1 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Mon, 15 Aug 2022 16:56:07 -0700 Subject: [PATCH] Fixed an error that could happen when checking if a server is full --- .../queue/platforms/bungeecord/BungeeMethods.java | 2 +- .../queue/platforms/bungeecord/BungeeQueue.java | 2 +- .../platforms/bungeecord/server/BungeeServer.java | 11 ++++------- .../queue/platforms/velocity/VelocityMethods.java | 2 +- .../queue/platforms/velocity/VelocityQueue.java | 2 +- .../platforms/velocity/server/VelocityServer.java | 13 ++++++------- 6 files changed, 14 insertions(+), 18 deletions(-) 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 af877fc7..f8551ff7 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 @@ -134,7 +134,7 @@ public List getServers() { } if(found) continue; - serverList.add(new BungeeServer(serverInfo, plugin.getMain())); + serverList.add(new BungeeServer(serverInfo)); } for(BungeeServer sv : new ArrayList<>(serverList)) { diff --git a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeQueue.java b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeQueue.java index af7366a1..32fb6a6a 100644 --- a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeQueue.java +++ b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeQueue.java @@ -145,7 +145,7 @@ public void onKick(ServerKickEvent e) { Component reason = BungeeComponentSerializer.get().deserialize(e.getKickReasonComponent()); main.getEventHandler().onServerKick( new BungeePlayer(e.getPlayer()), - new BungeeServer(e.getKickedFrom(), main), + new BungeeServer(e.getKickedFrom()), reason, false ); diff --git a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/server/BungeeServer.java b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/server/BungeeServer.java index a1c882a4..085faffb 100644 --- a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/server/BungeeServer.java +++ b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/server/BungeeServer.java @@ -2,12 +2,12 @@ import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.connection.ProxiedPlayer; +import us.ajg0702.queue.api.AjQueueAPI; import us.ajg0702.queue.api.players.AdaptedPlayer; import us.ajg0702.queue.api.server.AdaptedServer; import us.ajg0702.queue.api.server.AdaptedServerInfo; import us.ajg0702.queue.api.server.AdaptedServerPing; import us.ajg0702.queue.api.util.QueueLogger; -import us.ajg0702.queue.common.QueueMain; import us.ajg0702.queue.platforms.bungeecord.players.BungeePlayer; import java.util.ArrayList; @@ -27,12 +27,9 @@ public class BungeeServer implements AdaptedServer { private int offlineTime = 0; - private final QueueMain main; - - public BungeeServer(ServerInfo handle, QueueMain main) { + public BungeeServer(ServerInfo handle) { this.handle = handle; serverInfo = new BungeeServerInfo(handle); - this.main = main; } @Override @@ -113,13 +110,13 @@ public boolean canJoinFull(AdaptedPlayer player) { player.hasPermission("ajqueue.joinfullserver."+getName()) || player.hasPermission("ajqueue.joinfullandbypassserver."+getName()) || player.hasPermission("ajqueue.joinfullandbypass") || - (main.isPremium() && main.getLogic().getPermissionGetter().hasUniqueFullBypass(player, getName())) + (AjQueueAPI.getInstance().isPremium() && AjQueueAPI.getInstance().getLogic().getPermissionGetter().hasUniqueFullBypass(player, getName())) ; } @Override public boolean justWentOnline() { - return System.currentTimeMillis()-lastOffline <= (main.getConfig().getDouble("wait-time")) && isOnline(); + return System.currentTimeMillis()-lastOffline <= (AjQueueAPI.getInstance().getConfig().getDouble("wait-time")) && isOnline(); } @Override 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 af1b1009..a7e5f05c 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 @@ -159,7 +159,7 @@ public List getServers() { if(found) continue; Debug.info("Added "+registeredServer.getServerInfo().getName()); - serverList.add(new VelocityServer(registeredServer, plugin.getMain())); + serverList.add(new VelocityServer(registeredServer)); } for(VelocityServer sv : new ArrayList<>(serverList)) { diff --git a/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/VelocityQueue.java b/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/VelocityQueue.java index 8e61b952..3f400360 100644 --- a/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/VelocityQueue.java +++ b/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/VelocityQueue.java @@ -144,7 +144,7 @@ public void onKick(KickedFromServerEvent e) { Optional reasonOptional = e.getServerKickReason(); main.getEventHandler().onServerKick( new VelocityPlayer(e.getPlayer()), - new VelocityServer(e.getServer(), main), + new VelocityServer(e.getServer()), reasonOptional.orElseGet(() -> Component.text("Proxy lost connection")), // According to Tux on discord, velocity doesnt give a reason when the proxy loses connection to the connected server e.kickedDuringServerConnect() diff --git a/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/server/VelocityServer.java b/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/server/VelocityServer.java index a4cafda1..0b81b978 100644 --- a/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/server/VelocityServer.java +++ b/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/server/VelocityServer.java @@ -3,12 +3,13 @@ import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.server.RegisteredServer; import com.velocitypowered.api.proxy.server.ServerPing; +import us.ajg0702.queue.api.AjQueueAPI; import us.ajg0702.queue.api.players.AdaptedPlayer; import us.ajg0702.queue.api.server.AdaptedServer; import us.ajg0702.queue.api.server.AdaptedServerInfo; import us.ajg0702.queue.api.server.AdaptedServerPing; import us.ajg0702.queue.api.util.QueueLogger; -import us.ajg0702.queue.common.QueueMain; +import us.ajg0702.queue.common.utils.Debug; import us.ajg0702.queue.platforms.velocity.players.VelocityPlayer; import java.util.ArrayList; @@ -27,11 +28,8 @@ public class VelocityServer implements AdaptedServer { private int offlineTime = 0; - private final QueueMain main; - - public VelocityServer(RegisteredServer handle, QueueMain main) { + public VelocityServer(RegisteredServer handle) { this.handle = handle; - this.main = main; } @Override @@ -112,18 +110,19 @@ public int getOfflineTime() { @Override public boolean canJoinFull(AdaptedPlayer player) { if(player == null) return true; + Debug.info("on "+getName()); return player.hasPermission("ajqueue.joinfull") || player.hasPermission("ajqueue.joinfullserver."+getName()) || player.hasPermission("ajqueue.joinfullandbypassserver."+getName()) || player.hasPermission("ajqueue.joinfullandbypass") || - (main.isPremium() && main.getLogic().getPermissionGetter().hasUniqueFullBypass(player, getName())) + (AjQueueAPI.getInstance().isPremium() && AjQueueAPI.getInstance().getLogic().getPermissionGetter().hasUniqueFullBypass(player, getName())) ; } @Override public boolean justWentOnline() { - return System.currentTimeMillis()-lastOffline <= (main.getConfig().getDouble("wait-time")) && isOnline(); + return System.currentTimeMillis()-lastOffline <= (AjQueueAPI.getInstance().getConfig().getDouble("wait-time")) && isOnline(); } @Override