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); 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 * elliot is bad
@@ -28,4 +28,9 @@ public interface AdaptedServerPing extends Handle {
* @return The maximum number of players that can join * @return The maximum number of players that can join
*/ */
int getMaxPlayers(); 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()); server.setLastSentTime(System.currentTimeMillis());
nextPlayer.connect(selected); nextPlayer.connect(selected);
server.addPlayer(selected);
} }
} }
@@ -453,4 +453,10 @@ public class QueueServerImpl implements QueueServer {
player.hasPermission("ajqueue.joinfullandbypassserver."+name) || player.hasPermission("ajqueue.joinfullandbypassserver."+name) ||
player.hasPermission("ajqueue.joinfullandbypass"); 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(); return desc.toPlainText();
} }
int add = 0;
@Override @Override
public int getPlayerCount() { public int getPlayerCount() {
return handle.getPlayers().getOnline(); return handle.getPlayers().getOnline()+add;
} }
@Override @Override
@@ -38,6 +40,11 @@ public class BungeeServerPing implements AdaptedServerPing {
return handle.getPlayers().getMax(); return handle.getPlayers().getMax();
} }
@Override
public void addPlayer() {
add++;
}
@Override @Override
public ServerPing getHandle() { public ServerPing getHandle() {
return handle; return handle;
@@ -22,9 +22,11 @@ public class VelocityServerPing implements AdaptedServerPing {
return PlainTextComponentSerializer.plainText().serialize(handle.getDescriptionComponent()); return PlainTextComponentSerializer.plainText().serialize(handle.getDescriptionComponent());
} }
int add = 0;
@Override @Override
public int getPlayerCount() { public int getPlayerCount() {
return handle.getPlayers().map(ServerPing.Players::getOnline).orElse(0); return handle.getPlayers().map(ServerPing.Players::getOnline).orElse(0)+add;
} }
@Override @Override
@@ -32,6 +34,11 @@ public class VelocityServerPing implements AdaptedServerPing {
return handle.getPlayers().map(ServerPing.Players::getMax).orElse(0); return handle.getPlayers().map(ServerPing.Players::getMax).orElse(0);
} }
@Override
public void addPlayer() {
add++;
}
@Override @Override
public ServerPing getHandle() { public ServerPing getHandle() {
return handle; return handle;