Welcome to Bukkit France

Inscrivez-vous maintenant pour profiter d'un accès total à tout le contenu offert par la meilleur communauté Bukkit française ! Une fois inscrit et connecté, vous pourrez contribuez à la communauté en postant vos propres sujets et questions ou en répondant à ceux existants. Vous pourrez aussi customiser votre profil, recevoir des points de réputations, communiquer avec les autres membres via le chat, et plus encore! 

Skyost_

BungeeUtils - Communiquer avec BungeeCord facilement

13 messages dans ce sujet

Hey, voici le 2ème tuto que je vous fais en moins de 30 min, et je souhaitez vous parler de ma classe BungeeUtils.

Concrètement cela permet de communiquer très facilement avec BungeeCord et ainsi d'assurer une liaison entre vos serveurs.

 

La classe est disponible ici.

 

Comment ça marche ?

Il n'y a qu'une méthode à retenir :

sendRequest(final MessageType type, final String server, final String destPlayer, final String arg, final String subChannel, final PluginMessageRecipient sender)

type :

  • CONNECT,
  • CONNECT_OTHER,
  • IP,
  • PLAYER_COUNT,
  • PLAYER_LIST,
  • GET_SERVERS,
  • MESSAGE,
  • GET_SERVER,
  • FORWARD,
  • UUID,
  • UUID_OTHER.

server : Le nom du serveur (facultatif).

destPlayer : Le joueur visé (facultatif).

args : L'argument (facultatif).

subChannel : Votre sub channel.

sender : Avec qui le message sera envoyé.

 

Par exemple, pour avoir l'IP d'un joueur :

sendRequest(MessageType.IP, null, null, null, null, Bukkit.getPlayer("Skyost");

Votre plugin devra implémenter l'interface PluginMessageListener, la réception des messages se fait dans onMessageReceived(...).

 

Des explications plus complètes sont disponibles ici.

 

Voilà voilà,

Encore une fois, les dons sont les bienvenus :

 

btn_donate_SM.gif

7 personnes aiment ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Crise de Skyost ?

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Crise de Skyost ?

Et c'est pas fini :P

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut ,

 

Possible d'avoir un exemple avec le PLAYER_COUNT & GET_SERVERS ?

 

Cdt

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut ,

 

Possible d'avoir un exemple avec le PLAYER_COUNT & GET_SERVERS ?

 

Cdt

Bah euh, c'est la même syntaxe :

sendRequest(MessageType.PLAYER_COUNT, "NameOfTheServer / ALL", null, null, null, Bukkit.getServer()); // PlayerCount.//...sendRequest(MessageType.GET_SERVERS, null, null, null, null, Bukkit.getServer()); // GetServers.
1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Bah euh, c'est la même syntaxe :

sendRequest(MessageType.PLAYER_COUNT, "NameOfTheServer / ALL", null, null, null, Bukkit.getServer()); // PlayerCount.//...sendRequest(MessageType.GET_SERVERS, null, null, null, null, Bukkit.getServer()); // GetServers.

 

Pourrais-tu mettre un exemple concrès stp ?

 

Quand j'utilise ta fonction sendRequest(), il me dit de la mettre en static, mais après ça fait des erreurs partout :P

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Pourrais-tu mettre un exemple concrès stp ?

 

Quand j'utilise ta fonction sendRequest(), il me dit de la mettre en static, mais après ça fait des erreurs partout :P

Nan mais c'est parce que il te faut une variable BungeeUtils.

Genre :

final BungeeUtils bungee = new BungeeUtils(...);

bungee.sendRequest(...);

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci ! :)

 

Mais .. :

 

[04:09:46] [server thread/WARN]: java.lang.NullPointerException
[04:09:46] [server thread/WARN]:     at fr.calimerau57.utils.BungeeUtils.onPluginMessageReceived(BungeeUtils.java:107)
[04:09:46] [server thread/WARN]:     at org.bukkit.plugin.messaging.StandardMessenger.dispatchIncomingMessage(StandardMessenger.java:427)
[04:09:46] [server thread/WARN]:     at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:1877)
[04:09:46] [server thread/WARN]:     at net.minecraft.server.v1_7_R3.PacketPlayInCustomPayload.a(PacketPlayInCustomPayload.java:31)
[04:09:46] [server thread/WARN]:     at net.minecraft.server.v1_7_R3.PacketPlayInCustomPayload.handle(PacketPlayInCustomPayload.java:43)
[04:09:46] [server thread/WARN]:     at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:176)
[04:09:46] [server thread/WARN]:     at net.minecraft.server.v1_7_R3.ServerConnection.c(ServerConnection.java:77)
[04:09:46] [server thread/WARN]:     at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:713)
[04:09:46] [server thread/WARN]:     at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:283)
[04:09:46] [server thread/WARN]:     at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:576)
[04:09:46] [server thread/WARN]:     at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:482)
[04:09:46] [server thread/WARN]:     at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628)

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci ! :)

Envoi ton code ?

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Je comprend pas trop comment ça fonctionne .. Comment on fait pour récupérer les données après ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Je comprend pas trop comment ça fonctionne .. Comment on fait pour récupérer les données après ?

 

Petit déterrage de topic d'il y a un ans ^^

 

Puis en plus, comme le port-salut, c'est marqué dessus.

 

Votre plugin devra implémenter l'interface PluginMessageListener, la réception des messages se fait dans onMessageReceived(...).

 

Des explications plus complètes sont disponibles ici.

Partager ce message


Lien à poster
Partager sur d’autres sites

Aurez tu un exemple à me proposer ? parce que la je ne comprend pas grand chose 

Partager ce message


Lien à poster
Partager sur d’autres sites

Suffit de lire la doc c'est pas sorcier.

Exemple (pour l'ip)

  @Override	    public void onPluginMessageReceived(String channel, Player p, byte[] message) {	    	  if (!channel.equals("BungeeCord")) {	    	      return;	    	    }	    	    ByteArrayDataInput in = ByteStreams.newDataInput(message);	    	    String subchannel = in.readUTF();	    	    if (subchannel.equals("IP")) {	    	    	String ip = in.readUTF();	    	    	int port = in.readInt();	    	    	System.out.println(ip+":"+port);	    	    }	    }

Et pour envoyer (soit tu utilise BungeeUtils soit tu le fait a l'ancienne):

 ByteArrayDataOutput out = ByteStreams.newDataOutput();	        	  out.writeUTF("IP");	        	  Player player = un joueur	        	  player.sendPluginMessage(this, "BungeeCord", out.toByteArray());

Avec bungeeUitls

sendRequest(MessageType.IP, null, null, null, null, player);

3 personnes aiment ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.