• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Lier mon mod avec quelques plugins

    1.7.x
    1.7.10
    3
    10
    3071
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • N
      nargacu83 dernière édition par

      Bonjour,
      En développement d’un mod pour mon serveur KCauldron en 1.7.10, j’aimerais savoir si il est possible (même en sachant que cela est possible) et comment fait-on pour lier mon mod avec certains plugins.

      Je m’explique, j’ai créé une interface pour permettre aux joueurs de voir certaines informations à leur sujet (ex: Argent, Metier, Faction, etc…).
      En recherchant su internet en français puis en anglais, je n’ai malheureusement trouvé aucun indice qui pourrait m’aider.
      C’est pour cela que je me tourne vers vous en espérant de l’aide  🙂

      Est-il possible d’utiliser une variable d’un de ces plugins et l’afficher comme je le voudrais.

      Merci de votre compréhension.
      Quentin.

      Un aperçu de l’interface:
      :::

      :::

      1 réponse Dernière réponse Répondre Citer 0
      • SCAREX
        SCAREX dernière édition par

        Côté client ou serveur pour le mod ?

        Site web contenant mes scripts : http://SCAREXgaming.github.io

        Pas de demandes de support par MP ni par skype SVP.
        Je n'accepte sur skype que l…

        1 réponse Dernière réponse Répondre Citer 0
        • robin4002
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

          Salut,
          Côté serveur il faudrait que tu obtiennes la valeur des variables en utilisant de la réflexion. Ensuite tu envoies avec un paquet au client les valeurs pour les afficher dans ton gui.

          1 réponse Dernière réponse Répondre Citer 0
          • N
            nargacu83 dernière édition par

            Merci de vos réponses 🙂

            Le mod est coté client et serveur, je vais essayer de faire ce que tu me dit mais je ne savais pas comment je pouvais faire pour prendre des variables de plugins qui ne sont pas de moi comme iConomy, au début j’avais pensé aux packets mais le problème est toujours le même, trouver et utiliser les variables ^^

            J’ai pensé à faire un plugin qui récupère les variables de iConomy, etc … et à les envoyer, dans un fichier que le mod pourrait utiliser par exemple, ou une autre façon 🙂

            Merci 🙂

            1 réponse Dernière réponse Répondre Citer 0
            • N
              nargacu83 dernière édition par

              Alors j’ai longuement réfléchi après une journée de recherche, je n’arrive pas à envoyer de paquet à partir du plugin que j’ai fais ^^ J’ai regarder les tutos de forge sur les packets car je n’avais aucunes idées comment il fallait faire, j’ai laisser tomber l’idée mais aimerais quand même savoir comment on fait pour envoyer le packet depuis mon plugin et qu’il soit intercepté par le mod.

              Alors je vous remercie d’avance si vous voulez bien m’aider 🙂

              1 réponse Dernière réponse Répondre Citer 0
              • SCAREX
                SCAREX dernière édition par

                Si ton plugin utilise le même système que fml pour envoyer des messages, tu as juste as enregistré le channel de la même façon

                Site web contenant mes scripts : http://SCAREXgaming.github.io

                Pas de demandes de support par MP ni par skype SVP.
                Je n'accepte sur skype que l…

                1 réponse Dernière réponse Répondre Citer 0
                • N
                  nargacu83 dernière édition par

                  @‘SCAREX’:

                  Si ton plugin utilise le même système que fml pour envoyer des messages, tu as juste as enregistré le channel de la même façon

                  D’accord je ne savais pas, le plugin est fait de la même manière qu’un simple plugin Bukkit ou Spigot 🙂
                  Donc je vais chercher un peu plus sur une manière possible FML d’envoyer un packet par le plugin 🙂

                  1 réponse Dernière réponse Répondre Citer 0
                  • N
                    nargacu83 dernière édition par

                    Bonjour,
                    Ayant résolu le problème et oublié de le signaler sur ce post, je donne la solution pour quiconque en aurait besoin.

                    Il s’avère que la réponse est très simple pour communiquer entre le client et le serveur via des paquets (code exemple ci-dessous).

                    Il y a un tutoriel sur ce forum ici : https://www.minecraftforgefrance.fr/showthread.php?tid=1118

                    Créer la classe du paquet
                    Code exemple acquis sur : http://www.minecraftforge.net/forum/topic/19932-using-the-simple-network-implementation-simplenetworkwrapper-17/

                    public class MyMessage implements IMessage {
                    
                       private String text;
                    
                       public MyMessage() { }
                    
                       public MyMessage(String text) {
                           this.text = text;
                       }
                    
                       @Override
                       public void fromBytes(ByteBuf buf) {
                           text = ByteBufUtils.readUTF8String(buf); // this class is very useful in general for writing more complex objects
                       }
                    
                       @Override
                       public void toBytes(ByteBuf buf) {
                           ByteBufUtils.writeUTF8String(buf, text);
                       }
                    
                       public static class Handler implements IMessageHandler <mymessage, imessage="">{
                    
                           @Override
                           public IMessage onMessage(MyMessage message, MessageContext ctx) {
                               System.out.println(String.format("Received %s from %s", message.text, ctx.getServerHandler().playerEntity.getDisplayName()));
                               return null; // no response in this case
                           }
                       }
                    }
                    

                    Comment ça marche

                    @Override
                       public void fromBytes(ByteBuf buf) {
                           text = ByteBufUtils.readUTF8String(buf); // this class is very useful in general for writing more complex objects
                       }
                    
                       @Override
                       public void toBytes(ByteBuf buf) {
                           ByteBufUtils.writeUTF8String(buf, text);
                       }
                    

                    La fonction ***fromBytes a pour rôle de lire les données du paquet, lorsque qu’il est reçu par le (serveur ou client) et la fonction toBytes ***a pour rôle d’écrire les données dans le paquet.
                    Attention : vous devez mettre le même ordre dans les données quand vous les écrivez c’est très important, exemple:

                    @Override
                       public void fromBytes(ByteBuf buf) {
                           text = ByteBufUtils.readUTF8String(buf); //text est en premier dans la reception du paquet
                           unAutreTexte = readUTF8String(buf); //unAutreTexte est en deuxieme
                       }
                    
                       @Override
                       public void toBytes(ByteBuf buf) {
                           ByteBufUtils.writeUTF8String(buf, text); //text est en premier dans l'ecriture !!
                           ByteBufUtils.writeUTF8String(buf, unAutreTexte); //unAutreTexte est toujours deuxieme ici aussi
                       }
                    

                    Pour donner un exemple plus compréhensible, c’est comme si je vous envoie des objets et que vous deviez les attraper.
                    Exemple :
                    Je vous envoie une balle bleue puis une balle rouge.
                    Vous attraper la balle bleue en premier puis la rouge en deuxième.
                    Envoyer le paquet au serveur

                    classePrincipaleDuMod.network.sendToServer(new MyMessage("Mon super message!"));
                    

                    La reception du paquet

                    public static class Handler implements IMessageHandler <mymessage, imessage="">{
                    
                           @Override
                           public IMessage onMessage(MyMessage message, MessageContext ctx) {
                               System.out.println(String.format("Received %s from %s", message.text, ctx.getServerHandler().playerEntity.getDisplayName()));
                               return null; // no response in this case
                           }
                       }
                    

                    Dans la fonction onMessage, on reçoit un **message **et le **contexte **de réception de ce message.

                    Le **message **est tout simplement le contenu de votre paquet et le **contexte **est en général (à ce que j’ai compris) l’objet qui vous permet de traiter ce message comme bon vous semble.
                    Exemple :

                    @Override
                    public IMessage onMessage(MS_PacketTitleClient message, MessageContext ctx) {
                        if(ctx.side.isClient()){
                             System.out.println("Message reçu côté client");    
                       }
                        return null;
                    }
                    

                    En espérant que ce soit LA réponse que vous cherchiez.</mymessage,></mymessage,>

                    1 réponse Dernière réponse Répondre Citer 0
                    • robin4002
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                      Il y a aussi un tutoriel sur les packets sur notre forum 😉
                      Passes en résolu avec le bouton ^^

                      1 réponse Dernière réponse Répondre Citer 0
                      • N
                        nargacu83 dernière édition par

                        @‘robin4002’:

                        Il y a aussi un tutoriel sur les packets sur notre forum 😉
                        Passes en résolu avec le bouton ^^

                        Pas de soucis j’allais le faire ahah !

                        1 réponse Dernière réponse Répondre Citer 0
                        • 1 / 1
                        • Premier message
                          Dernier message
                        Design by Woryk
                        Contact / Mentions Légales

                        MINECRAFT FORGE FRANCE © 2018

                        Powered by NodeBB