Ir para conteúdo

BungeeChannelApi


leonardosc

Posts Recomendados

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/leonardosnt/BungeeChannelApi

 

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.
Editado por leonardosc
Link para o comentário
Compartilhar em outros sites

Estava utilizando ontem que você passou no chat,porém ainda acho melhor SOCKETS;

 

São 2 coisas diferentes, esse projeto é pra você usar no lugar do https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/, que é bem mais trabalhoso de escrever.

Link para o comentário
Compartilhar em outros sites

São 2 coisas diferentes, esse projeto é pra você usar no lugar do https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/, que é bem mais trabalhoso de escrever.

BungeeChannelApi é um projeto simples que facilita muito obter informações dos servidores do BungeeCord. Me referi a esta frase.

 

Porém ficou muito com este projeto.Parabéns.

Link para o comentário
Compartilhar em outros sites

BungeeChannelApi é um projeto simples que facilita muito obter informações dos servidores do BungeeCord. Me referi a esta frase.

 

Porém ficou muito com este projeto.Parabéns.

 

Se você usa Socket pra isso, legal.

 

Até mudei essa descrição, ele não é apenas pra pegar informações, ele simplesmente "abstrai" toda a caralhada de código que você precisa escrever pra usar as "operações" do BungeeCord Plugin Messaging Channel.

 

Não sei se "abstrai" é realmente a palavra correta, mas creio que tenha entendido.

Editado por leonardosc
Link para o comentário
Compartilhar em outros sites

Parabéns, ele não tem nenhum método para pegar o motd ?, seria muito bom, uso o SOCKETS apenas por causa do motd!

 

Não, "ele simplesmente "abstrai" toda a caralhada de código que você precisa escrever pra usar as "operações" do BungeeCord Plugin Messaging Channel."

 

https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/#wikiPage

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...