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

    Résolu Mettre à jour l'inventaire côté server

    1.12.x
    1.12.2
    3
    10
    200
    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.
    • C
      clement5188 dernière édition par

      Bonjour je m’appelle clément je suis débutant dans les mods forge
      voila mon problème
      j’ai fait un Gui (côté client du coup) ou j’ai fait un gui qui donne tel ou tel truc avec des boutons, mon problème est que les items sont donné seulement du côté client dès que j’ouvre un four coffre etc les items s’enlève
      j’ai chercher du coté des packets pour envoyer l’inventaire de mon joueur au server à la fermeture du Gui mais je n’y arrive pas je trouve très peu de tuto
      avez vous une idée pour mettre à jour l’inventaire ?
      pour ajouter un inventaire j’utilise minecraft.getminecraft.player.inventory.addItemStackToInventory mais il est éxecuté seulement du coté client à cause du Gui

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

        Ah mais oui x)
        ligne 14 ItemStack toSend = ByteBufUtils.readItemStack(buf); devrait être this.toSend = ByteBufUtils.readItemStack(buf);

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

          Bonsoir,

          En fait il faudrait surtout un paquet pour exécuter addItemStackToInventory sur le serveur au lieu de le faire sur le client.
          Tu peux suivre ce tutoriel : https://www.minecraftforgefrance.fr/topic/1000/1-7-2-le-network

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

            Ce message a été supprimé !
            1 réponse Dernière réponse Répondre Citer 0
            • C
              clement5188 @robin4002 dernière édition par clement5188

              @robin4002 donc il faut dans le tutoriel je fasse passer un ItemStack à la place du String c’est ça?

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

                public class Inventory implements IMessage {
                
                    public Inventory() {
                    }
                
                    public ItemStack toSend;
                
                    public Inventory(ItemStack toSend) {
                        this.toSend = toSend;
                    }
                
                    @Override
                    public void fromBytes(ByteBuf buf) {
                        ItemStack toSend = ByteBufUtils.readItemStack(buf);
                
                    }
                
                    @Override
                    public void toBytes(ByteBuf buf) {
                
                            ByteBufUtils.writeItemStack(buf,toSend);
                
                
                
                    }
                
                    public static class Handler implements IMessageHandler<Inventory, IMessage> {
                
                        @Override
                        public IMessage onMessage(Inventory message, MessageContext ctx) {
                            System.out.println(message.toSend);
                            System.out.println(String.format("Received %s from %s", message.toSend, ctx.getServerHandler().player.getDisplayName()));
                            return null; // no response in this case
                        }
                    }
                }
                

                j’ai fait ça pour voir si l’itemstack passe mais le problème quand je mets

                network.sendToServer(new Inventory(new ItemStack(Items.APPLE,1)));
                

                ça me retourn null

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

                  Le paquet me semble bon.
                  à quel endroit tu reçois null ?

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

                    853421f8-0ad5-4dd1-8cb2-edd03eb57458-image.png
                    ça me renvoi null ici sur le

                    System.out.println(message.toSend);
                                System.out.println(String.format("Received %s from %s", message.toSend, ctx.getServerHandler().player.getDisplayName()));
                    

                    message.toSend = null
                    je cromprend pas pourquoi

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

                      Ah mais oui x)
                      ligne 14 ItemStack toSend = ByteBufUtils.readItemStack(buf); devrait être this.toSend = ByteBufUtils.readItemStack(buf);

                      C 1 réponse Dernière réponse Répondre Citer 0
                      • C
                        clement5188 @robin4002 dernière édition par

                        @robin4002
                        oh merci c’est ça t’es un dieu!

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

                          passe ton truc en résolu nn?

                          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