MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    [1.7.2 ++] Le network

    Planifier Épinglé Verrouillé Déplacé Le réseau
    1.11.x1.12.x1.7.x1.8.x1.9.x
    66 Messages 20 Publieurs 40.0k Vues 4 Watching
    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.
    • DiabolicaTrixD Hors-ligne
      DiabolicaTrix Correcteurs Moddeurs confirmés
      dernière édition par

      Oui, mais c’est un example quand même de le faire avec un packet custom.

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

        Oui mais inutile, or Robin a fait un tuto vidéo dans lequel tout est expliqué

        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
        • DiabolicaTrixD Hors-ligne
          DiabolicaTrix Correcteurs Moddeurs confirmés
          dernière édition par

          Oui, mais ça concrétise quand même l’utilisation d’un packet. Ah oui, c’est pas faut pour la vidéo de robin.

          1 réponse Dernière réponse Répondre Citer 0
          • RedRelayR Hors-ligne
            RedRelay Moddeurs confirmés
            dernière édition par

            Si je montre comment faire une commande avec des paquets certains vont le faire dans leur mod alors qu’il ne faut pas utiliser les paquets pour les commandes. Certes, ce serait une illustration, mais pas un exemple 😉

            –------------------------------------------------------------------------------------
            Si tu trouves mon intervention pertinente, n'hésite pas a m…

            1 réponse Dernière réponse Répondre Citer 0
            • FolganskyF Hors-ligne
              Folgansky Correcteurs
              dernière édition par

              Je proposerais bien l’exemple d’un packet pour pouvoir utiliser une touche personnalisée parce que j’essaie de comprendre l’utilisation des packets, mais là je suis dans le potage complet.

              Bon exemple comme le Keyboard est uniquement côté Client, nan? ^^’

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

                Youtube Video

                1 réponse Dernière réponse Répondre Citer 0
                • FolganskyF Hors-ligne
                  Folgansky Correcteurs
                  dernière édition par

                  Oh! Terrible! XD

                  Merci pour ce lien.

                  1 réponse Dernière réponse Répondre Citer 0
                  • JackCarterSmithJ Hors-ligne
                    JackCarterSmith
                    dernière édition par

                    Okay okay, bon si j’écris cette réponse c’est parce que je suis un peu perdu avec les ‘packets’ ^^’
                    A vrai dire, je ne sais pas si c’est le bon post pour demander cela.

                    Je résume en gros ma situation, je dois adapter un code de la 1.6.4 vers la 1.7.10, tout marche bien sauf le système de packet qui est tout à refaire car il a complétement été changé !
                    D’un coté j’ai pu retrouvé les procédures que devais exécuter minecraft lorsqu’il recevait un packet avec un ‘id d’action’ (number-switch-case).

                       public void sendChangeToClient7()
                       {
                           ByteArrayOutputStream bos = new ByteArrayOutputStream(8);
                           DataOutputStream outputStream = new DataOutputStream(bos);
                    
                           try
                           {
                               outputStream.writeInt(7);                                      //Affectation de l'id d'opération
                               outputStream.writeInt(this.xCoord);                            //Renseigne les coordonnées du bloc en question
                               outputStream.writeInt(this.yCoord);
                               outputStream.writeInt(this.zCoord);
                               outputStream.writeInt(this.getOutputRate());                   //Ajoute les infos à transmettre sur le bloc
                           }
                           catch (Exception var4)
                           {
                               var4.printStackTrace();
                           }
                    
                           /*
                           Packet250CustomPayload packet = new Packet250CustomPayload();        //Créer le packet
                           packet.channel = "OB";                                              
                           packet.data = bos.toByteArray();
                           packet.length = bos.size();
                           PacketDispatcher.sendPacketToAllPlayers(packet);                     //Envoyer le packet
                           */
                           OrbitalBombardment.obNetwork.sendToAll(message); //Essaie début 1.7 (avis?)
                       }
                    

                    Voilà un exemple de l’une des fonctions permettant d’envoyer un packet de mise à jour pour le serveur et les autres clients connecté. J’ai pu retrouvé qu’elle été les données devant être envoyées par le packet.

                    Si je n’ai pas été très clair sur ma question, en voici une autre pour faire plus simple : j’ai relu plusieurs fois le tuto de blackout, mais je n’arrive toujours pas à me faire une représentation de l’ensemble des classes à faire et comment adapter ce qui reste de la 1.6 pour qu’elle tourne sous la 1.7 ?

                    Merci d’avance pour votre aide à toutes et à tous !

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

                      https://www.youtube.com/watch?v=YlQBEuEkBso
                      Youtube Video

                      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
                      • JackCarterSmithJ Hors-ligne
                        JackCarterSmith
                        dernière édition par

                        @‘SCAREX’:

                        https://www.youtube.com/watch?v=YlQBEuEkBso
                        Youtube Video

                        Merci mais j’avais bien regardé ces vidéos (elles me parlaient beaucoup plus que le reste des explications).
                        Peut être que je me perds dans la façon dont est fait un packet ? D’une façon est ce que les packets sont en faites une boite dans lequel on mets des données sérialisées avec l’instruction ‘toByte’ avant d’être envoyé à un récepteur spécifique, qui à sont tour extraira les données pour les traiter, est-ce bien cela ?

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

                          Globalement un paquet est une sorte de boîte où tu y enregistres des bits que tu envoies au joueur ou au serveur et ensuite les bits sont lus de façon à récupérer les variables derrières pour les traiter

                          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
                          • DeletedD Hors-ligne
                            Deleted
                            dernière édition par

                            Je pense que tu voulais dire des bits ?

                            1 réponse Dernière réponse Répondre Citer 0
                            • JackCarterSmithJ Hors-ligne
                              JackCarterSmith
                              dernière édition par

                              @‘SCAREX’:

                              Globalement un paquet est une sorte de boîte où tu y enregistres des bits que tu envoies au joueur ou au serveur et ensuite les bits sont lus de façon à récupérer les variables derrières pour les traiter

                              Et est-ce qu’il est possible de convertir une table de bits en bits pour être intégrer au message ou ça ne doit être que certains types de données uniquement ? Ce que je comptais faire, c’était de faire passer une table dans les paquets dont la première valeur serait le ‘id d’action’, une fois extrait par la classe message via la fonction onMessage(), il n’aura plus qu’à vérifier qu’elle est l’action à faire via une boucle conditionnel en ‘case’.
                              Je souhaiterais connaitre votre avis sur cette idée.

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

                                Tu peux écrire tout ce que tu veux, le seul truc c’est qu’il faut écrire dans l’ordre et lire dans le même ordre, tu peux très bien écrire une liste de bits, dans le tutoriel robin montre comment écrire une liste

                                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
                                • JackCarterSmithJ Hors-ligne
                                  JackCarterSmith
                                  dernière édition par

                                  @‘SCAREX’:

                                  Tu peux écrire tout ce que tu veux, le seul truc c’est qu’il faut écrire dans l’ordre et lire dans le même ordre, tu peux très bien écrire une liste de bites, dans le tutoriel robin montre comment écrire une liste

                                  Je vais les revoir à nouveaux, prendre des notes et mettre tous ça aux clairs se serra peut être plus simple.
                                  Merci.

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

                                    Un petit e en trop transforme complètement le sens d’un mot.
                                    Que viennent faire des pénis dans cette discussion ? C’est bits, pas bites x)
                                    Je modifies toutes ces fautes x)
                                    On est sur minecraft forge france ici, pas sur p***hub.com

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • JackCarterSmithJ Hors-ligne
                                      JackCarterSmith
                                      dernière édition par

                                      @‘Plaigon’:

                                      Je pense que tu voulais dire des bits ?

                                      @‘robin4002’:

                                      Un petit e en trop transforme complètement le sens d’un mot.
                                      Que viennent faire des pénis dans cette discussion ? C’est bits, pas bites x)
                                      Je modifies toutes ces fautes x)
                                      On est sur minecraft forge france ici, pas sur p***hub.com

                                      Je devrais avoir honte, l’important était de savoir de quoi on parler sans sous entendu ^^
                                      En revoyant la vidéo, j’avais pas remarquer le passage sur le channel de paquet… Je fais bien de noter 😛

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • JackCarterSmithJ Hors-ligne
                                        JackCarterSmith
                                        dernière édition par

                                        Après quelques nouveaux essais pour tenter de faire communiquer une suite d’entier via les paquets, je retombe sans cesse sur cette erreur que j’ai du mal à comprendre :

                                        [13:33:24] [Client thread/ERROR] [FML]: FMLIndexedMessageCodec exception caught
                                        io.netty.handler.codec.DecoderException: java.lang.NullPointerException
                                        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:?]
                                        at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?]
                                        at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
                                        at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
                                        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
                                        at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:?]
                                        at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?]
                                        at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
                                        at net.minecraft.client.multiplayer.PlayerControllerMP.updateController(PlayerControllerMP.java:317) [PlayerControllerMP.class:?]
                                        at net.minecraft.client.Minecraft.runTick(Minecraft.java:1693) [Minecraft.class:?]
                                        at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) [Minecraft.class:?]
                                        at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
                                        at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
                                        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_91]
                                        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_91]
                                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_91]
                                        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_91]
                                        at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                                        at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                                        at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
                                        at GradleStart.main(Unknown Source) [start/:?]
                                        Caused by: java.lang.NullPointerException
                                        at fr.jackcartersmith.ob.OBNetworkClient.fromBytes(OBNetworkClient.java:28) ~[OBNetworkClient.class:?]
                                        at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:17) ~[SimpleIndexedCodec.class:?]
                                        at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:7) ~[SimpleIndexedCodec.class:?]
                                        at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]
                                        at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:17) ~[FMLIndexedMessageToMessageCodec.class:?]
                                        at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:?]
                                        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:?]
                                        … 20 more
                                        [13:33:24] [Client thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
                                        io.netty.handler.codec.DecoderException: java.lang.NullPointerException
                                        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:?]
                                        at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?]
                                        at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
                                        at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
                                        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
                                        at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:?]
                                        at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?]
                                        at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
                                        at net.minecraft.client.multiplayer.PlayerControllerMP.updateController(PlayerControllerMP.java:317) [PlayerControllerMP.class:?]
                                        at net.minecraft.client.Minecraft.runTick(Minecraft.java:1693) [Minecraft.class:?]
                                        at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) [Minecraft.class:?]
                                        at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
                                        at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
                                        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_91]
                                        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_91]
                                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_91]
                                        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_91]
                                        at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                                        at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                                        at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
                                        at GradleStart.main(Unknown Source) [start/:?]
                                        Caused by: java.lang.NullPointerException
                                        at fr.jackcartersmith.ob.OBNetworkClient.fromBytes(OBNetworkClient.java:28) ~[OBNetworkClient.class:?]
                                        at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:17) ~[SimpleIndexedCodec.class:?]
                                        at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:7) ~[SimpleIndexedCodec.class:?]
                                        at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]
                                        at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:17) ~[FMLIndexedMessageToMessageCodec.class:?]
                                        at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:?]
                                        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:?]
                                        … 20 more
                                        

                                        Voici le bout de code concerné :

                                           private List <integer>dataArray;
                                        
                                           public OBNetworkClient() {}
                                        
                                           public OBNetworkClient(List <integer>dataArray) {
                                               this.dataArray = dataArray;
                                           }
                                        
                                           @Override
                                           public void fromBytes(ByteBuf buf){
                                               for (int i = 0; i < 5; i++){
                                                   this.dataArray.add(buf.readInt());
                                               }
                                           }
                                        
                                           @Override
                                           public void toBytes(ByteBuf buf){
                                               for (int i = 0; i < 5; i++){
                                                   buf.writeInt(this.dataArray.get(i));
                                               }
                                           }
                                        

                                        Quelqu’un aurait-il une idée sur le problème ?

                                        (Je suppose que le programme essaie de lire une valeur Int dans le flux, mais comme elle est absente pour je ne sais qu’elle raison, il lit du null)</integer></integer>

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • AymericRedA Hors-ligne
                                          AymericRed
                                          dernière édition par

                                          Dans ta fonction fromBytes, tu essayes d’ajouter ce que tu lis à la liste dataArray, sauf que cette liste est égale à null.

                                          Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                                          AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                                          Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • JackCarterSmithJ Hors-ligne
                                            JackCarterSmith
                                            dernière édition par

                                            @‘AymericRed’:

                                            Dans ta fonction fromBytes, tu essayes d’ajouter ce que tu lis à la liste dataArray, sauf que cette liste est égale à null.

                                            Je viens de changer

                                            private List <integer>dataArray;
                                            

                                            par

                                            private List <integer>dataArray = new ArrayList<integer>();
                                            

                                            Je n’ai plus l’erreur, merci.

                                            EDIT: Je vais chercher encore un peu avant de demander de l’aide ^^</integer></integer></integer>

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 2 / 4
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB