MFF

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

    Register Block et Item

    Planifier Épinglé Verrouillé Déplacé Résolu 1.12.x
    1.12.x
    29 Messages 4 Publieurs 5.0k 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.
    • jules552J Hors-ligne
      jules552
      dernière édition par

      @‘Dylem’:

      Si possible, mets tout sur github (ça prend 5 minutes), qu’on puisse voir l’erreur rapidement.

      https://github.com/jules552/Adamantium

      Voilà

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

        Tu devrais utiliser les events pour tes modèles aussi. En attendant de faire un tutoriel, je te mets ma classe d’items pour que tu puisses t’en inspirer :

        
        package net.dylem.test_mod.init;
        
        import java.util.HashSet;
        
        import net.dylem.test_mod.client.renderer.MeshDefinitionFix;
        import net.dylem.test_mod.item.ItemBasic;
        import net.dylem.test_mod.item.ItemTestMod;
        import net.minecraft.client.renderer.ItemMeshDefinition;
        import net.minecraft.client.renderer.block.model.ModelBakery;
        import net.minecraft.client.renderer.block.model.ModelResourceLocation;
        import net.minecraft.item.Item;
        import net.minecraftforge.client.event.ModelRegistryEvent;
        import net.minecraftforge.client.model.ModelLoader;
        import net.minecraftforge.event.RegistryEvent;
        import net.minecraftforge.fml.common.Mod;
        import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
        import net.minecraftforge.fml.relauncher.Side;
        import net.minecraftforge.registries.IForgeRegistry;
        
        /*
        * Déclare et instancie les items du mod
        */
        public class ModItems {
        
        public static final ItemBasic ITEM_BASIC = new ItemBasic("item_basic");
        
        /*
        * Contient tous les items enregistrés
        * HashSet -> pas de doublons
        */
        public static final HashSet <itemtestmod>REGISTERED_ITEMS = new HashSet();
        
        /*
        * Enregistre les items
        * Classe automatiquement abonnée à MinecraftForge.EVENT_BUS
        */
        @Mod.EventBusSubscriber
        public static class RegistrationHandler {
        
        /*
        * Enregistre les items
        * @param event L'évènement
        */
        @SubscribeEvent
        public static void registerItems(final RegistryEvent.Register event) {
        
        // Contient tous les items du mod, pas encore enregistrés
        final ItemTestMod[] items = {
        ITEM_BASIC,
        };
        
        final IForgeRegistry registry = event.getRegistry();
        
        /*
        * Pour chaque item, on l'enregistre à l'aide de l'évènement
        * Puis on l'ajoute au set d'item enregistrés, pour plus tard enregistrer son modèle
        */
        for(final ItemTestMod item : items) {
        registry.register(item);
        REGISTERED_ITEMS.add(item);
        }
        }
        }
        
        /*
        * Enregistre les modèles des items
        * Classe automatiquement abonnée à MinecraftForge.EVENT_BUS côté CLIENT
        */
        @Mod.EventBusSubscriber(Side.CLIENT)
        public static class ModelHandler {
        
        private static final ModelHandler INSTANCE = new ModelHandler();
        
        /*
        * Enregistre les modèles des items
        * @Param event L'évènement
        */
        @SubscribeEvent
        public static void registerItemModels(final ModelRegistryEvent event) {
        
        REGISTERED_ITEMS.forEach(item -> INSTANCE.registerItemModel(item, item.getStringRegistryName()));
        }
        
        /*
        * Enregistre le modèle d'un item
        * Etape 1 : Transforme le paramètre modelLocation en localisation complète de l'item
        * @Param item L'item
        * @Param modelLocation Le nom de l'item dans le registre
        */
        private void registerItemModel(final ItemTestMod item, final String modelLocation) {
        
        final ModelResourceLocation fullModelLocation = new ModelResourceLocation(modelLocation, "inventory");
        registerItemModel(item, fullModelLocation);
        }
        
        /*
        * Enregistre le modèle d'un item
        * Permet de récupérer la meshDefinition de l'item
        * @Param item L'item
        * @Param modelLocation la localisation complète de l'item
        */
        private void registerItemModel(final ItemTestMod item, final ModelResourceLocation fullModelLocation) {
        
        ModelBakery.registerItemVariants(item, fullModelLocation);
        registerItemModel(item, MeshDefinitionFix.create(stack -> fullModelLocation));
        }
        
        /*
        * Enregistre le modèle d'un item
        * @Param item L'item
        * @Param meshDefinition la meshDefinition de l'item
        */
        private void registerItemModel(final ItemTestMod item, final ItemMeshDefinition meshDefinition) {
        
        ModelLoader.setCustomMeshDefinition(item, meshDefinition);
        }
        }
        }
        
        ```</itemtestmod>

        Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

          @‘Dylem’:

          Tu devrais utiliser les events pour tes modèles aussi. En attendant de faire un tutoriel, je te mets ma classe d’items pour que tu puisses t’en inspirer :

          
          package net.dylem.test_mod.init;
          
          import java.util.HashSet;
          
          import net.dylem.test_mod.client.renderer.MeshDefinitionFix;
          import net.dylem.test_mod.item.ItemBasic;
          import net.dylem.test_mod.item.ItemTestMod;
          import net.minecraft.client.renderer.ItemMeshDefinition;
          import net.minecraft.client.renderer.block.model.ModelBakery;
          import net.minecraft.client.renderer.block.model.ModelResourceLocation;
          import net.minecraft.item.Item;
          import net.minecraftforge.client.event.ModelRegistryEvent;
          import net.minecraftforge.client.model.ModelLoader;
          import net.minecraftforge.event.RegistryEvent;
          import net.minecraftforge.fml.common.Mod;
          import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
          import net.minecraftforge.fml.relauncher.Side;
          import net.minecraftforge.registries.IForgeRegistry;
          
          /*
          * Déclare et instancie les items du mod
          */
          public class ModItems {
          
          public static final ItemBasic ITEM_BASIC = new ItemBasic("item_basic");
          
          /*
          * Contient tous les items enregistrés
          * HashSet -> pas de doublons
          */
          public static final HashSet <itemtestmod>REGISTERED_ITEMS = new HashSet();
          
          /*
          * Enregistre les items
          * Classe automatiquement abonnée à MinecraftForge.EVENT_BUS
          */
          @Mod.EventBusSubscriber
          public static class RegistrationHandler {
          
          /*
          * Enregistre les items
          * @param event L'évènement
          */
          @SubscribeEvent
          public static void registerItems(final RegistryEvent.Register event) {
          
          // Contient tous les items du mod, pas encore enregistrés
          final ItemTestMod[] items = {
          ITEM_BASIC,
          };
          
          final IForgeRegistry registry = event.getRegistry();
          
          /*
          * Pour chaque item, on l'enregistre à l'aide de l'évènement
          * Puis on l'ajoute au set d'item enregistrés, pour plus tard enregistrer son modèle
          */
          for(final ItemTestMod item : items) {
          registry.register(item);
          REGISTERED_ITEMS.add(item);
          }
          }
          }
          
          /*
          * Enregistre les modèles des items
          * Classe automatiquement abonnée à MinecraftForge.EVENT_BUS côté CLIENT
          */
          @Mod.EventBusSubscriber(Side.CLIENT)
          public static class ModelHandler {
          
          private static final ModelHandler INSTANCE = new ModelHandler();
          
          /*
          * Enregistre les modèles des items
          * @Param event L'évènement
          */
          @SubscribeEvent
          public static void registerItemModels(final ModelRegistryEvent event) {
          
          REGISTERED_ITEMS.forEach(item -> INSTANCE.registerItemModel(item, item.getStringRegistryName()));
          }
          
          /*
          * Enregistre le modèle d'un item
          * Etape 1 : Transforme le paramètre modelLocation en localisation complète de l'item
          * @Param item L'item
          * @Param modelLocation Le nom de l'item dans le registre
          */
          private void registerItemModel(final ItemTestMod item, final String modelLocation) {
          
          final ModelResourceLocation fullModelLocation = new ModelResourceLocation(modelLocation, "inventory");
                 registerItemModel(item, fullModelLocation);
          }
          
          /*
          * Enregistre le modèle d'un item
          * Permet de récupérer la meshDefinition de l'item
          * @Param item L'item
          * @Param modelLocation la localisation complète de l'item
          */
          private void registerItemModel(final ItemTestMod item, final ModelResourceLocation fullModelLocation) {
          
          ModelBakery.registerItemVariants(item, fullModelLocation);
          registerItemModel(item, MeshDefinitionFix.create(stack -> fullModelLocation));
          }
          
          /*
          * Enregistre le modèle d'un item
          * @Param item L'item
          * @Param meshDefinition la meshDefinition de l'item
          */
          private void registerItemModel(final ItemTestMod item, final ItemMeshDefinition meshDefinition) {
          
                 ModelLoader.setCustomMeshDefinition(item, meshDefinition);
          }
          }
          }
          
          ```</itemtestmod>
          

          Désolé mais j’arrive pas à comprendre comment on utilise les events…
          Même si là tu me donnes un exemple j’arrive pas à comprendre ce que je dois utiliser et comment l’adapter à ma situation 😕
          Je préférais la pédagogie de Robin pour m’aider, il m’indique l’erreur, me montre ce que je dois ajouter ou modifier avec un exemple appliquer à mon cas puis je modifie tout les autres cas etc…
          Avec ça je comprend beaucoup mieux et c’est plus avec la répétition d’une tâche, que je vais comprendre et savoir faire de moi même. (c’est comme ça que j’ai compris comment fonctionnait le faite de créer des objets, les modifier etc…)
          Je sais pas du coup si tu as le temps ou si Robin pourrait me montrer un exemple appliquer à un de mes Items et l’un de mes blocks ? 
          Et du coup il va falloir que je modifie mes proxy client si je change ma façon de render les items non ?
          Désolé encore mais j’utilise quasiment jamais les events et j’en avais jamais eu vraiment besoins jusque là donc je suis un peu perdu dans leurs utilisations 😕

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

            Bon, pour faire simple en reprenant ton code :

            1 - Dans ItemsMod, Remplace :

            
            public static void registerRenders(final ModelRegistryEvent event)
            {
            
            

            Par

            
            @SideOnly(Side.CLIENT)
            @SubscribeEvent
            public static void registerRenders(final ModelRegistryEvent event)
            
            

            2 - Dans BlocksMod, Remplace :

            
            @SideOnly (Side.CLIENT)
            public static void registerItemBlockModels ()
            {
            
            

            Par :

            
            @SideOnly (Side.CLIENT)
            @SubscribeEvent
            public static void registerItemBlockModels (final ModelRegistryEvent event){
            
            

            3 - Dans ClientProxy, enlève ces deux lignes :

            
            BlocksMod.registerItemBlockModels();
            ItemsMod.registerRenders();
            
            

            Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

            1 réponse Dernière réponse Répondre Citer 1
            • jules552J Hors-ligne
              jules552
              dernière édition par

              @‘Dylem’:

              Bon, pour faire simple en reprenant ton code :

              1 - Dans ItemsMod, Remplace :

              
              public static void registerRenders(final ModelRegistryEvent event)
              {
              
              

              Par

              
              @SideOnly(Side.CLIENT)
              @SubscribeEvent
              public static void registerRenders(final ModelRegistryEvent event)
              
              

              2 - Dans BlocksMod, Remplace :

              
              @SideOnly (Side.CLIENT)
              public static void registerItemBlockModels ()
              {
              
              

              Par :

              
              @SideOnly (Side.CLIENT)
              @SubscribeEvent
              public static void registerItemBlockModels (final ModelRegistryEvent event){
              
              

              3 - Dans ClientProxy, enlève ces deux lignes :

              
              BlocksMod.registerItemBlockModels();
              ItemsMod.registerRenders();
              
              

              Merci beaucoup à toi, c’est très gentil d’avoir pris le temps de m’aider ^^ 
              Un dernier petit truc, je pensais que les crafts passaient maintenant uniquement par des fichiers json dans les assets avec le dossier recipies, mais apparemment je me trompe, ou en tout cas il faut autre chose, ou j’ai fait une erreur. Si tu as la solution et que tu as le temps de check vite fait, ou de me donner la nouvelle méthode pour les faire ça serait très gentil à toi  🙂

              Sinon +2 pour ta réputation ^^

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

                Merci pour la réput 🙂

                Juste un truc, avant @SidedProxy (dans ta classe principale), ajoute :

                
                @Instance(Reference.MOD_ID)
                public static TestMod Instance;
                
                

                Ca permet au mod d’instancier les annotations @Mod directement.

                Pour les recettes, tu dois ajouter les json dans assets/modid/recipes
                Tu peux t’inspirer des recettes de Minecraft (dans assets/minecraft/recipes), rajoute juste minecraft: devant crafting_shaped.
                Et…. C’est tout !  Les recettes sont automatiquement load et enregistrées par forge.

                Petit exemple quand même en imaginant que ton mod crée une hache en émeraude :

                
                {
                  "type": "minecraft:crafting_shaped",
                  "pattern": [
                    "XX",
                    "X#",
                    " #"
                  ],
                  "key": {
                    "#": {
                      "item": "minecraft:stick"
                    },
                    "X": {
                      "item": "minecraft:emerald"
                    }
                  },
                  "result": {
                    "item": "modid:emerald_axe"
                  }
                }
                
                

                Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

                  @‘Dylem’:

                  Merci pour la réput 🙂

                  Juste un truc, avant @SidedProxy (dans ta classe principale), ajoute :

                  
                  @Instance(Reference.MOD_ID)
                  public static TestMod Instance;
                  
                  

                  Ca permet au mod d’instancier les annotations @Mod directement.

                  Pour les recettes, tu dois ajouter les json dans assets/modid/recipes
                  Tu peux t’inspirer des recettes de Minecraft (dans assets/minecraft/recipes), rajoute juste minecraft: devant crafting_shaped.
                  Et…. C’est tout !  Les recettes sont automatiquement load et enregistrées par forge.

                  Petit exemple quand même en imaginant que ton mod crée une hache en émeraude :

                  
                  {
                    "type": "minecraft:crafting_shaped",
                    "pattern": [
                      "XX",
                      "X#",
                      " #"
                    ],
                    "key": {
                      "#": {
                        "item": "minecraft:stick"
                      },
                      "X": {
                        "item": "minecraft:emerald"
                      }
                    },
                    "result": {
                      "item": "modid:emerald_axe"
                    }
                  }
                  
                  

                  J’ai déjà créer les json mais c’est gentil quand même ah ah.

                  Bon par contre quand je met ton “@Instance(Reference.MOD_ID)” au dessus du “@SidedProxy”, et bien ça fait crash le jeu

                  voilà le crash log:

                  2017-07-15 00:04:10,897 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
                  2017-07-15 00:04:10,899 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
                  [00:04:11] [main/INFO] [GradleStart]: Extra: []
                  [00:04:11] [main/INFO] [GradleStart]: Running with arguments: [–userProperties, {}, --assetsDir, C:/Users/Zules perrin/.gradle/caches/minecraft/assets, --assetIndex, 1.12, --accessToken{REDACTED}, --version, 1.12, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
                  [00:04:11] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
                  [00:04:11] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
                  [00:04:11] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
                  [00:04:11] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
                  [00:04:11] [main/INFO] [FML]: Forge Mod Loader version 14.21.1.2410 for Minecraft 1.12 loading
                  [00:04:11] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_121, running on Windows 10:amd64:10.0, installed at C:\Program Files\Java\jre1.8.0_121
                  [00:04:11] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
                  [00:04:11] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
                  [00:04:11] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
                  [00:04:11] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
                  [00:04:11] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
                  [00:04:11] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
                  [00:04:11] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
                  [00:04:11] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
                  [00:04:11] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
                  [00:04:11] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
                  2017-07-15 00:04:11,480 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
                  2017-07-15 00:04:11,760 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
                  2017-07-15 00:04:11,761 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
                  [00:04:12] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
                  [00:04:12] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
                  [00:04:12] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
                  [00:04:13] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
                  [00:04:13] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
                  [00:04:13] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
                  [00:04:13] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
                  [00:04:14] [main/INFO]: Setting user: Player659
                  [00:04:17] [main/WARN]: Skipping bad option: lastServer:
                  [00:04:17] [main/INFO]: LWJGL Version: 2.9.4
                  [00:04:19] [main/INFO] [FML]: – System Details --
                  Details:
                  Minecraft Version: 1.12
                  Operating System: Windows 10 (amd64) version 10.0
                  Java Version: 1.8.0_121, Oracle Corporation
                  Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
                  Memory: 728148984 bytes (694 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
                  JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
                  IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
                  FML:
                  Loaded coremods (and transformers):
                  GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.5.0 NVIDIA 384.76' Renderer: 'GeForce GTX 1060 6GB/PCIe/SSE2'
                  [00:04:19] [main/INFO] [FML]: MinecraftForge v14.21.1.2410 Initialized
                  [00:04:19] [main/INFO] [FML]: Replaced 921 ore ingredients
                  [00:04:19] [main/INFO] [FML]: Found 0 mods from the command line. Injecting into mod discoverer
                  [00:04:19] [main/INFO] [FML]: Searching C:\Users\Zules perrin\Desktop\AdamantiumMod\run\mods for mods
                  [00:04:20] [main/INFO] [FML]: Forge Mod Loader has identified 5 mods to load
                  [00:04:21] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, adamantium] at CLIENT
                  [00:04:21] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, adamantium] at SERVER
                  [00:04:21] [Thread-3/INFO] [FML]: Using sync timing. 200 frames of Display.update took 73165886 nanos
                  [00:04:21] [main/FATAL] [FML]: Fatal errors were detected during the transition from CONSTRUCTING to PREINITIALIZATION. Loading cannot continue
                  [00:04:21] [main/FATAL] [FML]:
                  States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
                  UC minecraft{1.12} [Minecraft] (minecraft.jar)
                  UC mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)
                  UC FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.12-14.21.1.2410.jar)
                  UC forge{14.21.1.2410} [Minecraft Forge] (forgeSrc-1.12-14.21.1.2410.jar)
                  UE adamantium{1.0.0} [Adamantium] (bin)
                  [00:04:21] [main/FATAL] [FML]: The following problems were captured during this phase
                  [00:04:21] [main/ERROR] [FML]: Caught exception from adamantium (java.lang.IllegalArgumentException: Can not set static fr.jules552.mod.proxy.CommonProxy field fr.jules552.mod.Adamantium.proxy to fr.jules552.mod.Adamantium)
                  [00:04:21] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:630]: –-- Minecraft Crash Report ----
                  // Don't be sad. I'll do better next time, I promise!
                  
                  Time: 7/15/17 12:04 AM
                  Description: There was a severe problem during mod loading that has caused the game to fail
                  
                  net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Adamantium (adamantium)
                  Caused by: java.lang.IllegalArgumentException: Can not set static fr.jules552.mod.proxy.CommonProxy field fr.jules552.mod.Adamantium.proxy to fr.jules552.mod.Adamantium
                  at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
                  at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
                  at sun.reflect.UnsafeStaticObjectFieldAccessorImpl.set(Unknown Source)
                  at java.lang.reflect.Field.set(Unknown Source)
                  at net.minecraftforge.fml.common.FMLModContainer.parseSimpleFieldAnnotation(FMLModContainer.java:514)
                  at net.minecraftforge.fml.common.FMLModContainer.processFieldAnnotations(FMLModContainer.java:444)
                  at net.minecraftforge.fml.common.FMLModContainer.constructMod(FMLModContainer.java:608)
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                  at java.lang.reflect.Method.invoke(Unknown Source)
                  at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
                  at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
                  at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
                  at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
                  at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
                  at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
                  at com.google.common.eventbus.EventBus.post(EventBus.java:217)
                  at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:252)
                  at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:230)
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                  at java.lang.reflect.Method.invoke(Unknown Source)
                  at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
                  at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
                  at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
                  at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
                  at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
                  at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
                  at com.google.common.eventbus.EventBus.post(EventBus.java:217)
                  at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:147)
                  at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:570)
                  at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:227)
                  at net.minecraft.client.Minecraft.init(Minecraft.java:508)
                  at net.minecraft.client.Minecraft.run(Minecraft.java:416)
                  at net.minecraft.client.main.Main.main(Main.java:118)
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                  at java.lang.reflect.Method.invoke(Unknown Source)
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                  at java.lang.reflect.Method.invoke(Unknown Source)
                  at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
                  at GradleStart.main(GradleStart.java:26)
                  
                  A detailed walkthrough of the error, its code path and all known details is as follows:
                  ---------------------------------------------------------------------------------------
                  
                  -- System Details --
                  Details:
                  Minecraft Version: 1.12
                  Operating System: Windows 10 (amd64) version 10.0
                  Java Version: 1.8.0_121, Oracle Corporation
                  Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
                  Memory: 765958160 bytes (730 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
                  JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
                  IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
                  FML: MCP 9.40 Powered by Forge 14.21.1.2410 5 mods loaded, 5 mods active
                  States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
                  UC minecraft{1.12} [Minecraft] (minecraft.jar)
                  UC mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)
                  UC FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.12-14.21.1.2410.jar)
                  UC forge{14.21.1.2410} [Minecraft Forge] (forgeSrc-1.12-14.21.1.2410.jar)
                  UE adamantium{1.0.0} [Adamantium] (bin)
                  Loaded coremods (and transformers):
                  GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.5.0 NVIDIA 384.76' Renderer: 'GeForce GTX 1060 6GB/PCIe/SSE2'
                  [00:04:21] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:630]: #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\Zules perrin\Desktop\AdamantiumMod\run\.\crash-reports\crash-2017-07-15_00.04.21-client.txt
                  Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
                  

                  et donc ma class principale si tu veux voir comment j’ai procédé:

                  package fr.jules552.mod;
                  
                  import fr.jules552.mod.WorldGeneration.GenerationHelper;
                  import fr.jules552.mod.init.BlocksMod;
                  import fr.jules552.mod.init.ItemsMod;
                  import fr.jules552.mod.proxy.CommonProxy;
                  import net.minecraft.init.Blocks;
                  import net.minecraft.item.Item;
                  import net.minecraft.item.ItemBlock;
                  import net.minecraft.item.ItemStack;
                  import net.minecraftforge.common.MinecraftForge;
                  import net.minecraftforge.fml.client.registry.ClientRegistry;
                  import net.minecraftforge.fml.common.Mod;
                  import net.minecraftforge.fml.common.Mod.EventHandler;
                  import net.minecraftforge.fml.common.Mod.Instance;
                  import net.minecraftforge.fml.common.SidedProxy;
                  import net.minecraftforge.fml.common.event.FMLInitializationEvent;
                  import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
                  import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
                  import net.minecraftforge.fml.common.registry.GameRegistry;
                  import net.minecraftforge.oredict.OreDictionary;
                  
                  @Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.MOD_VERSION)
                  
                  public class Adamantium {
                  
                  @Instance(Reference.MOD_ID)
                  @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS)
                  public static CommonProxy proxy;
                  
                  @EventHandler
                  public void preInit(FMLPreInitializationEvent event) {
                  proxy.preInit(event);
                  }
                  
                  @EventHandler
                  public void init(FMLInitializationEvent event) {
                  proxy.init(event);
                  }
                  
                  @EventHandler
                  public void postInit(FMLPostInitializationEvent event) {
                  
                  }
                  }
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • DylemD Hors-ligne
                    Dylem
                    dernière édition par

                    t’as oublié le

                    
                    public static TestMod Instance;
                    
                    

                    Relis mon message 😛

                    Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

                      @‘Dylem’:

                      t’as oublié le

                      
                      public static TestMod Instance;
                      
                      

                      Relis mon message 😛

                      Bon effectivement je suis un peu bête et précipité parfois ah ah,
                      par contre ça ne charge toujours pas les crafts 😕 (sauf genre pour les items pour la hache, mais là le block d’adamantium ça fonctionne pas :/)

                      voilà un exemple d’un de mes fichiers json:

                      {
                        "type": "minecraft:crafting_shaped",
                        "pattern": [
                          "###",
                          "###",
                          "###"
                        ],
                        "key": {
                          "#": {
                            "item": "adamantium:adamantium_ingot"
                          }
                        },
                        "result": {
                          "item": "adamantium:adamantium_block",
                        }
                      }
                      
                      

                      Je n’y vois aucune erreur et pourtant, si tu veux la log indique ça:

                      [01:05:27] [main/ERROR] [FML]: Parsing error loading recipe adamantium:adamantium_block
                      com.google.gson.JsonParseException: com.google.gson.stream.MalformedJsonException: Expected name at line 15 column 4 path $.result.item
                      at net.minecraft.util.JsonUtils.gsonDeserialize(JsonUtils.java:439) ~[JsonUtils.class:?]
                      at net.minecraft.util.JsonUtils.fromJson(JsonUtils.java:485) ~[JsonUtils.class:?]
                      at net.minecraftforge.common.crafting.CraftingHelper.lambda$loadRecipes$21(CraftingHelper.java:699) ~[CraftingHelper.class:?]
                      at net.minecraftforge.common.crafting.CraftingHelper.findFiles(CraftingHelper.java:790) ~[CraftingHelper.class:?]
                      at net.minecraftforge.common.crafting.CraftingHelper.loadRecipes(CraftingHelper.java:659) ~[CraftingHelper.class:?]
                      at java.util.ArrayList.forEach(Unknown Source) [?:1.8.0_121]
                      at net.minecraftforge.common.crafting.CraftingHelper.loadRecipes(CraftingHelper.java:614) [CraftingHelper.class:?]
                      at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:779) [Loader.class:?]
                      at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:343) [FMLClientHandler.class:?]
                      at net.minecraft.client.Minecraft.init(Minecraft.java:576) [Minecraft.class:?]
                      at net.minecraft.client.Minecraft.run(Minecraft.java:416) [Minecraft.class:?]
                      at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
                      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
                      at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121]
                      at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                      at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
                      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
                      at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121]
                      at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
                      at GradleStart.main(GradleStart.java:26) [start/:?]
                      Caused by: com.google.gson.stream.MalformedJsonException: Expected name at line 15 column 4 path $.result.item
                      at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1559) ~[JsonReader.class:?]
                      at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:505) ~[JsonReader.class:?]
                      at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:414) ~[JsonReader.class:?]
                      at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:738) ~[TypeAdapters$29.class:?]
                      at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:739) ~[TypeAdapters$29.class:?]
                      at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:714) ~[TypeAdapters$29.class:?]
                      at com.google.gson.internal.bind.TypeAdapters$35$1.read(TypeAdapters.java:910) ~[TypeAdapters$35$1.class:?]
                      at net.minecraft.util.JsonUtils.gsonDeserialize(JsonUtils.java:435) ~[JsonUtils.class:?]
                      … 23 moreradleStartCommon.java:97) [start/:?]
                      at GradleStart.main(GradleStart.java:26) [start/:?]
                      

                      il m’indique l’erreur à la ligne 15 mais ce n’est juste qu’un crochet la ligne 15 donc 😕 et la synthaxe est directement copié de celle du block de diamant donc ça me parait bizarre, tu aurais une solution pour ça ?

                      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

                        “item”: “adamantium:adamantium_block”,
                        Retires la virgule ici.
                        Un outil utile : https://jsonlint.com/

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

                          @‘robin4002’:

                          “item”: “adamantium:adamantium_block”,
                          Retires la virgule ici.
                          Un outil utile : https://jsonlint.com/

                          Merci à vous deux de votre aide !
                          Je cloture ce sujet ^^

                          1 réponse Dernière réponse Répondre Citer 0
                          • 1
                          • 2
                          • 1 / 2
                          • Premier message
                            Dernier message
                          Design by Woryk
                          ContactMentions Légales

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB