MFF

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

    Coremod crash NoSuchFieldError

    Planifier Épinglé Verrouillé Déplacé Résolu 1.9.x et 1.10.x
    1.10.x
    7 Messages 3 Publieurs 1.1k 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.
    • AmaA Hors-ligne
      Ama
      dernière édition par

      Bonjour !

      Pour les besoin de l’api d’animation de CraftStudio j’ai besoin que les entités que je souhaite animer, implémentent une classe et sa fonction

      La classe en question:

      :::

      package lib.craftstudio.common;
      
      import lib.craftstudio.common.animation.AnimationHandler;
      
      public abstract interface IEntityAnimated
      {
          public abstract AnimationHandler getAnimationHandler();
      }
      

      :::

      Seulement quand j’essaie d’ajouter ces lignes de codes dans la classe:

      :::

      
          protected AnimationHandler animHandler = new AnimationHandlerPlayer(this);
      
          // ….
      
          @Override
          public AnimationHandler getAnimationHandler()
          {
              return this.animHandler;
          }
      
      

      :::

      Mon jeu crash quand j’essaie de voir le rendu de mon joueur animé

      Voiçi les logs: https://gist.githubusercontent.com/ZeAmateis/c983c1a543a48648f2579181d5a7f54c/raw/21d190fd9bed95f3f865569935a1c49463367097/eclipse.logs

      Classes pour le patch:

      :::

      package lib.craftstudio.asm;
      
      import java.util.Map;
      
      import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin;
      
      @IFMLLoadingPlugin.MCVersion("1.10.2")
      public class CraftStudioLoadingPlugin implements IFMLLoadingPlugin
      {
          @Override
          public String[] getASMTransformerClass()
          {
              return new String[] { CraftStudioClassTransformer.class.getName() };
          }
      
          @Override
          public String getModContainerClass()
          {
              return null;
          }
      
          @Override
          public String getSetupClass()
          {
              return null;
          }
      
          @Override
          public String getAccessTransformerClass()
          {
              return null;
          }
      
          @Override
          public void injectData(Map <string, object="">data)
          {}
      }
      

      :::

      :::

      package lib.craftstudio.asm;
      
      import org.objectweb.asm.ClassReader;
      import org.objectweb.asm.ClassWriter;
      import org.objectweb.asm.MethodVisitor;
      import org.objectweb.asm.Opcodes;
      import org.objectweb.asm.tree.ClassNode;
      
      import lib.craftstudio.CraftStudioApi;
      import net.minecraft.launchwrapper.IClassTransformer;
      
      public class CraftStudioClassTransformer implements IClassTransformer
      {
          @Override
          public byte[] transform(String name, String transformedName, byte[] basicClass)
          {
              if (name.equals("zs") || name.equals("net.minecraft.entity.player.EntityPlayer"))
              {
                  CraftStudioApi.LOGGER.info("About to patch : " + name);
                  return patchEntityPlayer(name, basicClass, name.equals("zs"));
              }
              return basicClass;
          }
      
          private byte[] patchEntityPlayer(String name, byte[] basicClass, boolean obf)
          {
              ClassNode cnode = new ClassNode();
              ClassReader cr = new ClassReader(basicClass);
              cr.accept(cnode, ClassReader.EXPAND_FRAMES);
      
              cnode.interfaces.add("lib/craftstudio/common/IEntityAnimated");
      
              ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
              cnode.accept(cw);
      
              try
              {
                  MethodVisitor mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "getAnimationHandler",
                          "()Llib/craftstudio/common/animation/AnimationHandler;", null, null);
                  mv.visitCode();
                  mv.visitVarInsn(Opcodes.ALOAD, 0);
                  mv.visitTypeInsn(Opcodes.NEW, "fr/zeamateis/tesm/anim/common/animations/AnimationHandlerTest");
                  mv.visitInsn(Opcodes.DUP);
                  mv.visitVarInsn(Opcodes.ALOAD, 0);
                  mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "fr/zeamateis/tesm/anim/common/animations/AnimationHandlerTest",
                          "<init>", "(Llib/craftstudio/common/IEntityAnimated;)V", false);
                  mv.visitFieldInsn(Opcodes.PUTFIELD, "net/minecraft/entity/player/EntityPlayer", "animHandler",
                          "Llib/craftstudio/common/animation/AnimationHandler;");
                  mv.visitVarInsn(Opcodes.ALOAD, 0);
                  mv.visitFieldInsn(Opcodes.GETFIELD, "net/minecraft/entity/player/EntityPlayer", "animHandler",
                          "Llib/craftstudio/common/animation/AnimationHandler;");
                  mv.visitInsn(Opcodes.ARETURN);
                  mv.visitEnd();
              } catch (Exception e)
              {
                  e.printStackTrace();
              }
      
              return cw.toByteArray();
          }
      }
      

      :::

      En espérant que Scarex passe par là 😉

      Merci de votre aide !</init></string,>

      Si je t'ai filé un coup de main n'oublie pas le + / -
      Par contre évite les demandes d'aides en MP, tu sera sympa'

      La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

      Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

      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

        Le patch ne s’est visiblement pas fait.
        Il n’y a pas une version spécifique pour l’utilisation sur un environnement de dev ?

        1 réponse Dernière réponse Répondre Citer 0
        • AmaA Hors-ligne
          Ama
          dernière édition par

          Ah ouais mais phoque, j’ai oublié la classe qui patch je les ai add –’

          Si je t'ai filé un coup de main n'oublie pas le + / -
          Par contre évite les demandes d'aides en MP, tu sera sympa'

          La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

          Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

          1 réponse Dernière réponse Répondre Citer 0
          • SCAREXS Hors-ligne
            SCAREX
            dernière édition par

            Sans le code ça va être un peu dur

            Site web contenant mes scripts : http://SCAREXgaming.github.io

            Pas de demandes de support par MP ni par skype SVP.
            Je n'accepte sur skype que l…

            1 réponse Dernière réponse Répondre Citer 0
            • AmaA Hors-ligne
              Ama
              dernière édition par

              je l’ai ajouté 😉

              Si je t'ai filé un coup de main n'oublie pas le + / -
              Par contre évite les demandes d'aides en MP, tu sera sympa'

              La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

              Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

              1 réponse Dernière réponse Répondre Citer 0
              • SCAREXS Hors-ligne
                SCAREX
                dernière édition par

                Tu n’as pas ajouter le field dans la classe

                Site web contenant mes scripts : http://SCAREXgaming.github.io

                Pas de demandes de support par MP ni par skype SVP.
                Je n'accepte sur skype que l…

                1 réponse Dernière réponse Répondre Citer 0
                • AmaA Hors-ligne
                  Ama
                  dernière édition par

                  Résolu grâce à SCAREX ♥

                  Si je t'ai filé un coup de main n'oublie pas le + / -
                  Par contre évite les demandes d'aides en MP, tu sera sympa'

                  La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                  Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                  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