MFF

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

    Extended Entity Properties

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.8.9
    16 Messages 4 Publieurs 2.9k 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.
    • robin4002R Hors-ligne
      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
      • DiabolicaTrixD Hors-ligne
        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
        • robin4002R Hors-ligne
          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
          • DiabolicaTrixD Hors-ligne
            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
            • BrokenSwingB Hors-ligne
              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
              • DiabolicaTrixD Hors-ligne
                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
                • DeletedD Hors-ligne
                  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
                  • DiabolicaTrixD Hors-ligne
                    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
                    • BrokenSwingB Hors-ligne
                      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
                      • robin4002R Hors-ligne
                        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
                        • BrokenSwingB Hors-ligne
                          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
                          • DiabolicaTrixD Hors-ligne
                            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
                            • DeletedD Hors-ligne
                              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
                              • DiabolicaTrixD Hors-ligne
                                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
                                • DiabolicaTrixD Hors-ligne
                                  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
                                  ContactMentions Légales

                                  MINECRAFT FORGE FRANCE © 2024

                                  Powered by NodeBB