[1.9][1.10] Créer un item et un bloc



  • Sommaire

    • Introduction
    • Pré-requis
    • Code
      • Créer un Item
      • Créer un Bloc
    • Résultat
    • Crédits

    Introduction

    Bonjour à tous, dans ce tutoriel je vais vous apprendre à utiliser le nouveau système d'enregistrement de blocs et d'items mit en place par forge pour les versions 1.9 et 1.10.
    On va commencer par le plus simple, les items puis on passera aux blocs.

    Pré-requis

    Ce tutoriel va se baser sur d'autres tutoriels mais qui sont en 1.8. J'expliquerais les modifications à apporter pour que ça fonctionne en 1.9 et 1.10. Voici les liens vers ces tutoriels mais, ne vous inquiétez pas je vous indiquerais au fur et à mesure quel tutoriel lire (ou regarder si c'est une vidéo) :

    créer un item : tuto Youtube ou tuto écrit
    créer un bloc : tuto Youtube ou tuto écrit

    Dans ce tuto je m'adresse à des personnes qui ont un niveau assez basique en java : il faut savoir ce qu'est un objet, connaitre les notions d'héritages et gérer les exceptions quand il y en a. Autrement je vois mal comment coder un mod Minecraft. Voici un tuto sur OpenClassroom très complet (il est conseillé d'avoir lu les 2 premières parties).

    Code

    Créer un Item :

    Tout d'abord, il faut savoir créer un item en 1.8, il faut donc regarder le tuto Youtube ou lire le tuto écrit.

    La manière de procéder en 1.9 et 1.10 est la même qu'en 1.8 sauf que vous remarquerez que la méthode registerItem (item à enregistrer, nom de l'item dans le registre) apparaît barrée car elle est déconseillée. Rien n'empêche de l'utiliser, mais étant déconseillée, il se peut qu'elle fonctionne mal ou qu'elle soit retiré dans les futures versions.
    Pour cela remplacez-la simplement par register (item à enregistrer) comme conseillé dans la javadoc. Attention à bien instancier le nom de l'item dans le registre avant d'appeler cette méthode en utilisant votreItem.setRegistryName (nom de l'item dans le registre).
    Voici un exemple :

    public class TutoItems{
    
     public static final Item DEMO_ITEM = new Item().setRegistryName ("demo_item"); // ne pas oublier d'instancier le nom de registre de l'item (setRegisteryName), vous pouvez même le faire dans le constructeur si il y en a un
    
     public static void registerItems (){
      GameRegistry.register (DEMO_ITEM); // on remplace registerItem par register (register apparait en violet, n'y faite pas attention)
     }
    
     @SideOnly (Side.CLIENT)
     public static void registerItemModels (){
      ModelLoader.setCustomModelResourceLocation (DEMO_ITEM , 0, new ModelResourceLocation (TutoMod.MOD_ID + ":demo_item", "inventory"));
     }
    }
    

    Créer un Bloc :

    Bon, là ça va être un peu plus compliqué que l'item.
    Comme pour l'item, avant toutes choses il faut savoir créer un bloc en 1.8. Il faut donc que vous regardiez le tuto Youtube ou que vous lisiez le tuto écrit.

    De la même manière que la création d'item, la méthode registerBlock (bloc à enregistrer, nom du bloc dans le registre) est déconseillée, il faut donc utiliser la nouvelle méthode register (bloc à enregistrer) sans oublier d'instancier le nom de registre du bloc au préalable. Voici un exemple :

    public class TutoBlocks {
    
     public static final Block DEMO_BLOCK = new Block ().setRegistryName ("demo_block"); // encore une fois, ne pas oublier d'instancier le nom de registre du bloc avec setRegistryName. Si le block possède un constructeur perso, on peut même le faire dans le constructeur.
    
     public static void registerBlocks (){
      GameRegistry.register (DEMO_BLOCK); // on change registerBlock par register (pareil ici, "register" apparait en violet, n'y faite pas attention)
     }
    
     @SideOnly (Side.CLIENT)
     public static void registerItemBlockModels (){
      ModelLoader.setCustomModelResourceLocation (Item.getItemFromBlock (DEMO_BLOCK), 0, new ModelResourceLocation (TutoMod.MOD_ID+":demo_block", "inventory"));
     }
    }
    

    Sauf que normalement quand vous démarrez le jeu vous devez avoir un nullPointerException. C'est dû au fait que dans ma méthode registerItemBlockModels on essaye d'enregistrer un model sur un ItemBlock qui n'existe pas. Hé oui, maintenant l'itemBlock n'est plus créé automatiquement comme avant dans la méthode registerItem, il va falloir le créer et l'enregistrer manuellement.

    petit rappel : Un ItemBlock est l'item du bloc. C'est lui que l'on voit quand on a un bloc dans l'inventaire ou quand on le drop par terre. Certain blocs n'ont pas d'ItemBlock comme les double-dalles : jamais vous ne verrez de doubles-dalles dans votre inventaire ou dropées par terre.

    Pour ce faire, nous allons ajouter une nouvelle méthode qui va servir à créer et à enregistrer un ItemBlock à partir d'un bloc :

    private static void registerItemBlock (Block block){
    
     ItemBlock itemBlock = new ItemBlock (block); // création d'un ItemBlock à partir d'un Block
     itemBlock.setRegistryName (block.getRegistryName()); // on instancie le nom de registre de l'ItemBlock, c'est le même que celui du Block correspondant : TRES IMPORTANT
     GameRegistry.register (itemBlock); // on enregistre l'ItemBlock
    }
    

    Nous allons créer une nouvelle méthode qui va appeler la méthode précédente pour chaque bloc. Je vais l'appeler "registerItemBlocks" avec un "s".

    Elle devra être appelée côté commun en pré-init

    • après l'appelle de ma méthode registerBlocks dans TutoBlocks (côté commun aussi)
    • et avant l'appelle de ma méthode registerItemBlockModels dans TutoBlocks (côté client uniquement)

    J'espère que c'est clair pour vous. Voici le résultat final :

    public class TutoBlocks {
    
     public static final Block DEMO_BLOCK = new Block ().setRegistryName ("demo_block");
    
     public static void registerBlocks (){
      GameRegistry.register (DEMO_BLOCK);
     }
    
     // appelle la méthode "registerItemBlock" pour chaque bloc (bon ici il n'y en a qu'un)
     public static void registerItemBlocks (){
      registerItemBlock (DEMO_BLOCK);
     }
    
     @SideOnly (Side.CLIENT)
     public static void registerItemBlockModels (){
      ModelLoader.setCustomModelResourceLocation (Item.getItemFromBlock (DEMO_BLOCK), 0, new ModelResourceLocation (TutoMod.MOD_ID+":demo_block", "inventory"));
     }
    
     // enregistre l'ItemBlock correspondant à un Block
     private static void registerItemBlock (Block block){
    
      ItemBlock itemBlock = new ItemBlock (block);
      itemBlock.setRegistryName (block.getRegistryName());
      GameRegistry.register (itemBlock);
     }
    }
    

    Résultat

    Voici une image du résultat final :

    Bon, merci d'avoir suivi ce tutoriel en espérant que cela vous aura été utile.
    Au-revoir. 😉

    Crédits

    auteur : The%(#ff3333)Colossus



  • @'TheRedColossus':

    Créer un Item :

    Tout d'abord, il faut savoir créer un item en 1.8, voici les tutos :
    tuto YT : https://www.youtube.com/watch?v=BOlEjl_1L4s&list=PL6TRstet76dqaQUrnmP8zZEJfHJgoK3_S
    tuto écrit : https://www.minecraftforgefrance.fr/showthread.php?tid=1901

    La manière de procéder en 1.9 et 1.10 est la même qu'en 1.8 sauf que vous remarquerez que la méthode "registerItem (item à enregistrer, nom de l'item dans le registre)" apparaît barrée car elle est déconseillée. Rien n'empêche de l'utiliser, et elle fonctionnera, mais comme elle est déconseillée il vaut mieux ne pas l'utiliser. Pour cela remplacez-la simplement par "register (item à enregistrer)" comme conseillé dans la javadoc. Attention à bien instancier le nom de l'item dans le registre avant d'appeler cette méthode en utilisant "votreItem.setRegistryName (nom de l'item dans le registre)". Voici un exemple :

    public class TutoItems{
     
     public static final Item DEMO_ITEM = new Item().setRegistryName ("demo_item"); // ne pas oublier d'instancier le nom de registre de l'item (setRegisteryName), vous pouvez même le faire dans le constructeur si il y en a un
     
     public static void registerItems (){
      GameRegistry.register (DEMO_ITEM); // passage de registerItem à register (register apparait en violet, n'y faite pas attention)
     }
    
     @SideOnly (Side.CLIENT)
     public static void registerItemModels (){
      ModelLoader.setCustomModelResourceLocation (DEMO_ITEM , 0, new ModelResourceLocation (TutoMod.MOD_ID + ":demo_item", "inventory"));
     }
    }
    

    Je vois que ce sujet est ancien, mais comme je ne trouve aucune solution à mon problème, j'espère que quelqu'un passera par là avec une solution à me proposer…

    Grande débutante, j'ai suivi les tutos formidables de ce forum. J'ai réussi sans problème à créer les bases de mon mod, idem pour quelques nouvelles recettes pour des items existants (ex: selle)... jusque là tout allait bien. J'ai donc voulu créer un item basique, et les choses se sont corsées...

    J'ai suivi à la lettre les indications données dans ce post, en commençant par créer mon item à partir de ce tuto https://www.minecraftforgefrance.fr/showthread.php?tid=1901 puis en apportant les modifications conseillées ci-dessus mais… j'ai une erreur sur setRegistryName que je ne parviens pas à corriger. Evidemment, si j'essaye de lancer le jeu, il crash, et comme je débute et que je ne comprends que sommairement ce que je fais, je n'arrive pas à trouver une solution. Si quelqu'un peut m'aider, ça serait vraiment sympa. Merci d'avance.

    Voici mon code, je suis en 1.10.2:

    package fr.misschey.westworld.items;
    
    import fr.misschey.westworld.WestWorld;
    import net.minecraft.client.renderer.block.model.ModelResourceLocation;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.item.Item;
    import net.minecraftforge.client.model.ModelLoader;
    import net.minecraftforge.fml.common.registry.GameRegistry;
    import net.minecraftforge.fml.relauncher.Side;
    import net.minecraftforge.fml.relauncher.SideOnly;
    
    public class WestWorldItems {
    
    public static final Item IRON_NUGGET = new IronNugget().setRegistryName("iron_nugget").setCreativeTab(CreativeTabs.MATERIALS);
    
    public static void registerItems() {
    
    GameRegistry.register(IRON_NUGGET);
    
    }
    
    @SideOnly(Side.CLIENT)
        public static void registerItemsModels() {
    
    ModelLoader.setCustomModelResourceLocation(IRON_NUGGET, 0, new ModelResourceLocation(WestWorld.MODID + ":iron_nugget", "inventory"));
    
    }
    
    }
    

    Si vous avez besoin de plus d'informations, n'hésitez pas à me les demander.


  • Administrateurs

    Quelle est l'erreur ?



  • "The method setRegistryName(String) is undefined for the type IronNugget"

    0_1536505925868_erreur1.jpg

    Quand j'applique l'une ou l'autre des solutions proposées dans Eclipse, ça ne fait que générer plus d'erreurs  :@

    Voilà ce qui se passe dans la console quand j'essaye de lancer le jeu malgré l'erreur:

    2017-03-28 11:00:51,790 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
    2017-03-28 11:00:51,792 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
    [11:00:51] [main/INFO] [GradleStart]: Extra: []
    [11:00:51] [main/INFO] [GradleStart]: Running with arguments: [–userProperties, {}, --assetsDir, C:/Users/Fujitsu/.gradle/caches/minecraft/assets, --assetIndex, 1.10, --accessToken{REDACTED}, --version, 1.10.2, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
    [11:00:51] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
    [11:00:51] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
    [11:00:51] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
    [11:00:51] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
    [11:00:52] [main/INFO] [FML]: Forge Mod Loader version 12.18.3.2254 for Minecraft 1.10.2 loading
    [11:00:52] [main/INFO] [FML]: Java is Java HotSpot(TM) Client VM, version 1.8.0_121, running on Windows 10:x86:10.0, installed at C:\Program Files (x86)\Java\jre1.8.0_121
    [11:00:52] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
    [11:00:52] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
    [11:00:52] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
    [11:00:52] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
    [11:00:52] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
    [11:00:52] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
    [11:00:52] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
    [11:00:52] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
    [11:00:52] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
    [11:00:52] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
    [11:00:52] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
    [11:00:54] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
    [11:00:54] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
    [11:00:54] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
    [11:00:55] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
    [11:00:55] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
    [11:00:55] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
    [11:00:55] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
    2017-03-28 11:00:55,720 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
    2017-03-28 11:00:55,760 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
    2017-03-28 11:00:55,762 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
    [11:00:56] [Client thread/INFO]: Setting user: Player562
    [11:01:01] [Client thread/WARN]: Skipping bad option: lastServer:
    [11:01:01] [Client thread/INFO]: LWJGL Version: 2.9.4
    [11:01:02] [Client thread/INFO] [STDOUT]: [net.minecraftforge.fml.client.SplashProgress:start:225]: –-- Minecraft Crash Report ----
    // Don't be sad. I'll do better next time, I promise!
    
    Time: 28/03/17 11:01
    Description: Loading screen debug info
    
    This is just a prompt for computer specs to be printed. THIS IS NOT A ERROR
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- System Details --
    Details:
    Minecraft Version: 1.10.2
    Operating System: Windows 10 (x86) version 10.0
    Java Version: 1.8.0_121, Oracle Corporation
    Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
    Memory: 849132336 bytes (809 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 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: '3.3.0' Renderer: 'GeForce 9300M GS/PCIe/SSE2'
    [11:01:02] [Client thread/INFO] [FML]: MinecraftForge v12.18.3.2254 Initialized
    [11:01:02] [Client thread/INFO] [FML]: Replaced 231 ore recipes
    [11:01:02] [Client thread/INFO] [FML]: Found 0 mods from the command line. Injecting into mod discoverer
    [11:01:02] [Client thread/INFO] [FML]: Searching C:\Users\Fujitsu\Desktop\forge1.10.2\run\mods for mods
    [11:01:04] [Client thread/INFO] [FML]: Forge Mod Loader has identified 4 mods to load
    [11:01:04] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, westworld] at CLIENT
    [11:01:04] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, westworld] at SERVER
    [11:01:05] [Thread-6/INFO] [FML]: Using sync timing. 200 frames of Display.update took 157520744 nanos
    [11:01:05] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:WestWorld
    [11:01:05] [Client thread/INFO] [FML]: Processing ObjectHolder annotations
    [11:01:05] [Client thread/INFO] [FML]: Found 423 ObjectHolder annotations
    [11:01:05] [Client thread/INFO] [FML]: Identifying ItemStackHolder annotations
    [11:01:05] [Client thread/INFO] [FML]: Found 0 ItemStackHolder annotations
    [11:01:05] [Client thread/INFO] [FML]: Applying holder lookups
    [11:01:05] [Client thread/INFO] [FML]: Holder lookups applied
    [11:01:05] [Client thread/INFO] [FML]: Applying holder lookups
    [11:01:05] [Client thread/INFO] [FML]: Holder lookups applied
    [11:01:05] [Client thread/INFO] [FML]: Applying holder lookups
    [11:01:05] [Client thread/INFO] [FML]: Holder lookups applied
    [11:01:05] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0
    [11:01:05] [Client thread/INFO] [FML]: Applying holder lookups
    [11:01:05] [Client thread/INFO] [FML]: Holder lookups applied
    [11:01:05] [Client thread/INFO] [FML]: Injecting itemstacks
    [11:01:05] [Client thread/INFO] [FML]: Itemstack injection complete
    [11:01:05] [Client thread/ERROR] [FML]: Fatal errors were detected during the transition from PREINITIALIZATION to INITIALIZATION. Loading cannot continue
    [11:01:05] [Client thread/ERROR] [FML]:
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    UCH mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)
    UCH FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.10.2-12.18.3.2254.jar)
    UCH Forge{12.18.3.2254} [Minecraft Forge] (forgeSrc-1.10.2-12.18.3.2254.jar)
    UCE westworld{1.0.0} [WestWorld] (bin)
    [11:01:05] [Client thread/ERROR] [FML]: The following problems were captured during this phase
    [11:01:05] [Client thread/ERROR] [FML]: Caught exception from WestWorld (westworld)
    java.lang.Error: Unresolved compilation problem:
    
    at fr.misschey.westworld.items.WestWorldItems.registerItems(WestWorldItems.java:16) ~[bin/:?]
    at fr.misschey.westworld.WestWorldCommon.preInit(WestWorldCommon.java:13) ~[bin/:?]
    at fr.misschey.westworld.WestWorldClient.preInit(WestWorldClient.java:11) ~[bin/:?]
    at fr.misschey.westworld.WestWorld.preInit(WestWorld.java:34) ~[bin/:?]
    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.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:618) ~[forgeSrc-1.10.2-12.18.3.2254.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 com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
    at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:243) ~[forgeSrc-1.10.2-12.18.3.2254.jar:?]
    at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:221) ~[forgeSrc-1.10.2-12.18.3.2254.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 com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
    at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:145) [LoadController.class:?]
    at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:624) [Loader.class:?]
    at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:259) [FMLClientHandler.class:?]
    at net.minecraft.client.Minecraft.init(Minecraft.java:477) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:386) [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/:?]
    [11:01:05] [Forge Version Check/INFO] [ForgeVersionCheck]: [Forge] Starting version check at http://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json
    [11:01:05] [Client thread/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:649]: –-- Minecraft Crash Report ----
    // I blame Dinnerbone.
    
    Time: 28/03/17 11:01
    Description: There was a severe problem during mod loading that has caused the game to fail
    
    net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from WestWorld (westworld)
    Caused by: java.lang.Error: Unresolved compilation problem:
    
    at fr.misschey.westworld.items.WestWorldItems.registerItems(WestWorldItems.java:16)
    at fr.misschey.westworld.WestWorldCommon.preInit(WestWorldCommon.java:13)
    at fr.misschey.westworld.WestWorldClient.preInit(WestWorldClient.java:11)
    at fr.misschey.westworld.WestWorld.preInit(WestWorld.java:34)
    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.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:618)
    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.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:243)
    at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:221)
    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.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:145)
    at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:624)
    at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:259)
    at net.minecraft.client.Minecraft.init(Minecraft.java:477)
    at net.minecraft.client.Minecraft.run(Minecraft.java:386)
    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.10.2
    Operating System: Windows 10 (x86) version 10.0
    Java Version: 1.8.0_121, Oracle Corporation
    Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
    Memory: 814417016 bytes (776 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB)
    JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP 9.32 Powered by Forge 12.18.3.2254 4 mods loaded, 4 mods active
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    UCH mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)
    UCH FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.10.2-12.18.3.2254.jar)
    UCH Forge{12.18.3.2254} [Minecraft Forge] (forgeSrc-1.10.2-12.18.3.2254.jar)
    UCE westworld{1.0.0} [WestWorld] (bin)
    Loaded coremods (and transformers):
    GL info: ' Vendor: 'NVIDIA Corporation' Version: '3.3.0' Renderer: 'GeForce 9300M GS/PCIe/SSE2'
    [11:01:05] [Client thread/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:649]: #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\Fujitsu\Desktop\forge1.10.2\run\.\crash-reports\crash-2017-03-28_11.01.05-client.txt
    Java HotSpot(TM) Client VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
    

    J'ai aussi essayé de remplacer IronNugget par Item, là ça marche, plus d'erreur, le jeu se lance, l'item apparaît correctement dans l'inventaire créatif avec sa texture, mais pas son nom, à la place j'ai item.null.name



  • Ta classe "IronNugget" est elle bien extends Item ?



  • @'AymericRed':

    Ta classe "IronNugget" est elle bien extends Item ?

    Oh! MERCI! C'était bien là qu'il y avait une erreur! Merci beaucoup.

    Par contre, ça règle mon problème d'erreur, mais pas mon problème de nom, j'ai toujours ça quand je lance le jeu:

    0_1537563794341_erreur2.jpg



  • Ok c'est bon, j'ai trouvé la solution! Merci pour votre aide et désolée pour les questions bêtes ^^