Résolu 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 !
-
remplace “getCreativeTab()” par la class “CreativeTabs” ou celle qui a un nom approchant
-
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é ?
-
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
-
Non, c’est parce que getCreativeTab() est une méthode client seulement, elle n’existe pas en serveur.
-
autant pour moi alors
-
Merci pour vos lumières les gars !
Sujet résolu ! (merci de l’avoir déplacé :D)