SOLVED Crash de Cauldron suite à un mod perso


  • Bonjour à tous,

    J'ai actuellement un problème au niveau de Cauldron. J'ai crée un mod qui ajoute un item (SapphireGem) et un block (SapphireOre), ainsi qu'un event pour générer ces minerais de saphir à la création de la map.

    Le mod marche nickel sur le tester d'Eclipse ainsi que sur Minecraft (Forge profile), mais lorsque je mets mon mod dans le dossier "mods" de Cauldron et que je lance le serveur, j'ai le message qui suit :

    –-- Minecraft Crash Report ----
    // Hi. I'm Minecraft, and I'm a crashaholic.
    
    Time: 07/08/14 00:56
    Description: Exception in server tick loop
    
    cpw.mods.fml.common.LoaderException: java.lang.NoSuchMethodError: net.myforgemod.mod.items.myItems.func_77640_w()Lnet/minecraft/creativetab/CreativeTabs;
    at cpw.mods.fml.common.LoadController.transition(LoadController.java:162)
    at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:515)
    at cpw.mods.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:88)
    at cpw.mods.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:313)
    at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:169)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:624)
    at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.NoSuchMethodError: net.myforgemod.mod.items.myItems.func_77640_w()Lnet/minecraft/creativetab/CreativeTabs;
    at net.myforgemod.mod.items.myItems.<init>(myItems.java:12)
    at net.myforgemod.mod.MyForgeMod.PreInit(MyForgeMod.java:33)
    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 cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513)
    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 cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208)
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187)
    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 cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118)
    at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:513)
    ... 5 more
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- System Details --
    Details:
    Minecraft Version: 1.7.10
    Operating System: Windows 7 (amd64) version 6.1
    Java Version: 1.8.0_11, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 466066272 bytes (444 MB) / 1004011520 bytes (957 MB) up to 2077753344 bytes (1981 MB)
    JVM Flags: 6 total; -Xmx2048m -Xms1024m -XX:PermSize=768m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseStringCache
    AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP v9.05 FML v7.10.25.1197 Minecraft Forge 10.13.0.1197 5 mods loaded, 5 mods active
    mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized
    FML{7.10.25.1197} [Forge Mod Loader] (cauldron-1.7.10-1.1197.01.137-server.jar) Unloaded->Constructed->Pre-initialized
    Forge{10.13.0.1197} [Minecraft Forge] (cauldron-1.7.10-1.1197.01.137-server.jar) Unloaded->Constructed->Pre-initialized
    examplemod{1.0} [examplemod] (modid-1.1.jar) Unloaded->Constructed->Pre-initialized
    myforgemod{0.0.1} [myforgemod] (modid-1.1.jar) Unloaded->Constructed->Errored
    Profiler Position: N/A (disabled)
    Is Modded: Definitely; Server brand changed to 'cauldron,craftbukkit,mcpc,fml,forge'
    Type: Dedicated Server (map_server.txt)
    

    L'erreur semble venir de :
    net.myforgemod.mod.items.myItems.func_77640_w()Lnet/minecraft/creativetab/CreativeTabs;
    at net.myforgemod.mod.items.myItems.<init>(myItems.java:12)
    at net.myforgemod.mod.MyForgeMod.PreInit(MyForgeMod.java:33)

    Les lignes 12 et 33 concernées sont :

    line 12 : this.setCreativeTab(getCreativeTab().tabMaterials);
    
    line 33: itemSapphireGem = new myItems().setUnlocalizedName("SapphireGem");
    

    Au final je ne demande rien en particulier, juste de build un item itemSapphireGem en le mettant dans le CreativeTab du matériel et en lui attribuant le nom "SapphireGem". Je ne comprends vraiment pas pourquoi ça ne marche pas. 😞

    Voici le myItems() en question :

    public class myItems extends Item
    {
    
        public myItems()
        {
            this.setCreativeTab(getCreativeTab().tabMaterials);
        }
    
        @SideOnly(Side.CLIENT)
        public void registerIcons(IIconRegister iconRegister)
        {
            this.itemIcon = iconRegister.registerIcon(MyForgeMod.modid + ":" + this.getUnlocalizedName().substring(5));
        }
    }
    

    Pouvez-vous m'aider messieurs dames ?

    Bien à vous ! 😄

  • Rédacteurs

    remplace "getCreativeTab()" par la class "CreativeTabs" ou celle qui a un nom approchant


  • @Phenix246

    Wow, effectivement ça a marché. J'ai fait de même du coup avec mon block "SapphireOre" !

    Merci de la réponse ultra-rapide, génial. 😄

    Pourrais-je quand même savoir pourquoi ça a buggué ?

  • Rédacteurs

    tu get la creative tab avant de l'initilalisé, normal que ça bug; car tu set une valeur que tu get, étant null par défaut, et en général quand quelque chose est null ça fait planté le jeu

  • Moddeurs confirmés Rédacteurs Administrateurs

    Non, c'est parce que getCreativeTab() est une méthode client seulement, elle n'existe pas en serveur.

  • Rédacteurs

    autant pour moi alors


  • Merci pour vos lumières les gars ! 😉

    Sujet résolu ! (merci de l'avoir déplacé :D)