MFF

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

    Problème IGUIHandler

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    191 Messages 7 Publieurs 34.6k Vues 1 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.
    • GabsG Hors-ligne
      Gabs
      dernière édition par

      package armacraft.net.GUI;
      
      import armacraft.net.ExtendedPropInv;
      import armacraft.net.Items.Water;
      import net.minecraft.client.Minecraft;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.inventory.IInventory;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.nbt.NBTTagCompound;
      import net.minecraft.nbt.NBTTagList;
      import net.minecraftforge.common.util.Constants;
      
      public class InventaireArma implements IInventory
      {
          private EntityPlayer player;
          ExtendedPropInv prop;
          public int size;
      
          public InventaireArma(int size, EntityPlayer player) {
              this.size = size;
              this.prop.content = new ItemStack;
              this.player = player;
              this.prop = ExtendedPropInv.get(player);
          }
      
      /**
      * This methods reads the content of the NBTTagCompound inside the container
      * 
      * @param comp
      *            the container NBTTagCompound
      */
      public void readFromNBT(NBTTagCompound comp) {
      NBTTagList nbtlist = comp.getTagList("a", Constants.NBT.TAG_COMPOUND);
      for (int i = 0; i < nbtlist.tagCount(); i++) {
      NBTTagCompound comp1 = nbtlist.getCompoundTagAt(i);
      int slot = comp1.getInteger("z");
      this.prop.content[slot] = ItemStack.loadItemStackFromNBT(comp1);
      }
      }
      
      /**
      * This methods saves the content inside the container
      * 
      * @param comp
      *            the NBTTagCompound to write in
      */
      public void writeToNBT(NBTTagCompound comp)
         {
      NBTTagList nbtlist = new NBTTagList();
      
      for (int i = 0; i < this.size; i++) {
      if (this.prop.content* != null) {
      NBTTagCompound comp1 = new NBTTagCompound();
      comp1.setInteger("Slot", i);
      this.prop.content*.writeToNBT(comp1);
      nbtlist.appendTag(comp1);
      }
      }
      comp.setTag("Inventory", nbtlist);
         }
      
      @Override
      public int getSizeInventory() {
      return this.size;
      }
      
      @Override
      public ItemStack getStackInSlot(int index) {
      return this.prop.content[index];
      }
      
      @Override
      public ItemStack decrStackSize(int index, int amount) {
      ItemStack stack = getStackInSlot(index);
      if (stack != null) {
      if (stack.stackSize > amount) {
      stack = stack.splitStack(amount);
      if (stack.stackSize == 0) this.prop.content[index] = null;
      } else {
      this.prop.content[index] = null;
      }
      }
      return stack;
      }
      
      @Override
      public ItemStack getStackInSlotOnClosing(int index) {
      ItemStack stack = getStackInSlot(index);
      if (stack != null) this.prop.content[index] = null;
      return stack;
      }
      
      @Override
      public void setInventorySlotContents(int index, ItemStack stack) {
      this.prop.content[index] = stack;
      }
      
      @Override
      public String getInventoryName() {
      return "amm" + ".inventaire.arma";
      }
      
      @Override
      public boolean hasCustomInventoryName() {
      return false;
      }
      
      @Override
      public int getInventoryStackLimit() {
      return 64;
      }
      
      @Override
      public void markDirty() {}
      
      @Override
      public boolean isUseableByPlayer(EntityPlayer player) {
      return true;
      }
      
      @Override
      public void openInventory() {
      
      }
      
      @Override
      public void closeInventory() {
      }
      
      /**
      * Prevents backpack-ception
      */
      @Override
      public boolean isItemValidForSlot(int index, ItemStack stack) {
      return !(stack.getItem() instanceof Water);
      }
      
      }
      
      1 réponse Dernière réponse Répondre Citer 0
      • AymericRedA Hors-ligne
        AymericRed
        dernière édition par

        T’a fait ce que j’ai dit dans l’autre message à moitié… Il faut que tu définisses this.prop dans ton constructeur, sinon ça marchera pas.

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

          Attend, le constructeur c’est pas le code dans le commonproxy ?

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

            Whaaaat ? Je parle du constructeur de ton InventaireArma.

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

              Est bah le soucis il est ou ? 
              j’ai ça dedant: this.prop = ExtendedPropInv.get(player);

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

                Ah oui dsl, j’avais pas vu :-/, mais de tt façon, il faut que tu le mettes avant this.prop.content = ……, car à cette endroit, prop n’est pas encore défini.

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

                  Pas grave ^^, Effectivement, quand je le met en premier plus de crash mais par contre mon inventaire s’ouvre pas et  y’a des soucis avec les packet a l’infinie tu m’avais dis de faire quoi déjà j’ai oublier ^^

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

                    C’était que à la réception du packet, tu appelles setItem() de ton extended prop et que cette fonction appele sync() qui renvoie un packet.

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

                      Effectivement ^^, par contre mon inv s’ouvre pas 😮 comme si il était cancelled.

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

                        ? Tu ouvres bien le container sur le serveur et le gui sur le client ? Met un System.out.println() dans ton GuiHandler, puis dans tes différents composants pour voir où ça se bloque

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

                          Je pense que c’est ici le prob.
                          [19:36:29] [Client thread/INFO] [STDOUT]: [armacraft.net.GUI.ContainerArma:<init>:29]: // il s’ouvre côté client puis serveur
                          [19:36:29] [Server thread/INFO] [STDOUT]: [armacraft.net.GUI.ContainerArma:<init>:29]:</init></init>

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

                            Je sais pas, pense pas mais possible, alors ouvre uniquement sur le serveur if(!world.isRemote) où tu appelles openGui

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

                              Ok,
                              donc j’ai ça maintenant:

                              [21:49:39] [Server thread/INFO] [STDOUT]: [armacraft.net.GUI.ContainerArma:<init>:29]: 
                              [21:49:39] [Server thread/INFO] [STDOUT]: [armacraft.net.Packets.PacketInv$Handler:onMessage:69]: 
                              [21:49:39] [Server thread/INFO] [STDOUT]: [armacraft.net.Packets.PacketInv$Handler:onMessage:69]:
                              [21:49:39] [Client thread/INFO] [STDOUT]: [armacraft.net.GUI.ContainerArma:<init>:29]: 
                              [21:49:39] [Server thread/INFO] [STDOUT]: [armacraft.net.Packets.PacketInv$Handler:onMessage:69]:
                              

                              Et mon inv s’ouvre pas, pour info j’ouvre mon inv avec un packet qui passe côté serveur .</init></init>

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

                                Donc t’a une boucle, tu renvoies où le packet ?

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

                                  Je r’envois rien du tout j’ai juste le player.opengui et le if(!world.isremote) dans mon IMessage

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

                                    Je voulais pas dire Renvoie, mais envoie le packet

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

                                      Ah, bah je return message; donc je return sur mon Packet ou y’a le player.opengui

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

                                        Ahhh bah dans mon keyinputevent dans mon client proxy je l’envois avec un sendtoserver

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

                                          Vérifies que cette méthode ne soit pas rappeler quelle que part. Et vérifiés aussi que t’envoie pas ce packet dans ton Extended Properties

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

                                            Ok, donc j’ai bien tout regardé mon packet n’est pas envoyer dans l’extended , et ma méthode est appeler que une fois.
                                            Mon inventaire s’ouvre toujours pas.

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB