Fixed an error that could happen when checking if a server is full

This commit is contained in:
ajgeiss0702
2022-08-15 16:56:07 -07:00
parent 76796b02f9
commit 4f7a137ea8
6 changed files with 14 additions and 18 deletions
@@ -134,7 +134,7 @@ public class BungeeMethods implements PlatformMethods {
}
if(found) continue;
serverList.add(new BungeeServer(serverInfo, plugin.getMain()));
serverList.add(new BungeeServer(serverInfo));
}
for(BungeeServer sv : new ArrayList<>(serverList)) {
@@ -145,7 +145,7 @@ public class BungeeQueue extends Plugin implements Listener, Implementation {
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
);
@@ -2,12 +2,12 @@ package us.ajg0702.queue.platforms.bungeecord.server;
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 class BungeeServer implements AdaptedServer {
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
@@ -159,7 +159,7 @@ public class VelocityMethods implements PlatformMethods {
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)) {
@@ -144,7 +144,7 @@ public class VelocityQueue implements Implementation {
Optional<Component> 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()
@@ -3,12 +3,13 @@ package us.ajg0702.queue.platforms.velocity.server;
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 class VelocityServer implements AdaptedServer {
@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