mirror of
https://github.com/BGHDDevelopment/PlayerBalancer.git
synced 2024-10-02 09:17:26 +02:00
Fix channels for newer spigot versions
This commit is contained in:
parent
4caae18e6a
commit
8f1fbd234e
@ -15,23 +15,26 @@ import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class PluginMessageManager implements PluginMessageListener {
|
||||
private static final String PB_CHANNEL = "playerbalancer:main",
|
||||
BC_CHANNEL = "bungeecord:main";
|
||||
|
||||
private final Multimap<MessageContext, Consumer<ByteArrayDataInput>> contexts = LinkedHashMultimap.create();
|
||||
private final PlayerBalancerAddon plugin;
|
||||
|
||||
public PluginMessageManager(PlayerBalancerAddon plugin) {
|
||||
this.plugin = plugin;
|
||||
|
||||
plugin.getServer().getMessenger().registerIncomingPluginChannel(plugin, "PlayerBalancer", this);
|
||||
plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "PlayerBalancer");
|
||||
plugin.getServer().getMessenger().registerIncomingPluginChannel(plugin, PB_CHANNEL, this);
|
||||
plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, PB_CHANNEL);
|
||||
|
||||
//In case we need to use BungeeCord channels
|
||||
plugin.getServer().getMessenger().registerIncomingPluginChannel(plugin, "BungeeCord", this);
|
||||
plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "BungeeCord");
|
||||
plugin.getServer().getMessenger().registerIncomingPluginChannel(plugin, BC_CHANNEL, this);
|
||||
plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, BC_CHANNEL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPluginMessageReceived(String channel, Player player, byte[] message) {
|
||||
if (channel.equals("PlayerBalancer")) {
|
||||
if (channel.equals(PB_CHANNEL)) {
|
||||
ByteArrayDataInput in = ByteStreams.newDataInput(message);
|
||||
String subchannel = in.readUTF();
|
||||
|
||||
@ -50,14 +53,14 @@ public class PluginMessageManager implements PluginMessageListener {
|
||||
ByteArrayDataOutput out = ByteStreams.newDataOutput();
|
||||
out.writeUTF("Connect");
|
||||
out.writeUTF(section);
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
player.sendPluginMessage(plugin, PB_CHANNEL, out.toByteArray());
|
||||
}
|
||||
|
||||
public void fallbackPlayer(Player player) {
|
||||
ByteArrayDataOutput out = ByteStreams.newDataOutput();
|
||||
out.writeUTF("FallbackPlayer");
|
||||
out.writeUTF(player.getName());
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
player.sendPluginMessage(plugin, PB_CHANNEL, out.toByteArray());
|
||||
}
|
||||
|
||||
public boolean getSectionByName(String section, Consumer<String> consumer) {
|
||||
@ -71,12 +74,12 @@ public class PluginMessageManager implements PluginMessageListener {
|
||||
out.writeUTF(section);
|
||||
|
||||
contexts.put(new MessageContext(
|
||||
"PlayerBalancer",
|
||||
PB_CHANNEL,
|
||||
"GetSectionByName",
|
||||
player.getUniqueId()
|
||||
), (response) -> consumer.accept(response.readUTF()));
|
||||
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
player.sendPluginMessage(plugin, PB_CHANNEL, out.toByteArray());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -91,12 +94,12 @@ public class PluginMessageManager implements PluginMessageListener {
|
||||
out.writeUTF(server);
|
||||
|
||||
contexts.put(new MessageContext(
|
||||
"PlayerBalancer",
|
||||
PB_CHANNEL,
|
||||
"GetSectionByServer",
|
||||
player.getUniqueId()
|
||||
), (response) -> consumer.accept(response.readUTF()));
|
||||
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
player.sendPluginMessage(plugin, PB_CHANNEL, out.toByteArray());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -106,12 +109,12 @@ public class PluginMessageManager implements PluginMessageListener {
|
||||
out.writeUTF(player.getName());
|
||||
|
||||
contexts.put(new MessageContext(
|
||||
"PlayerBalancer",
|
||||
PB_CHANNEL,
|
||||
"GetSectionOfPlayer",
|
||||
player.getUniqueId()
|
||||
), (response) -> consumer.accept(response.readUTF()));
|
||||
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
player.sendPluginMessage(plugin, PB_CHANNEL, out.toByteArray());
|
||||
}
|
||||
|
||||
public boolean getServerStatus(String server, Consumer<String> consumer) {
|
||||
@ -125,12 +128,12 @@ public class PluginMessageManager implements PluginMessageListener {
|
||||
out.writeUTF(player.getName());
|
||||
|
||||
contexts.put(new MessageContext(
|
||||
"PlayerBalancer",
|
||||
PB_CHANNEL,
|
||||
"GetServerStatus",
|
||||
player.getUniqueId()
|
||||
), (response) -> consumer.accept(response.readUTF()));
|
||||
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
player.sendPluginMessage(plugin, PB_CHANNEL, out.toByteArray());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -145,32 +148,32 @@ public class PluginMessageManager implements PluginMessageListener {
|
||||
out.writeUTF(section);
|
||||
|
||||
contexts.put(new MessageContext(
|
||||
"PlayerBalancer",
|
||||
PB_CHANNEL,
|
||||
"GetSectionPlayerCount",
|
||||
player.getUniqueId()
|
||||
), (response) -> consumer.accept(response.readInt()));
|
||||
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
player.sendPluginMessage(plugin, PB_CHANNEL, out.toByteArray());
|
||||
return true;
|
||||
}
|
||||
|
||||
public void clearPlayerBypass(Player player) {
|
||||
ByteArrayDataOutput out = ByteStreams.newDataOutput();
|
||||
out.writeUTF("ClearPlayerBypass");
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
player.sendPluginMessage(plugin, PB_CHANNEL, out.toByteArray());
|
||||
}
|
||||
|
||||
public void setPlayerBypass(Player player) {
|
||||
ByteArrayDataOutput out = ByteStreams.newDataOutput();
|
||||
out.writeUTF("SetPlayerBypass");
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
player.sendPluginMessage(plugin, PB_CHANNEL, out.toByteArray());
|
||||
}
|
||||
|
||||
public void bypassConnect(Player player, String server) {
|
||||
ByteArrayDataOutput out = ByteStreams.newDataOutput();
|
||||
out.writeUTF("BypassConnect");
|
||||
out.writeUTF(server);
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
player.sendPluginMessage(plugin, PB_CHANNEL, out.toByteArray());
|
||||
}
|
||||
|
||||
public boolean clearStatusOverride(String server) {
|
||||
@ -182,7 +185,7 @@ public class PluginMessageManager implements PluginMessageListener {
|
||||
ByteArrayDataOutput out = ByteStreams.newDataOutput();
|
||||
out.writeUTF("ClearStatusOverride");
|
||||
out.writeUTF(server);
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
player.sendPluginMessage(plugin, PB_CHANNEL, out.toByteArray());
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -197,7 +200,7 @@ public class PluginMessageManager implements PluginMessageListener {
|
||||
out.writeUTF("SetStatusOverride");
|
||||
out.writeUTF(server);
|
||||
out.writeBoolean(status);
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
player.sendPluginMessage(plugin, PB_CHANNEL, out.toByteArray());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -42,6 +42,7 @@ public class PlayerBalancer extends Plugin {
|
||||
private Listener connectListener, kickListener, reloadListener, pluginMessageListener;
|
||||
|
||||
public static final String LOG_FILE_PATTERN = "balancer.log";
|
||||
public static final String PB_CHANNEL = "playerbalancer:main";
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
@ -147,7 +148,7 @@ public class PlayerBalancer extends Plugin {
|
||||
getProxy().getPluginManager().registerListener(this, connectListener);
|
||||
|
||||
if (settings.getGeneralProps().isPluginMessaging()) {
|
||||
getProxy().registerChannel("PlayerBalancer");
|
||||
getProxy().registerChannel(PB_CHANNEL);
|
||||
|
||||
getProxy().getPluginManager().registerListener(this, statusManager);
|
||||
|
||||
@ -234,7 +235,7 @@ public class PlayerBalancer extends Plugin {
|
||||
|
||||
if (settings.getGeneralProps().isPluginMessaging()) {
|
||||
if (pluginMessageListener != null) {
|
||||
getProxy().unregisterChannel("PlayerBalancer");
|
||||
getProxy().unregisterChannel(PB_CHANNEL);
|
||||
getProxy().getPluginManager().unregisterListener(pluginMessageListener);
|
||||
pluginMessageListener = null;
|
||||
}
|
||||
|
@ -21,6 +21,8 @@ import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import static com.jaimemartz.playerbalancer.PlayerBalancer.PB_CHANNEL;
|
||||
|
||||
public class PluginMessageListener implements Listener {
|
||||
private final PlayerBalancer plugin;
|
||||
private final Gson gson;
|
||||
@ -40,7 +42,7 @@ public class PluginMessageListener implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onPluginMessage(PluginMessageEvent event) {
|
||||
if (event.getTag().equals("PlayerBalancer") && event.getSender() instanceof Server) {
|
||||
if (event.getTag().equals(PB_CHANNEL) && event.getSender() instanceof Server) {
|
||||
ByteArrayDataInput in = ByteStreams.newDataInput(event.getData());
|
||||
String request = in.readUTF();
|
||||
ServerInfo sender = ((Server) event.getSender()).getInfo();
|
||||
@ -91,7 +93,7 @@ public class PluginMessageListener implements Listener {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
sender.sendData("PlayerBalancer", stream.toByteArray());
|
||||
sender.sendData(PB_CHANNEL, stream.toByteArray());
|
||||
break;
|
||||
}
|
||||
|
||||
@ -117,7 +119,7 @@ public class PluginMessageListener implements Listener {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
sender.sendData("PlayerBalancer", stream.toByteArray());
|
||||
sender.sendData(PB_CHANNEL, stream.toByteArray());
|
||||
break;
|
||||
}
|
||||
|
||||
@ -140,7 +142,7 @@ public class PluginMessageListener implements Listener {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
sender.sendData("PlayerBalancer", stream.toByteArray());
|
||||
sender.sendData(PB_CHANNEL, stream.toByteArray());
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -162,7 +164,7 @@ public class PluginMessageListener implements Listener {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
sender.sendData("PlayerBalancer", stream.toByteArray());
|
||||
sender.sendData(PB_CHANNEL, stream.toByteArray());
|
||||
break;
|
||||
}
|
||||
|
||||
@ -184,7 +186,7 @@ public class PluginMessageListener implements Listener {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
sender.sendData("PlayerBalancer", stream.toByteArray());
|
||||
sender.sendData(PB_CHANNEL, stream.toByteArray());
|
||||
}
|
||||
|
||||
case "ClearPlayerBypass": {
|
||||
|
@ -17,6 +17,8 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static com.jaimemartz.playerbalancer.PlayerBalancer.PB_CHANNEL;
|
||||
|
||||
public class StatusManager implements Listener {
|
||||
private final PlayerBalancer plugin;
|
||||
private final ServerCheckerProps props;
|
||||
@ -121,7 +123,7 @@ public class StatusManager implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onPluginMessage(PluginMessageEvent event) {
|
||||
if (event.getTag().equals("PlayerBalancer") && event.getSender() instanceof Server) {
|
||||
if (event.getTag().equals(PB_CHANNEL) && event.getSender() instanceof Server) {
|
||||
ByteArrayDataInput in = ByteStreams.newDataInput(event.getData());
|
||||
String request = in.readUTF();
|
||||
ServerInfo sender = ((Server) event.getSender()).getInfo();
|
||||
|
Loading…
Reference in New Issue
Block a user