Skip to content

Commit 2ba6f83

Browse files
authored
Merge pull request BGHDDevelopment#24 from BGHDDevelopment/master
RedisBungee Fork Support
2 parents a144047 + ab5e84b commit 2ba6f83

File tree

10 files changed

+51
-5
lines changed

10 files changed

+51
-5
lines changed

balancer/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@
6666
<type>jar</type>
6767
<scope>provided</scope>
6868
</dependency>
69+
<dependency>
70+
<groupId>com.imaginarycode.minecraft</groupId>
71+
<artifactId>RedisBungee</artifactId>
72+
<version>0.6.5-SNAPSHOT</version>
73+
<scope>provided</scope>
74+
</dependency>
6975
<dependency>
7076
<groupId>ninja.leaping.configurate</groupId>
7177
<artifactId>configurate-hocon</artifactId>

balancer/src/main/java/com/jaimemartz/playerbalancer/PlayerBalancer.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.jaimemartz.playerbalancer.commands.MainCommand;
66
import com.jaimemartz.playerbalancer.commands.ManageCommand;
77
import com.jaimemartz.playerbalancer.connection.ServerAssignRegistry;
8+
import com.jaimemartz.playerbalancer.helper.NetworkManager;
89
import com.jaimemartz.playerbalancer.helper.PasteHelper;
910
import com.jaimemartz.playerbalancer.helper.PlayerLocker;
1011
import com.jaimemartz.playerbalancer.listeners.*;
@@ -33,6 +34,7 @@ public class PlayerBalancer extends Plugin {
3334
private StatusManager statusManager;
3435
private SettingsHolder settings;
3536
private SectionManager sectionManager;
37+
private NetworkManager networkManager;
3638
private ConfigurationLoader<CommentedConfigurationNode> loader;
3739

3840
private FallbackCommand fallbackCommand;
@@ -126,6 +128,8 @@ private void execStart() {
126128
getProxy().getPluginManager().registerListener(this, reloadListener);
127129
}
128130

131+
networkManager = new NetworkManager(this);
132+
129133
sectionManager = new SectionManager(this);
130134
sectionManager.load();
131135

@@ -283,4 +287,8 @@ public StatusManager getStatusManager() {
283287
public FallbackCommand getFallbackCommand() {
284288
return fallbackCommand;
285289
}
290+
291+
public NetworkManager getNetworkManager() {
292+
return networkManager;
293+
}
286294
}

balancer/src/main/java/com/jaimemartz/playerbalancer/connection/provider/types/progressive/ProgressiveFillerProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public ServerInfo requestTarget(PlayerBalancer plugin, ServerSection section, Li
1717

1818
for (ServerInfo server : servers) {
1919
ServerStatus status = plugin.getStatusManager().getStatus(server);
20-
int count = server.getPlayers().size();
20+
int count = plugin.getNetworkManager().getPlayers(server);
2121

2222
if (count > max && count <= status.getMaximum()) {
2323
max = count;

balancer/src/main/java/com/jaimemartz/playerbalancer/connection/provider/types/progressive/ProgressiveLowestProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public ServerInfo requestTarget(PlayerBalancer plugin, ServerSection section, Li
1515
ServerInfo target = null;
1616

1717
for (ServerInfo server : servers) {
18-
int count = server.getPlayers().size();
18+
int count = plugin.getNetworkManager().getPlayers(server);
1919

2020
if (count < min) {
2121
min = count;

balancer/src/main/java/com/jaimemartz/playerbalancer/connection/provider/types/progressive/ProgressiveProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class ProgressiveProvider extends AbstractProvider {
1414
public ServerInfo requestTarget(PlayerBalancer plugin, ServerSection section, List<ServerInfo> servers, ProxiedPlayer player) {
1515
for (ServerInfo server : servers) {
1616
ServerStatus status = plugin.getStatusManager().getStatus(server);
17-
if (server.getPlayers().size() < status.getMaximum()) {
17+
if (plugin.getNetworkManager().getPlayers(server) < status.getMaximum()) {
1818
return server;
1919
}
2020
}

balancer/src/main/java/com/jaimemartz/playerbalancer/connection/provider/types/random/RandomFillerProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public ServerInfo requestTarget(PlayerBalancer plugin, ServerSection section, Li
1818
int max = Integer.MIN_VALUE;
1919

2020
for (ServerInfo server : servers) {
21-
int count = server.getPlayers().size();
21+
int count = plugin.getNetworkManager().getPlayers(server);
2222

2323
if (count >= max) {
2424
if (count > max) {

balancer/src/main/java/com/jaimemartz/playerbalancer/connection/provider/types/random/RandomLowestProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public ServerInfo requestTarget(PlayerBalancer plugin, ServerSection section, Li
1818
int min = Integer.MAX_VALUE;
1919

2020
for (ServerInfo server : servers) {
21-
int count = server.getPlayers().size();
21+
int count = plugin.getNetworkManager().getPlayers(server);
2222

2323
if (count <= min) {
2424
if (count < min) {
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.jaimemartz.playerbalancer.helper;
2+
3+
import com.imaginarycode.minecraft.redisbungee.RedisBungeeAPI;
4+
import com.jaimemartz.playerbalancer.PlayerBalancer;
5+
import net.md_5.bungee.api.config.ServerInfo;
6+
7+
public class NetworkManager {
8+
9+
private final PlayerBalancer plugin;
10+
11+
public NetworkManager(PlayerBalancer plugin) {
12+
this.plugin = plugin;
13+
}
14+
15+
public int getPlayers(ServerInfo server) {
16+
if (plugin.getSettings().getGeneralProps().isRedisBungee()) {
17+
try {
18+
return RedisBungeeAPI.getRedisBungeeApi().getPlayersOnServer(server.getName()).size();
19+
} catch (Exception e) {
20+
e.printStackTrace();
21+
}
22+
}
23+
24+
return server.getPlayers().size();
25+
}
26+
}

balancer/src/main/java/com/jaimemartz/playerbalancer/settings/props/GeneralProps.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ public class GeneralProps {
1919
@Setting(value = "plugin-messaging")
2020
private boolean pluginMessaging;
2121

22+
@Setting(value = "redis-bungee")
23+
private boolean redisBungee;
24+
2225
@Setting
2326
private String version;
2427
}

balancer/src/main/resources/default.conf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ general {
1111
# When true, the plugin will reload when you execute /greload
1212
auto-reload=true
1313

14+
# When true, the plugin will get player counts from RedisBungee (Limework Fork: https://www.spigotmc.org/resources/87700/)
15+
redis-bungee=false
16+
1417
# When true, this plugin will print less messages when loading
1518
silent=false
1619

0 commit comments

Comments
 (0)