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()); }); } }