24package com.dreamfirestudios.dreamcore.DreamMessagingChannel;
26import com.google.common.io.ByteArrayDataInput;
27import com.google.common.io.ByteStreams;
28import org.bukkit.entity.Player;
29import org.bukkit.plugin.java.JavaPlugin;
30import org.bukkit.plugin.messaging.PluginMessageListener;
32import java.io.ByteArrayInputStream;
33import java.io.DataInputStream;
34import java.util.logging.Level;
75 if (plugin ==
null)
return;
80 final ByteArrayDataInput in = ByteStreams.newDataInput(message);
81 final String sub = in.readUTF();
85 final String server = in.readUTF();
86 final int count = in.readInt();
92 final String subChannel = in.readUTF();
93 final short len = in.readShort();
94 final byte[] payload =
new byte[len];
95 in.readFully(payload);
101 final String subChannel = in.readUTF();
102 final short len = in.readShort();
103 final byte[] payload =
new byte[len];
104 in.readFully(payload);
113 }
catch (Throwable t) {
114 plugin.getLogger().log(Level.SEVERE,
"Error handling plugin message on " + channel, t);
141 if (plugin !=
null) {
142 plugin.getLogger().info(
"PlayerCount for " + server +
": " + count);
161 protected void onForward(String subChannel,
byte[] payload, Player receiver) {
183 if (plugin !=
null) {
184 plugin.getLogger().fine(
"Unknown Bungee subchannel: " + sub);
Utility class for handling BungeeCord plugin messaging channels in Paper/Spigot.
static final String SUB_PLAYER_COUNT
static final String SUB_FORWARD
static final String SUB_FORWARD_TO_PLAYER
static final String BUNGEE_CHANNEL
Outer Bungee channel name (constant).
Base listener for BungeeCord plugin messages (channel: "BungeeCord").
void onPlayerCount(String server, int count)
Called when PlayerCount response is received.
abstract JavaPlugin getOwningPlugin()
Provide the owning plugin instance for logging and registration.
String getChannelName(JavaPlugin plugin)
Returns the plugin messaging channel name to listen on.
void onUnknownSubchannel(String sub, byte[] raw, Player player)
Called when an unknown subcommand is encountered.
final void onPluginMessageReceived(String channel, Player player, byte[] message)
Internal dispatcher for plugin messages; do not override.
void onForward(String subChannel, byte[] payload, Player receiver)
Called when a broadcast Forward payload is received.
void onForwardToPlayer(String subChannel, byte[] payload, Player receiver)
Called when a targeted ForwardToPlayer payload is received.