Skip to content

Commit 44a79c0

Browse files
committed
Added balanced provider
1 parent 5fadacb commit 44a79c0

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/main/java/com/jaimemartz/playerbalancer/connection/ProviderType.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import net.md_5.bungee.api.config.ServerInfo;
77
import net.md_5.bungee.api.connection.ProxiedPlayer;
88

9+
import java.util.ArrayList;
910
import java.util.List;
1011
import java.util.concurrent.ThreadLocalRandom;
1112

@@ -36,6 +37,28 @@ public ServerInfo requestTarget(PlayerBalancer plugin, ServerSection section, Li
3637
}
3738
},
3839

40+
BALANCED {
41+
@Override
42+
public ServerInfo requestTarget(PlayerBalancer plugin, ServerSection section, List<ServerInfo> list, ProxiedPlayer player) {
43+
List<ServerInfo> results = new ArrayList<>();
44+
int min = Integer.MAX_VALUE;
45+
46+
for (ServerInfo server : list) {
47+
int count = plugin.getNetworkManager().getPlayers(server);
48+
49+
if (count <= min) {
50+
if (count < min) {
51+
min = count;
52+
results.clear();
53+
}
54+
results.add(server);
55+
}
56+
}
57+
58+
return results.get(ThreadLocalRandom.current().nextInt(list.size()));
59+
}
60+
},
61+
3962
RANDOM {
4063
@Override
4164
public ServerInfo requestTarget(PlayerBalancer plugin, ServerSection section, List<ServerInfo> list, ProxiedPlayer player) {

0 commit comments

Comments
 (0)