100 lines
4.1 KiB
Java
100 lines
4.1 KiB
Java
package net.t2code.t2codelib.BUNGEE.api.bungeePlayers;
|
|
|
|
|
|
import net.md_5.bungee.api.ProxyServer;
|
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
|
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
|
|
import net.md_5.bungee.api.event.PluginMessageEvent;
|
|
import net.md_5.bungee.api.event.PostLoginEvent;
|
|
import net.md_5.bungee.api.plugin.Listener;
|
|
import net.md_5.bungee.event.EventHandler;
|
|
import net.t2code.t2codelib.BUNGEE.api.messages.T2CBsend;
|
|
import net.t2code.t2codelib.BUNGEE.system.T2CodeBMain;
|
|
import net.t2code.t2codelib.SPIGOT.api.bungeePlayers.T2CbungeePlayersEnum;
|
|
|
|
import java.io.*;
|
|
import java.util.logging.Logger;
|
|
|
|
public class T2CBbungeePlayers implements Listener {
|
|
|
|
@EventHandler
|
|
public void onJoin(PostLoginEvent e) {
|
|
sendToSpigotPlayer(e.getPlayer().getName(), T2CbungeePlayersEnum.JOIN, "");
|
|
}
|
|
|
|
@EventHandler
|
|
public void onDisconnect(PlayerDisconnectEvent e) {
|
|
sendToSpigotPlayer(e.getPlayer().getName(), T2CbungeePlayersEnum.QUIT, "");
|
|
}
|
|
|
|
public static void sendToSpigotPlayer(String name, T2CbungeePlayersEnum value, String uuid) {
|
|
switch (value) {
|
|
case JOIN:
|
|
case QUIT:
|
|
sendToSpigotPlayerExecute(name, value, uuid);
|
|
break;
|
|
case GIVEALL:
|
|
StringBuilder input = new StringBuilder();
|
|
for (ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) {
|
|
input.append(player.getName()).append(";");
|
|
}
|
|
sendToSpigotPlayerExecute(input.toString(), T2CbungeePlayersEnum.GIVEALL, uuid);
|
|
break;
|
|
}
|
|
}
|
|
|
|
private static void sendToSpigotPlayerExecute(String name, T2CbungeePlayersEnum value, String uuid) {
|
|
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
|
DataOutputStream output = new DataOutputStream(stream);
|
|
try {
|
|
output.writeUTF(value.name());
|
|
output.writeUTF(name);
|
|
output.writeUTF(uuid);
|
|
} catch (IOException e) {
|
|
Logger.getLogger(e.getMessage());
|
|
}
|
|
T2CBsend.debug(T2CodeBMain.getPlugin(), "PluginMessage received channel: t2c:bonlp");
|
|
T2CBsend.debug(T2CodeBMain.getPlugin(), "PluginMessage received subChannel: " + value.name());
|
|
T2CBsend.debug(T2CodeBMain.getPlugin(), "PluginMessage received input: " + name);
|
|
T2CBsend.debug(T2CodeBMain.getPlugin(), "PluginMessage received input2/uuid: " + uuid);
|
|
ProxyServer.getInstance().getServers().values().stream().forEach((server) -> {
|
|
server.sendData("t2c:bonlp", stream.toByteArray());
|
|
});
|
|
}
|
|
|
|
public static void sendToSpigotDeleteAll() {
|
|
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
|
DataOutputStream output = new DataOutputStream(stream);
|
|
try {
|
|
output.writeUTF(T2CbungeePlayersEnum.CLEAR.name());
|
|
output.writeUTF("");
|
|
output.writeUTF("");
|
|
} catch (IOException e) {
|
|
Logger.getLogger(e.getMessage());
|
|
}
|
|
ProxyServer.getInstance().getServers().values().stream().forEach((server) -> {
|
|
server.sendData("t2c:bonlp", stream.toByteArray());
|
|
});
|
|
}
|
|
|
|
@EventHandler
|
|
public void onPluginMessage(PluginMessageEvent event) {
|
|
if (event.getTag().equalsIgnoreCase("t2c:bonlp")) {
|
|
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(event.getData()));
|
|
event.setCancelled(true);
|
|
try {
|
|
T2CbungeePlayersEnum subChannel = T2CbungeePlayersEnum.valueOf(stream.readUTF());
|
|
String input = stream.readUTF();
|
|
|
|
T2CBsend.debug(T2CodeBMain.getPlugin(), "PluginMessage received channel: " + event.getTag());
|
|
T2CBsend.debug(T2CodeBMain.getPlugin(), "PluginMessage received subChannel: " + subChannel.name());
|
|
T2CBsend.debug(T2CodeBMain.getPlugin(), "PluginMessage received input/uuid: " + input);
|
|
|
|
sendToSpigotPlayer("", subChannel, input);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
}
|