Xour21 Posted October 1, 2015 Posted October 1, 2015 Hey Guys hoping to get some help with this error I have, I've created my own custom mod (called Teuton Materials for reference) I have no problem when I run the mod in InteliJ (where I built it) but when I build it using Project Structure -> Artifacts and then put into my MC mods folder and launch I get the following error. ---- Minecraft Crash Report ---- // Don't be sad, have a hug! <3 Time: 1/10/15 7:33 PM Description: There was a severe problem during mod loading that has caused the game to fail cpw.mods.fml.common.LoaderException: java.lang.NoSuchMethodError: net.materialsteuton.teutonmaterials.items.ItemTeutonSword.setTextureName(Ljava/lang/String;)Lnet/minecraft/item/Item; at cpw.mods.fml.common.LoadController.transition(LoadController.java:162) at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:515) at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:239) at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:480) at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:867) at net.minecraft.client.main.Main.main(SourceFile:148) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) Caused by: java.lang.NoSuchMethodError: net.materialsteuton.teutonmaterials.items.ItemTeutonSword.setTextureName(Ljava/lang/String;)Lnet/minecraft/item/Item; at net.materialsteuton.teutonmaterials.items.ItemTeutonSword.<init>(ItemTeutonSword.java:19) at net.materialsteuton.teutonmaterials.items.ModItems.init(ModItems.java:24) at net.materialsteuton.teutonmaterials.TeutonMaterials.preInit(TeutonMaterials.java:19) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) 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(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) 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) ... 10 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 10 (amd64) version 10.0 Java Version: 1.8.0_25, Oracle Corporation Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 84914456 bytes (80 MB) / 268001280 bytes (255 MB) up to 1060372480 bytes (1011 MB) JVM Flags: 6 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx1G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M 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.82.1216 Minecraft Forge 10.13.1.1216 5 mods loaded, 5 mods active mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized FML{7.10.82.1216} [Forge Mod Loader] (forge-1.7.10-10.13.1.1216-new.jar) Unloaded->Constructed->Pre-initialized Forge{10.13.1.1216} [Minecraft Forge] (forge-1.7.10-10.13.1.1216-new.jar) Unloaded->Constructed->Pre-initialized millenaire{6.0.0} [Millénaire] (millenaire-6.0.0.jar) Unloaded->Constructed->Pre-initialized teutonmaterials{1.0} [Teuton Materials] (TeutonMaterials0.1.jar) Unloaded->Constructed->Errored I can't find anything about this anywhere else and all the other similar bugs I found remain unanswered, can someone point me to a forum where this has been solved or try and help with this error. Cheers Xour21 Quote
Choonster Posted October 1, 2015 Posted October 1, 2015 setTextureName is the deobfuscated (MCP) name of the method, which is only used in the development environment. In the normal client, it has an obfuscated (SRG) name instead. You need to build your mod using the build Gradle task (either from the command line or IDEA's Gradle window), this compiles and reobfuscates the mod so it uses SRG names instead of MCP names. The built mod will be in the build/libs folder of your project. Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
Xour21 Posted October 2, 2015 Author Posted October 2, 2015 Ah that makes sense, got it working now, i'm going to go and kick myself in the head for not working that out, thanks for the help. Quote
Draco18s Posted October 2, 2015 Posted October 2, 2015 obfuscated (SRG) name instead. Just to clarify, SRG and Obfuscated are not the same. Obfuscated: af() SRG: func_173982_a() MCP: doSomething() The obfuscated ("notch") names are what you'd find if you examined the vanilla jar manually. The SRG names are run-time translations that Forge performs (Forge runs a class transformer on every vanilla class at priority 1000, most coremods run afterwards, but they can run first if they so desire). MCP ("Minecraft Coder Pack") names are the ones you see in the development environment, if they are available (otherwise you'll see the SRG names). SRG is intended as a "version agnostic" naming scheme so that mods do not depend on a specific version of Forge to run. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Xour21 Posted October 2, 2015 Author Posted October 2, 2015 OK that makes sense. Now say I wanted to transfer Obfuscated files from a friend's mod back into a version that is readable by inteliJ, how would I go about that? Quote
Draco18s Posted October 2, 2015 Posted October 2, 2015 "Slowly and painfully" There might be a tool out there that will do it automatically, but you can do a find-replace-all in files and manually translate SRG names to MCP by looking them up in the mappings. Those are stored at: ~\.gradle\caches\minecraft\net\minecraftforge\forge\1.7.10-10.13.2.1291\unpacked\conf Where ~ is your user directory. In that folder will be two csv files: fields.csv and methods.csv Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Choonster Posted October 2, 2015 Posted October 2, 2015 To get the source code from a built mod, you'll have to use BON or BON2 to deobfuscate the mod and then use a Java decompiler to decompile it into source code. I list some decompilers and explain how to use BON in this thread. Keep in mind that most closed source licenses don't allow you to use the code in your own mod. Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
Xour21 Posted October 3, 2015 Author Posted October 3, 2015 Cheers for the help guy's, been really good! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.