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.
    • 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
        • robin4002R Hors-ligne
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
          dernière édition par

          Tu peux envoyer la classe complète du paquet ?

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

            @‘robin4002’:

            Tu peux envoyer la classe complète du paquet ?

            package fr.jackcartersmith.ob;
            
            import java.util.ArrayList;
            import java.util.List;
            
            import cpw.mods.fml.common.network.simpleimpl.IMessage;
            import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
            import cpw.mods.fml.common.network.simpleimpl.MessageContext;
            import fr.jackcartersmith.ob.blocks.ExtenderTileEntity;
            import fr.jackcartersmith.ob.blocks.OverriderBlockTileEntity;
            import fr.jackcartersmith.ob.interfaces.PhotonRecieving;
            import fr.jackcartersmith.ob.interfaces.PhotonSending;
            import io.netty.buffer.ByteBuf;
            import net.minecraft.entity.player.EntityPlayerMP;
            
            public class OBNetworkClient implements IMessage
            {
               private List <integer>dataArray = new ArrayList<integer>();
            
               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));
                   }
               }
            
               public static class Handler implements IMessageHandler<obnetworkclient, imessage="">{
                   int function;
                   int x;
                   int y;
                   int z;
                   int data_value;
            
                   @Override
                   public IMessage onMessage(OBNetworkClient message, MessageContext ctx){
                       try{
                           this.function = message.dataArray.get(0);
                           this.x = message.dataArray.get(1);
                           this.y = message.dataArray.get(2);
                           this.z = message.dataArray.get(3);
                           this.data_value = message.dataArray.get(4);
                       }catch(Exception var8){
                           var8.printStackTrace();
                           return null;
                       }
            
                       System.out.println(this.function);
                       System.out.println(this.x);
                       System.out.println(this.y);
                       System.out.println(this.z);
                       System.out.println(this.data_value);
            
                       try{                
                           if (this.function == 1){
                               EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                               OverriderBlockTileEntity overrider = (OverriderBlockTileEntity)player.worldObj.getTileEntity(this.x, this.y, this.z);
            
                               if (overrider != null && overrider instanceof OverriderBlockTileEntity){
                                   overrider.currentCharge = this.data_value;
                               }
                           }
            
                           if (this.function == 3){
                               EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                               ExtenderTileEntity extender = (ExtenderTileEntity)player.worldObj.getTileEntity(this.x, this.y, this.z);
            
                               if (extender instanceof ExtenderTileEntity){
                                   extender.currentCharge = this.data_value;
                               }
                           }
            
                           if (this.function == 5){
                               EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                               OverriderBlockTileEntity overrider = (OverriderBlockTileEntity)player.worldObj.getTileEntity(this.x, this.y, this.z);
            
                               if (overrider instanceof OverriderBlockTileEntity){
                                   overrider.shotsLeft = this.data_value;
                               }
                           }
            
                           if (this.function == 7)
                           {
                               EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                               PhotonSending ext2 = (PhotonSending)player.worldObj.getTileEntity(this.x, this.y, this.z);
            
                               if (ext2 instanceof PhotonSending)
                               {
                                   ext2.setOutputRate(this.data_value);
                               }
                           }
            
                           if (this.function == 9)
                           {
                               EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                               PhotonSending ext2 = (PhotonSending)player.worldObj.getTileEntity(this.x, this.y, this.z);
            
                               if (ext2 instanceof PhotonSending)
                               {
                                   ext2.setScaledOutput(this.data_value);
                               }
                           }
            
                           if (this.function == 11)
                           {
                               EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                               PhotonSending ext2 = (PhotonSending)player.worldObj.getTileEntity(this.x, this.y, this.z);
            
                               if (ext2 instanceof PhotonSending)
                               {
                                   ext2.setListSize(this.data_value);
                               }
                           }
            
                           if (this.function == 13)
                           {
                               EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                               PhotonRecieving ext3 = (PhotonRecieving)player.worldObj.getTileEntity(this.x, this.y, this.z);
            
                               if (ext3 instanceof PhotonRecieving)
                               {
                                   ext3.setScaledOutput(this.data_value);
                               }
                           }
            
                           if (this.function == 15)
                           {
                               EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                               PhotonRecieving ext3 = (PhotonRecieving)player.worldObj.getTileEntity(this.x, this.y, this.z);
            
                               if (ext3 instanceof PhotonRecieving)
                               {
                                   ext3.setPowerIncoming(this.data_value);
                               }
                           }
            
                           if (this.function == 17)
                           {
                               EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                               PhotonRecieving ext3 = (PhotonRecieving)player.worldObj.getTileEntity(this.x, this.y, this.z);
            
                               System.out.println("DefenderPacket17Received!");
            
                               if (ext3 instanceof PhotonRecieving)
                               {
                                   ext3.setCurrentCharge(this.data_value);
                               }
                           }
            
                           if (this.function == 19)
                           {
                               System.out.println("DefenderPacket19Received!");
                               EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                               player.worldObj.playSoundEffect((double)this.x, (double)this.y, (double)this.z, "ob:defenderLock", 1.0F, 1.0F);
                           }
            
                           return null;
                       }catch (Exception var7){
                           var7.printStackTrace();
                           return null;
                       }
                   }
               }
            }
            
            

            @robin4002: Dans ta vidéo tu parles que selon si on est du coté client ou serveur du paquet, la déclaration ci-dessous est différente ? Si oui en quel(s) point(s) ?

            EntityPlayerMP player = ctx.getServerHandler().playerEntity;
            ```</obnetworkclient,></integer></integer></integer>
            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

              ctx.getServerHandler() n’est pas possible côté client.

              Côté client il faut utiliser Minecraft.getMinecraft().thePlayer pour avoir le joueur.

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

                @‘robin4002’:

                ctx.getServerHandler() n’est pas possible côté client.

                Côté client il faut utiliser Minecraft.getMinecraft().thePlayer pour avoir le joueur.

                C’est corrigé, ça marche enfin ^^

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

                  Bonjour, j’aiemrais récupré la liste des GameProfile du server pour l’afficher sur un GUI, sauf que avec le fromBytes, on ne peut mettre que int String bytes ect… mais pas GameProfile[] quellequ’un aurais une idée de comment faire?

                  Cordialement, le membre ayant le pseudo "ph1823"

                  Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                  Mon Twitter : https://twitter.com/ph1823
                  Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

                    Tu envoie un tableau de String contenant l’username, un tableau de string contenant les UUID (GameProfile.getId().toString()) puis quand tu récupère les tableaux tu peux utiliser :

                    
                    GameProfile profile = new GameProfile(UUID.fromString(uuidString), username);
                    
                    
                    1 réponse Dernière réponse Répondre Citer 0
                    • Phenix246P Hors-ligne
                      Phenix246 Rédacteurs
                      dernière édition par

                      Il va falloir sérialiser et désérialiser l’objet, en gros envoyer chaque propriété de l’objet, un petit exemple pour les BlockPos : https://github.com/Leviathan-Studio/LS-Lib/blob/master/src/main/java/com/leviathanstudio/lib/common/network/ByteBufUtil.java#L46-L68

                      Mais la question à te poser est : Est-ce que j’ai besoin des toutes les informations du GameProfile, si c’est juste pour afficher les pseudo, envoie juste les pseudos

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

                        sa sert à quoi le network du mod? j’ai pas compris

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

                          a faire communiquer le server et le client entre eux

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

                            je n’ai pas compric ou engristrer les packets

                            s

                            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

                              N’importe où, ça peut être dans la classe principale tout comme ça peut être dans une classe à part.
                              Du moment que la fonction dans laquelle ils sont enregistrer est appelé les l’init, c’est bon.

                              1 réponse Dernière réponse Répondre Citer 0
                              • AymericRedA AymericRed a fait référence à ce sujet sur
                              • robin4002R robin4002 a fait référence à ce sujet sur
                              • robin4002R robin4002 a fait référence à ce sujet sur
                              • robin4002R robin4002 a fait référence à ce sujet sur
                              • 1
                              • 2
                              • 3
                              • 4
                              • 3 / 4
                              • Premier message
                                Dernier message
                              Design by Woryk
                              ContactMentions Légales

                              MINECRAFT FORGE FRANCE © 2024

                              Powered by NodeBB