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

    Non résolu Problèmes d'origine inconnue qui empêche beaucoup de chose (event, capa, etc). [Détails dans le post].

    Sans suite
    1.15.2
    3
    20
    603
    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.
    • Flow
      Flow dernière édition par

      Bonjour à tous,

      ca fait longtemps que je n’ai plus poster ici. Mais bon me voilà ! Voilà j’éprouve certaines difficultés avec mon workspace. J’ai depuis un bout de temps update mon mod en 1.15.2. Tout semblait fonctionner nickel jusqu’à l’apparition de certains problèmes. En voulant update ma capabilities, et en recréant tout je me suis rendu compte que maintenant elle n’était plus prise en compte par le jeu… J’ai vérifier de partout et tout semble correcte. L’event pour attacher la capabilities est appelé, mais aucune capabilities n’est attaché. De même mes commandes ne sont maintenant plus prise en compte, elle n’apparaisse plus in game, alors qu’elles sont bien enregistrer dans l’event “FMLServerStartingEvent”. De plus déjà avant tout ces problèmes j’avais des baisses de tps, comme si quelque chose ne tournait pas rond en fond et faisait ramer le serveur. Depuis plus rien ne fonctionne, uniquement les blocks et les items qui sont toujours présent. J’ai beau chercher de partout, corriger certaines chose j’ai l’impression que mon workspace est totalement buggé. J’ai tenté de refaire donc un nouveau tout frais, copier mon src. Les problèmes sont toujours la.

      Voilà, je sais que ce n’est pas beaucoup d’infos, mais c’est parce que même moi je n’en ai pas beaucoup en fait… J’ai dans la console serveur a l’arrivée d’un joueur :

      [00:37:25] [Netty Client IO #5/ERROR] [minecraft/ArgumentTypes]: Could not deserialize minecraft:
      [00:37:25] [Netty Client IO #5/ERROR] [minecraft/ArgumentTypes]: Could not deserialize minecraft:
      

      ou encore :

      [00:36:49] [Netty Server IO #4/ERROR] [minecraft/ArgumentTypes]: Could not serialize net.minecraftforge.server.command.ModIdArgument@290cf5d (class net.minecraftforge.server.command.ModIdArgument) - will not be sent to client!
      [00:36:49] [Netty Server IO #4/ERROR] [minecraft/ArgumentTypes]: Could not serialize net.minecraftforge.server.command.EnumArgument@161c29db (class net.minecraftforge.server.command.EnumArgument) - will not be sent to client!
      

      Je ne sais absolument pas si c’est en rapport. Dans tout les cas si jamais il faut le src pour tester de votre côté, j’ai tout push sur github : https://github.com/FifouBE/EconomyInc

      J’ai aussi mis les debug logs si jamais debug.log et les latest log latest.log

      Si vous avez besoin de quelque chose d’autre n’hésitez pas a me demander ^^

      Voilà merci à ceux qui m’aideront car je vous avoue que je suis un peu perdu …

      Merci encore!

      Oui ce gif est drôle.

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

        Ton mods.toml est incomplet, de plus mcmod.info n’existe plus en 1.15

        PS : le pack.mcmeta est en version 5

        PS 2 : les loot_tables sont dans data et non assets

        Mes créations :

        Mod en cours de développement : Personal Robot (1.15.2)

        Datapacks : DailyCraft's Craft (beta)

        Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 point(s) de réputation.

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

          Salut,

          tout d’abord merci de ta réponse! 🙂

          J’ai supprimer le mcmod.info, je ne savais pas que ca n’existait plus ^^
          J’ai changer le pack.mcmeta aussi. Les loot_tables n’étaient plus utiliser, je devais les supprimées.

          Pour le mods.toml j’ai regardé dans le git de forge 1.15, et tout me semble bon a part la version, mais en changeant ca n’a rien changé. Mon mod reste toujours comme il était.

          Merci de ton aide en tout cas 🙂

          Oui ce gif est drôle.

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

            Je me permet de up le sujet, si jamais d’autres personnes voient mon erreur!

            Oui ce gif est drôle.

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

              Salut,
              J’ai clone le dépo et regardé, tu n’as rien en jeu car FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup); throw une erreur.

              Et bien sûr l’erreur est catch, donc ça plante de façon silencieuse …
              5e86a824-7e00-4549-a6c9-9fa6549e4321-image.png
              Le seul moyen de trouver le problème c’est de sortir le debogguer avec un arrêt automatique sur les exceptions attrapées.

              EDIT : en fait non je fais fausse piste, ça ne semble pas être ça le problème.
              Ta capa n’est jamais chargé car cette fonction : https://github.com/FifouBE/EconomyInc/blob/master/src/main/java/fr/fifoube/main/capabilities/CapabilityMoney.java#L40 n’est pas appelé. Car ta classe n’est pas enregistré sur le bon bus.
              En haut, ligne 24, remplaces Mod.EventBusSubscriber.Bus.MOD par Mod.EventBusSubscriber.Bus.FORGE

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

                Salut,

                je vais regarder sur google pour pouvoir faire ce que tu dis sur ECLIPSE ainsi que sur IDEA car je compte switch d’un jour à l’autre :grinning_face_with_sweat:

                Je ne savais pas que les capa devait être sur FORGE j’avais essayé ca, mais ca semblait rebugger…

                Je ne sais pas si tu as pu testé égalements côté serveur, beaucoup me rapporte des lags, mais je pense a la capabilities et l’invalidated cap qui déconne car il y avait ce genre de problème.

                En tout cas merci d’avoir pris le temps de télécharger et de tester par toi même, je t’avoue que je bloquais vraiment et comme aucune erreur n’était montrée…

                Oui ce gif est drôle.

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

                  La fonction private void serverStartingEvent(final FMLServerStartingEvent event) ne semble pas être appelé non plus, mais je ne trouve pas pourquoi (du-coup les commandes ne fonctionnent pas).

                  Je n’ai pas regardé plus, les perfs elles sont déjà mauvaise sur mon pc portable donc difficile de faire la différence entre mauvais et mauvais ah ah x).

                  (note: la capture d’écran c’est sur vscode).

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

                    Reste à savoir pourquoi… Bizarre tout ca, première fois que j’ai ce genre de problème…

                    D’accord, pas de soucis! Oui je cherche a le faire sur eclipse mais c’est tellement fouillis que j’ai pas trouvé, je vais chercher! Je remarque que même si la capabilities est appelé, niveau client elle n’est pas update… Alors qu’il y a le système pour, fait avec le tuto de broken.

                    Oui ce gif est drôle.

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

                      Alors superloup me dit sur discord que FMLServerStartingEvent est déclenché sur le bus de Forge, donc c’est pour ça que cela ne fonctionne pas.

                      Donc faut l’enregistrer ainsi : MinecraftForge.EVENT_BUS.addListener(this::serverStartingEvent);.

                      Pour le problème de synchro de la capa, tu as vérifié tes paquets ?


                      Sur eclipse en haut à droite tu peux changer de perceptive, pas défaut tu es sur Java il y a une qui s’appelle debug.
                      4748d5d1-2a37-4d61-b023-a204b4ee7488-image.png
                      Ensuite tu as 3 onglets, variables permet de voir les valeurs des variables quand tu es sûr un point d’arrêt.
                      Breakpoint te permet de voir les points d’arrêt que tu as placé dans le code, mais également d’en ajouter sur les exceptions. Eclipse permet de s’arrêter sur une exception spécifique (bien pratique ça) et comme VSCode on précise si c’est pour les exceptions attrapées ou non (ou les deux).
                      Enfin le dernier onglet Expressions permet d’évaluer une expression lorsqu’on est sur un point d’arrêt.

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

                        Ok ca semble avoir résolu le soucis pour les commandes. Je connaissais la perspective Debug, mais je ne savais pas qu’on pouvais tout voir avec ce que tu as proposés! Cependant je n’ai pas le AbortedByHookException. Est-ce que c’est celui la qu’il faut absolument ? (je suppose que oui) EDIT: nvm Je suppose que c’est le * Exception * qui catch donc toutes les exceptions.

                        Merci pour le petit tuto 🙂 Je vérifie mes packets!

                        Oui ce gif est drôle.

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

                          Il semblerait que le packet ne soit jamais appelé pour synchroniser avec le client. Maintenant pourquoi, me reste à chercher x) Je suppose que j’ai loupé quelque chose dans le tuto de Broken en 1.13.2.

                          Oui ce gif est drôle.

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

                            Probablement car la fonction où tu l’envoies n’est pas appelé.

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

                              Yep! C’est avec le tuto de broken donc c’est quand le playerMoneyHolder change si je me souviens bien, donc dans l’event AttachCapabilitiesEvent il prend le bon holder, et dès que ca change, il envoie le packet. Mais je pense avoir trouvé mon erreur.

                              EDIT : Ok ca se synchro maintenant, me reste a trouver mon erreur sur l’invalidated capa pour rendre la capabilities persistent à la mort du joueur. En espérant que ce sa soit qui causait le lag ? je te tiens au courant sur le thread! 🙂
                              Encore merci de ton aide Robin! 🙂

                              Oui ce gif est drôle.

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

                                Yoo ! Bon j’ai refais quelques test, ma capabilities s’attache bien au joueur et se synchronise bien. Il a juste le problème de la rendre persistante a la mort du joueurs. Le problème est que en faisant des tests voici avec une vidéo à quoi j’arrive. En fait quand je meurs une première fois ma capabilities se remet à 0, si je re-meurs ca me remet bien ma capabilities d’avant. Et quand la capabilities est attachées il semble que les tps soit au plus bas, et quand je meurs la premiere fois tout reviens à la normale. J’ai essayé de debug mais je vois rien, le pire c’est que l’event PlayerEvent.Clone ne sysout rien dans la console mais semble quand même fonctionner ??? Vu que je récupère ma capabilities a la deuxième mort ?

                                @SubscribeEvent
                                	public static void onPlayerClone(net.minecraftforge.event.entity.player.PlayerEvent.Clone event) {
                                    	
                                    	if(event.isWasDeath())
                                        event.getPlayer().getCapability(CapabilityMoney.MONEY_CAPABILITY).ifPresent(newCapa -> {
                                            if(INVALIDATED_CAPS.containsKey(event.getOriginal()))
                                            {
                                                INBT nbt = CapabilityMoney.MONEY_CAPABILITY.writeNBT(INVALIDATED_CAPS.get(event.getOriginal()), null);
                                                System.out.println(nbt);
                                                CapabilityMoney.MONEY_CAPABILITY.readNBT(newCapa, null, nbt);
                                            }
                                        });
                                
                                	}
                                	
                                	@SubscribeEvent
                                	public static void onPlayerRespawn(PlayerEvent.PlayerRespawnEvent event)
                                	{
                                		if(!event.getPlayer().world.isRemote && event.getPlayer() instanceof ServerPlayerEntity)
                                		{
                                			ServerPlayerEntity player = (ServerPlayerEntity)event.getPlayer();
                                			event.getPlayer().getCapability(CapabilityMoney.MONEY_CAPABILITY, null).ifPresent(data -> {
                                				
                                				PacketsRegistery.CHANNEL.send(PacketDistributor.PLAYER.with(() -> player), new PacketMoneyData(data.getMoney()));
                                			});	
                                		}
                                
                                	}
                                

                                Voilà aussi la vidéo qui montre ce qu’il se passe…
                                https://www.youtube.com/watch?v=lu3M9E-D5Ac&feature=youtu.be

                                C’est vraiment bizarre… Et je vois pas pourquoi ca se produit même avec le débug que tu m’avais montrer…

                                Oui ce gif est drôle.

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

                                  C’est quoi INVALIDATED_CAPS ?

                                  Je doute qu’elle soit nécessaire, tu peux faire une copie directement de la capa de getOriginal() vers la capa de getPlayer().

                                  Est-ce qu’il y a quelque chose que tu fais à chaque tick dans ta capa ?

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

                                    @robin4002 J’ai repris le tuto de broken en 1.13.2 (cf. https://www.minecraftforgefrance.fr/topic/5550/les-capabilities )
                                    Le problème est que j’ai testé de faire avec l’event en lui même et ca ne marchait pas, j’ai pas l’impression que l’event soit appelé ?

                                    Non rien, j’ai juste un item qui affiche les infos en tooltip.

                                    Oui ce gif est drôle.

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

                                      Ah ok, si broken a indiqué de faire comme cela c’est probablement car on ne peut plus récupérer la capa d’un joueur mort.

                                      Tu es sûr que l’event n’est pas appelé ? Tu as mis un point d’arrêt directement au début de l’event pour voir ?

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

                                        Je vais retest maintenant, je viens de parcourir les issues de MinecraftForge et apparemment il serait possible de récupérer les données du joueurs après sa mort avec la fonction PlayerEntity.revive(); Je test et edit mon poste pour te dire comment sa s’est passé!

                                        EDIT : J’ai procéder comme ceci

                                            @SubscribeEvent
                                        	public static void onPlayerClone(net.minecraftforge.event.entity.player.PlayerEvent.Clone event) {
                                            	
                                            	PlayerEntity oldPlayer = event.getOriginal();
                                                oldPlayer.revive();
                                                PlayerEntity newPlayer = event.getPlayer();
                                                oldPlayer.getCapability(CapabilityMoney.MONEY_CAPABILITY).ifPresent(oldData -> { 	
                                                	newPlayer.getCapability(CapabilityMoney.MONEY_CAPABILITY).ifPresent(data -> data.setMoney(oldData.getMoney()));
                                                });
                                        	}
                                        

                                        Avec le revive, ca fonctionne nickel maintenant! Donc pour ceux qui cherche voilà, a coupler avec un event PlayerRespawnEvent qui synchronie le tout! Le seul problème reste maintenant que les tps sont à 12 - 13, est-ce que il y a un moyen d’avoir plus de détail sur ou les ticks sont utilisés en quelque sortes ?

                                        Oui ce gif est drôle.

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

                                          Avec la commande debug
                                          https://mcforge.readthedocs.io/en/1.14.x/gettingstarted/debugprofiler/

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

                                            Merci je vais regarder ca!

                                            Oui ce gif est drôle.

                                            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