BungeeChannelApi é um projeto simples que facilita o uso das "operações" que podem ser feitas com o BungeeCord Plugin Messaging Channel, como pegar o número de jogadores de um servidor, enviar um jogador para outro servidor e etc. Ele é bem pequeno, consiste em apenas 1 classe, caso queira utilizar basta pegar essa classe o jogar no seu projeto. (Em breve vou adicionar um tutorial pra maven)
Repositório: https://github.com/l...ungeeChannelApi
Exemplo de uso:
Pegando os jogadores online de um servidor na proxy:
BungeeChannelApi api = BungeeChannelApi.of(this); api.getPlayerCount("NOME DO SERVIDOR") .whenComplete((result, error) -> { System.out.println("Jogadores online: " + result); });
Maneira tradicional:
public class Test extends JavaPlugin implements PluginMessageListener { @Override public void onEnable() { this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); this.getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", this); } // Send a message requesting player count public void requestPlayerCount() { ByteArrayDataOutput out = ByteStreams.newDataOutput(); out.writeUTF("PlayerCount"); out.writeUTF("NOME DO SERVIDOR"); Player player = Iterables.getFirst(Bukkit.getOnlinePlayers(), null); player.sendPluginMessage(this, "BungeeCord", out.toByteArray()); } @Override public void onPluginMessageReceived(String channel, Player player, byte[] message) { if (!channel.equals("BungeeCord")) return; ByteArrayDataInput in = ByteStreams.newDataInput(message); String subchannel = in.readUTF(); if (subchannel.equals("PlayerCount")) { String server = in.readUTF(); int count = in.readInt(); System.out.println("Jogadores online: " + count); } } }
Enviar um jogador pra outro servidor:
BungeeChannelApi api = BungeeChannelApi.of(this); api.connect(jogador, "nome do servidor"); // jogador pode ser tanto um Player ou o nome de outro jogador.
Créditos:
- Leonardosc