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

    Extended Entity Properties

    Sans suite
    1.8.9
    4
    16
    2684
    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.
    • DiabolicaTrix
      DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

      Bonjour,

      Je n’ai jamais eu de problèmes avec les Extended Entity Properties (aka EEP), mais bizarrement, ils ne fonctionnent plus. En fait, j’ai mis plein de sysout et ils m’indiquent que tout est chargé. Sauf que, les valeurs sont toutes à 0. Je me suis alors dit que c’était surement un problème de synchronisation, mais pourtant, les packets sont reçus (J’ai, d’ailleurs, un NPE sur le joueur). Ça fait quelques jours que je travaille là-dessus et que je n’arrive pas à le faire fonctionner.

      Mes event handler: https://github.com/DiabolicaTrix/MinecraftLifeRPG/tree/master/src/main/java/me/diabolicatrix/events
      Mes EEP (j’ai essayé de les séparer mais aucun résultat): https://github.com/DiabolicaTrix/MinecraftLifeRPG/tree/master/src/main/java/me/diabolicatrix/other
      Mes Packets: https://github.com/DiabolicaTrix/MinecraftLifeRPG/tree/master/src/main/java/me/diabolicatrix/packets (ceux avec le tag EEP à la fin)

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

        Salut,
        Utilises PlayerEvent.PlayerLoggedInEvent plutôt que EntityJoinWorldEvent pour envoyer les paquets. Ça évite le npe.

        1 réponse Dernière réponse Répondre Citer 0
        • DiabolicaTrix
          DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

          Salut, je n’ai plus de NPE, par contre, quand je meurt, ce n’est toujours pas sauvegardé. Sauf que le packet de synchronisation est envoyé car j’ai les sysout dans la console.

          [11:26:06] [Server thread/INFO] [STDOUT]: [me.diabolicatrix.packets.PacketPermEEP:toBytes:56]: License Packet Save
          [11:26:06] [Netty Local Client IO #2/INFO] [STDOUT]: [me.diabolicatrix.packets.PacketPermEEP:fromBytes:42]: License Packet Load

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

            Plusieurs EEP c’est pas un super bonne idée. Tu peux mettre plusieurs variable dans le même EEP sans soucis.
            Ajoute du debug au niveau des fonctions read et write NBT

            1 réponse Dernière réponse Répondre Citer 0
            • DiabolicaTrix
              DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

              Le problème, c’est qu’ils ne sont pas sauvegardés de la même façon. Les licenses doivent être permanentes, le “side” doit être persistant après la mort mais pas à la déconnexion. Et éventutellement, la banque devra être permanente et l’argent perdu après la mort mais sauvergardé à la déconnexion. Donc je ne vois pas comment faire ça en un seul EEP.

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

                Lorsque le joueur se déconnecte tu lui remet une valeur par défaut pour le side, pour l’argent qui doit être perdu à la mort du joueur tu utilise l’event LivingDeathEvent par exemple

                1 réponse Dernière réponse Répondre Citer 0
                • DiabolicaTrix
                  DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

                  J’y avais pensé entre temps, pour ça , ça va, mais ça ne sauvegarde toujours pas (j’ai refait un commit sur github)

                  EDIT: J’ai remarqué un truc: en supprimant le EntityJoinWorld, quand le joueur respawn, l’event n’est pas appelé. Je vais donc juste mettre un null check.

                  EDIT2: Après quelques tests, j’ai remarqué que les données sont bien sauvegardées à la connexion, mais pas à la mort.

                  EDIT3: Ça fait quelques heures que je travailles là-dessus et rien à faire, quand on respawn, ça reset.

                  EDIT4: Je viens de remarquer que le serveur a la bonne valuer mais rien à faire pour le client, il ne veut pas sync malgré les nombreux sync que j’ai fait.

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

                    J’avais eu un problème de non synchro d’ExtProp qui ressemble un peu au tient. Voici le

                    1 réponse Dernière réponse Répondre Citer 0
                    • DiabolicaTrix
                      DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

                      Donc, après avoir complètement recommencé, j’ai remarqué que quand j’appelle la méthode sync depuis un event, ça ne fonctionne pas. Par contre, quand je l’appelle depuis un bloc (onRightClick), ça synchronise bien avec le client.

                      PS: J’ai update mes codes sur github (mêmes liens)

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

                        http://www.minecraftforgefrance.fr/forge-events.php -> PlayerEvent.PlayerLoggedInEvent -> FMLCommonHandler.bus()
                        Enregistre ton CommonEventHandler avec FML aussi :

                        
                        FMLCommonHandler.instance().bus().register(new CommonEventHandler());
                        
                        
                        1 réponse Dernière réponse Répondre Citer 0
                        • robin4002
                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                          Il est en 1.8.9, donc plus besoin de se soucier de ça.

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

                            Ah, my bad alors

                            1 réponse Dernière réponse Répondre Citer 0
                            • DiabolicaTrix
                              DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

                              Donc, petite mise à jour, j’ai complètement supprimé et réécrit mon EEP. Le EEP est sauvegardé côté serveur seulement, pourtant, dans mon event player clone, je fais un sync et je vois dans la console qu’il est bien exécuté. J’ai donc utilisé mon itemDebug pour essayer de sync après le respawn et ça fonctionne, le problème est que je voudrais qu’il soit sync automatiquement…

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

                                T’as regardé le lien que je t’ai passé ? J’ai crée 2 handlers différents dans mon packet, qui est donc enregistré sur les 2 sides. Sa m’avait résolu le problème de synchro (le client ne connaissait pas la valeur de mon ExtProp alors que le serveur l’avait). Après je sais pas si t’as EXACTEMENT le même problème, et puis entre la 1.8.9 et la 1.7.10, y’a peut-être d’autres modifs à effectuer…

                                1 réponse Dernière réponse Répondre Citer 0
                                • DiabolicaTrix
                                  DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

                                  J’avais essayé les 2 handlers, mais ça n’avait rien changé. Je vais quand même réessayer avec mon nouveau code.

                                  EDIT: J’ai essayé et ça n’a rien changé.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • DiabolicaTrix
                                    DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

                                    Je viens de remarquer que Extended Entity Properties est “deprecated” pour le nouveau système de “capabilities”. On peut donc mettre ce sujet dans sans suite.

                                    Pour information, mon problème venait du fait que je ne faisait pas de scheduled task dans mon packet pour intéragir avec les objets de Minecraft. De plus, le sync doit être fait dans l’event PlayerRespawnEvent et non PlayerEvent.Clone.

                                    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