Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] BungeeCord, ProxyServer, ConsolCommand


Rekomendowane odpowiedzi

Opublikowano

W jaki sposób napisać komendę która będzie wykonywała druga komendę na innym serwerze przez konsole ?

 

 

Zaczęłam tak ;

if(args[0].equalsIgnoreCase("test")){
        if(args.length == 2){
                 ProxyServer.getInstance().getServerInfo(args[1]);
       }
}
Opublikowano

Tak jak kolega wyżej.

 

Tu masz przykład:

 Bungee (twoja klasa musi implementować Listener oraz musi zostać zarejestrowana):

public void onEnable() { BungeeCord.getInstance().registerChannel("Komendy"); ProxyServer.getInstance().getPluginManager().registerListener(this, this); }

@EventHandler
public void onMessage(PluginMessageEvent e) {
	if(e.getTag().equals("Komendy")) {
		ByteArrayDataInput in = ByteStreams.newDataInput(e.getData());
		String server = in.readUTF();
                String cmd = in.readUTF();
		sendMessage(s, ProxyServer.getInstance().getServer(s));
	}
}

public void sendMessage(String cmd, ServerInfo server) {
	ByteArrayOutputStream stream = new ByteArrayOutputStream();
	DataOutputStream out = new DataOutputStream(stream);
	out.writeUTF(cmd);
	server.sendData("Komendy", stream.toByteArray());
}

 Bukkit:

public class Main extends JavaPlugin implements PluginMessageListener {
	@Override
	public void onEnable() {
		this.getServer().getMessenger().registerOutgoingPluginChannel(this, "Komendy");
		this.getServer().getMessenger().registerIncomingPluginChannel(this, "Komendy", this);
	}
	 
	@Override
	public void onPluginMessageReceived(String channel, Player player, byte[] message) {
		if(!channel.equals("Komendy")) {
			return;
		}
	 
		DataInputStream in = new DataInputStream(new ByteArrayInputStream(message));
	 
		try {
			String cmd = in.readUTF();
			Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
		
	public void sendMessage(String server, String cmd) {
		if(Bukkit.getOnlinePlayers().length == 0) return;
		ByteArrayOutputStream b = new ByteArrayOutputStream();
		DataOutputStream out = new DataOutputStream(;
		try {
			out.writeUTF(server);
			out.writeUTF(cmd);
		} catch (Exception e) {
			e.printStackTrace();
		}
		Bukkit.getOnlinePlayers()[0].sendPluginMessage(this, "Komendy", b.toByteArray());
	}
} 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...