package net.diamonddominion.esaych.global;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import net.diamonddominion.esaych.CustomPlugin;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class BungeeGlobalCommand {
private static CustomPlugin plugin;
public BungeeGlobalCommand(CustomPlugin plugin) {
BungeeGlobalCommand.plugin = plugin;
}
public void enable() {
log("Enabled");
}
//2.55
public void onBungeeMessageReceived(String channel, Player player, byte[] message) {
DataInputStream in = new DataInputStream(new ByteArrayInputStream(message));
try {
String subChannel = in.readUTF();
if (subChannel.equals("DDCustomPlugin_GBCommand")) {
short len = in.readShort();
byte[] msgbytes = new byte[len];
in.readFully(msgbytes);
DataInputStream msgin = new DataInputStream(new ByteArrayInputStream(msgbytes));
String command = msgin.readUTF();
log(command);
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), command);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void sendCommand(String cmd) {
ByteArrayOutputStream b = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(b);
try {
out.writeUTF("Forward");
out.writeUTF("ALL");
out.writeUTF("DDCustomPlugin_GBCommand");
ByteArrayOutputStream msgbytes = new ByteArrayOutputStream();
DataOutputStream msgout = new DataOutputStream(msgbytes);
msgout.writeUTF(cmd);
out.writeShort(msgbytes.toByteArray().length);
out.write(msgbytes.toByteArray());
} catch (IOException e) {
e.printStackTrace();
}
// OR, if you don't need to send it to a specific player
Player p = Bukkit.getOnlinePlayers()[0];
p.sendPluginMessage(plugin, "BungeeCord", b.toByteArray());
}
public boolean onCommand(CommandSender sender, String[] args) {
if (!sender.hasPermission("customplugin.globalcommand"))
return true;
String cmd = "";
for (int i = 0; i < args.length; i++) {
cmd += args[i] + " ";
}
cmd = cmd.substring(0, cmd.length()-1);
sendCommand(cmd);
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), cmd);
sender.sendMessage(ChatColor.BLUE + "Complete: " + ChatColor.DARK_GRAY + "/" + cmd);
return true;
}
public void log(String info) {
plugin.getLogger().info("<BungeeGlobalCommand> " + info);
}
}