Skip to content

Commit b2cebaf

Browse files
committed
Added option to disable plugin messaging
1 parent c50bbf9 commit b2cebaf

File tree

5 files changed

+40
-18
lines changed

5 files changed

+40
-18
lines changed

Main Plugin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
<name>PlayerBalancer Plugin</name>
1313
<artifactId>playerbalancer-plugin</artifactId>
14-
<version>2.1.2.0</version>
14+
<version>2.1.2.1</version>
1515

1616
<build>
1717
<finalName>PlayerBalancer</finalName>

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/PlayerBalancer.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.jaimemartz.playerbalancer.manager.PlayerLocker;
1212
import com.jaimemartz.playerbalancer.ping.StatusManager;
1313
import com.jaimemartz.playerbalancer.section.SectionManager;
14+
import com.jaimemartz.playerbalancer.services.MessagingService;
1415
import com.jaimemartz.playerbalancer.settings.SettingsHolder;
1516
import net.md_5.bungee.api.plugin.Command;
1617
import net.md_5.bungee.api.plugin.Listener;
@@ -37,7 +38,8 @@ public class PlayerBalancer extends Plugin {
3738
private ConfigurationLoader<CommentedConfigurationNode> loader;
3839
private FallbackService fallbackService;
3940
private Command mainCommand, manageCommand;
40-
private Listener connectListener, kickListener, messageListener, reloadListener;
41+
private MessagingService messagingService;
42+
private Listener connectListener, kickListener, reloadListener;
4143

4244
@Override
4345
public void onEnable() {
@@ -101,6 +103,7 @@ private void enable() {
101103
sectionManager.load();
102104

103105
statusManager = new StatusManager(this);
106+
104107
if (settings.getServerCheckerProps().isEnabled()) {
105108
statusManager.start();
106109
}
@@ -111,21 +114,21 @@ private void enable() {
111114
getProxy().getPluginManager().registerCommand(this, fallbackService);
112115
}
113116

114-
getProxy().getPluginManager().registerListener(this, fallbackService);
115-
116117
connectListener = new ServerConnectListener(this);
117118
getProxy().getPluginManager().registerListener(this, connectListener);
118119

119-
messageListener = new PluginMessageListener(this);
120-
getProxy().getPluginManager().registerListener(this, messageListener);
120+
if (settings.getGeneralProps().isPluginMessaging()) {
121+
getProxy().registerChannel("PlayerBalancer");
122+
messagingService = new MessagingService(this);
123+
getProxy().getPluginManager().registerListener(this, fallbackService);
124+
getProxy().getPluginManager().registerListener(this, messagingService);
125+
}
121126

122127
manageCommand = new ManageCommand(this);
123128
getProxy().getPluginManager().registerCommand(this, manageCommand);
124129

125130
getProxy().getPluginManager().registerListener(this, new PlayerDisconnectListener(this));
126131

127-
getProxy().registerChannel("PlayerBalancer");
128-
129132
PasteHelper.reset();
130133

131134
if (settings.getKickHandlerProps().isEnabled()) {
@@ -180,8 +183,11 @@ private void disable() {
180183
getProxy().getPluginManager().unregisterListener(connectListener);
181184
connectListener = null;
182185

183-
getProxy().getPluginManager().unregisterListener(messageListener);
184-
messageListener = null;
186+
if (settings.getGeneralProps().isPluginMessaging()) {
187+
getProxy().unregisterChannel("PlayerBalancer");
188+
getProxy().getPluginManager().unregisterListener(messagingService);
189+
messagingService = null;
190+
}
185191

186192
getProxy().getPluginManager().unregisterCommand(manageCommand);
187193
manageCommand = null;

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/listeners/PluginMessageListener.java renamed to Main Plugin/src/main/java/com/jaimemartz/playerbalancer/services/MessagingService.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
package com.jaimemartz.playerbalancer.listeners;
1+
package com.jaimemartz.playerbalancer.services;
22

33
import com.google.common.io.ByteArrayDataInput;
44
import com.google.common.io.ByteStreams;
5-
import com.google.gson.*;
5+
import com.google.gson.Gson;
6+
import com.google.gson.GsonBuilder;
7+
import com.google.gson.JsonSerializer;
68
import com.jaimemartz.playerbalancer.PlayerBalancer;
79
import com.jaimemartz.playerbalancer.connection.ConnectionIntent;
810
import com.jaimemartz.playerbalancer.section.ServerSection;
9-
import com.jaimemartz.playerbalancer.utils.ServerInfoAdapter;
1011
import net.md_5.bungee.api.config.ServerInfo;
1112
import net.md_5.bungee.api.connection.ProxiedPlayer;
1213
import net.md_5.bungee.api.connection.Server;
@@ -17,18 +18,16 @@
1718
import java.io.ByteArrayOutputStream;
1819
import java.io.DataOutputStream;
1920
import java.io.IOException;
20-
import java.lang.reflect.Type;
21-
import java.util.Collection;
22-
import java.util.stream.Collectors;
2321

24-
public class PluginMessageListener implements Listener {
22+
public class MessagingService implements Listener {
2523
private final PlayerBalancer plugin;
2624
private final Gson gson;
2725

28-
public PluginMessageListener(PlayerBalancer plugin) {
26+
public MessagingService(PlayerBalancer plugin) {
2927
this.plugin = plugin;
3028
GsonBuilder builder = new GsonBuilder();
3129

30+
//Only serialize the name of ServerInfo
3231
builder.registerTypeAdapter(ServerInfo.class, (JsonSerializer<ServerInfo>) (server, type, context) ->
3332
context.serialize(server.getName())
3433
);
@@ -168,3 +167,4 @@ public void onPluginMessage(PluginMessageEvent event) {
168167
}
169168
}
170169
}
170+

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/settings/props/GeneralProps.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ public class GeneralProps {
1717
@Setting(value = "redis-bungee")
1818
private boolean redisBungee;
1919

20+
@Setting(value = "plugin-messaging")
21+
private boolean pluginMessaging;
22+
2023
@Setting
2124
private String version;
2225

@@ -52,6 +55,14 @@ public void setRedisBungee(boolean redisBungee) {
5255
this.redisBungee = redisBungee;
5356
}
5457

58+
public boolean isPluginMessaging() {
59+
return pluginMessaging;
60+
}
61+
62+
public void setPluginMessaging(boolean pluginMessaging) {
63+
this.pluginMessaging = pluginMessaging;
64+
}
65+
5566
public String getVersion() {
5667
return version;
5768
}
@@ -67,6 +78,7 @@ public String toString() {
6778
", silent=" + silent +
6879
", autoReload=" + autoReload +
6980
", redisBungee=" + redisBungee +
81+
", pluginMessaging=" + pluginMessaging +
7082
", version='" + version + '\'' +
7183
'}';
7284
}

Main Plugin/src/main/resources/default.conf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ general {
1717
# When true, this plugin will print less messages when loading
1818
silent=false
1919

20+
# When true, spigot plugins will be able to contact with this plugin
21+
# Do not disable if you are using the addon!
22+
plugin-messaging=true
23+
2024
# Do not modify this
2125
version="${project.version}"
2226
}

0 commit comments

Comments
 (0)