102 lines
4.0 KiB
Java
102 lines
4.0 KiB
Java
package de.jatitv.commandguiv2.Bungee;
|
|
|
|
import de.jatitv.commandguiv2.Spigot.objects.Obj_Select;
|
|
import de.jatitv.commandguiv2.Util;
|
|
import net.md_5.bungee.BungeeCord;
|
|
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.lib.Bungee.Lib.messages.Bsend;
|
|
|
|
import java.io.*;
|
|
import java.util.logging.Logger;
|
|
|
|
public class BListener implements Listener {
|
|
@EventHandler
|
|
public void onPluginmessage(PluginMessageEvent event) {
|
|
if (event.getTag().equalsIgnoreCase("cgui:bungee")) {
|
|
|
|
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(event.getData()));
|
|
try {
|
|
String channel = stream.readUTF();
|
|
String input = stream.readUTF();
|
|
if (channel.equals("cgui-Console")) {
|
|
ProxyServer.getInstance().getConsole().sendMessage("Command Console: "+ input);
|
|
ProxyServer.getInstance().getPluginManager().dispatchCommand(ProxyServer.getInstance().getConsole(), input);
|
|
} else {
|
|
ProxiedPlayer player = ProxyServer.getInstance().getPlayer(channel);
|
|
if (player != null) {
|
|
ProxyServer.getInstance().getConsole().sendMessage("Command " + player +": "+ input);
|
|
ProxyServer.getInstance().getPluginManager().dispatchCommand(player, input);
|
|
}
|
|
}
|
|
} catch (IOException e) {
|
|
Util.sendTryCatch(Obj_Select.class, e.getStackTrace()[0]);
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onJoin(PostLoginEvent e) {
|
|
ProxiedPlayer player = e.getPlayer();
|
|
sendToSpigotPlayer(player.getName(), true);
|
|
/*
|
|
if (BMySQL.Enable) {
|
|
BMySQL.query("INSERT INTO `gui-bungeeplayer` (`UUID`, `Name`, `Online`) VALUES ('" + player.getUniqueId() + "', '" + player.getName()
|
|
+ "', 'true') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Online` = 'true';");
|
|
}
|
|
*/
|
|
}
|
|
|
|
@EventHandler
|
|
public void onDisconnect(PlayerDisconnectEvent e) {
|
|
ProxiedPlayer player = e.getPlayer();
|
|
sendToSpigotPlayer(e.getPlayer().getName(), false);
|
|
/*
|
|
if (BMySQL.Enable) {
|
|
BMySQL.query("INSERT INTO `gui-bungeeplayer` (`UUID`, `Name`, `Online`) VALUES ('" + player.getUniqueId() + "', '" + player.getName()
|
|
+ "', 'true') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Online` = 'false';");
|
|
}
|
|
*/
|
|
|
|
}
|
|
|
|
public static void sendToSpigotPlayer(String name, Boolean join) {
|
|
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
|
DataOutputStream output = new DataOutputStream(stream);
|
|
try {
|
|
if (join) {
|
|
output.writeUTF("join");
|
|
} else {
|
|
output.writeUTF("left");
|
|
}
|
|
output.writeUTF(name);
|
|
} catch (IOException e) {
|
|
Logger.getLogger(e.getMessage());
|
|
}
|
|
BungeeCord.getInstance().getServers().values().stream().forEach((server) -> {
|
|
|
|
server.sendData("cgui:onlinepl", stream.toByteArray());
|
|
});
|
|
}
|
|
|
|
public static void sendToSpigotDeleteAll() {
|
|
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
|
DataOutputStream output = new DataOutputStream(stream);
|
|
try {
|
|
output.writeUTF("clear");
|
|
output.writeUTF("");
|
|
} catch (IOException e) {
|
|
Logger.getLogger(e.getMessage());
|
|
}
|
|
BungeeCord.getInstance().getServers().values().stream().forEach((server) -> {
|
|
server.sendData("cgui:onlinepl", stream.toByteArray());
|
|
});
|
|
}
|
|
}
|