Problème IGUIHandler
-
Est bah le soucis il est ou ?
j’ai ça dedant: this.prop = ExtendedPropInv.get(player); -
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.
-
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 ^^
-
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.
-
Effectivement ^^, par contre mon inv s’ouvre pas
comme si il était cancelled. -
? 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
-
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> -
Je sais pas, pense pas mais possible, alors ouvre uniquement sur le serveur if(!world.isRemote) où tu appelles openGui
-
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>
-
Donc t’a une boucle, tu renvoies où le packet ?
-
Je r’envois rien du tout j’ai juste le player.opengui et le if(!world.isremote) dans mon IMessage
-
Je voulais pas dire Renvoie, mais envoie le packet
-
Ah, bah je return message; donc je return sur mon Packet ou y’a le player.opengui
-
Ahhh bah dans mon keyinputevent dans mon client proxy je l’envois avec un sendtoserver
-
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
-
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. -
Help?.
-
Envoie ton code dans un zip, je regarderais avec une vue d’ensemble comme ça

-
D’accord

Tien: -
Je vais regarder ça^^
Mais c’est normal que quand j’ai cliqué, j’ai eu 2 téléchargements ??Alors, compte-rendu détaillé de ce que j’ai vu :
NBTTagCompound comp = new NBTTagCompound(); this.writeToNBT(comp); ExtendedPropInv prop = ExtendedPropInv .get(player); prop.sync();Ceci est dans les fonctions canPlayerInteractWith() et onGuiClosed() de ton container, et vu ce que tu en fait, ça ne sert à rien, car tu définis “comp”, tu met les données de ton inv dans ce tag et… c’est tout, le tag ne devient rien. Tu peux enlever tout ce qu’il y a en rapport avec la nbt dans ton container, car à partir du moment où tu as ajouté ton slot, minecraft s’occupe de tout synchroniser.
this.size = size; this.content = new ItemStack;Dans les constructeurs de ton ExtendedInv et de ton InventaireArma, tu assignes une taille à ton inv qui est size +10, alors pouquoi tu ne met pas “this.size = size + 10” ? Car avec ce que t’a mis, comme tu réutilise ça avec tes tags, tes 10 derniers slots ne peuvent être sauvegardés.
Je vois aussi que tu as mis ton array de stack dans ton EntityProp, ça serait plus logique de mettre cet array dans InventaireArma (après ça change pas le fonctionnement).
Et une question, tu veux totalement remplacer l’inventaire vanilla ou juste l’étendre, car dans ton container, on n’a pas accès à l’inventaire vanilla (mis à part la hotbar) ?