manually add one to player count when balancing players

This commit is contained in:
ajgeiss0702
2021-10-21 13:23:00 -07:00
parent aafa15db05
commit a72e3f67c1
6 changed files with 33 additions and 2 deletions
@@ -245,6 +245,11 @@ public interface QueueServer {
*/
boolean canJoinFull(AdaptedPlayer player);
/**
* Adds one to the player count for a server (temporarily until the next server ping)
*/
void addPlayer(AdaptedServer server);
/**
* elliot is bad
@@ -28,4 +28,9 @@ public interface AdaptedServerPing extends Handle {
* @return The maximum number of players that can join
*/
int getMaxPlayers();
/**
* Temporarly adds one player to the player count
*/
void addPlayer();
}
@@ -608,6 +608,7 @@ public class QueueManagerImpl implements QueueManager {
}
server.setLastSentTime(System.currentTimeMillis());
nextPlayer.connect(selected);
server.addPlayer(selected);
}
}
@@ -453,4 +453,10 @@ public class QueueServerImpl implements QueueServer {
player.hasPermission("ajqueue.joinfullandbypassserver."+name) ||
player.hasPermission("ajqueue.joinfullandbypass");
}
@Override
public void addPlayer(AdaptedServer server) {
if(!pings.containsKey(server)) throw new IllegalArgumentException("Server is not in this group!");
pings.get(server).addPlayer();
}
}
@@ -28,9 +28,11 @@ public class BungeeServerPing implements AdaptedServerPing {
return desc.toPlainText();
}
int add = 0;
@Override
public int getPlayerCount() {
return handle.getPlayers().getOnline();
return handle.getPlayers().getOnline()+add;
}
@Override
@@ -38,6 +40,11 @@ public class BungeeServerPing implements AdaptedServerPing {
return handle.getPlayers().getMax();
}
@Override
public void addPlayer() {
add++;
}
@Override
public ServerPing getHandle() {
return handle;
@@ -22,9 +22,11 @@ public class VelocityServerPing implements AdaptedServerPing {
return PlainTextComponentSerializer.plainText().serialize(handle.getDescriptionComponent());
}
int add = 0;
@Override
public int getPlayerCount() {
return handle.getPlayers().map(ServerPing.Players::getOnline).orElse(0);
return handle.getPlayers().map(ServerPing.Players::getOnline).orElse(0)+add;
}
@Override
@@ -32,6 +34,11 @@ public class VelocityServerPing implements AdaptedServerPing {
return handle.getPlayers().map(ServerPing.Players::getMax).orElse(0);
}
@Override
public void addPlayer() {
add++;
}
@Override
public ServerPing getHandle() {
return handle;