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
@@ -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