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