Having trouble with latest IC2 inside eclipse

  • I'm having a hard time working with the #281 jenkins build of IC2 inside my eclipse environment. I used immibis's BON to deobfuscate it (like I did with the 147 version) but inside eclipse it hangs when Forge (#639) tries to activate the mod claiming a NoSuchField error.


    Conversely, the exact same jar, without deobfuscation, works perfectly fine with minecraft 1.5.1 and forge 639 outside of eclipse. Also, if I package my jar (which depends on IC2) and put it in my mods folder (outside eclipse) it works perfectly fine (but debugging becomes very tedious).


    The NoSuchField error makes me think the deobfuscation didn't properly decrypt all of the obfuscated fields to what mcp (7.44) wanted (I can't find what field broke it). Has anyone else seen such behaviour with eclipse+mcp744+ic2? Also, I know the jenkins builds aren't official, so is there a dependency on Forge 640 that I might have missed?

  • I don't get it, I looked inside the IC2 jar and I saw obfuscated function names that coincided with the MCP names. So it looks to me like the jar is obfuscated.

  • I'm trying to write a addon for IC2 but i find a big problem- that i can't debug it!


    The problem is basicly i can't install IC2 to the MCP


    When i put the IC2 JAR file into "C:\Users\Administrator\AppData\Roaming\.minecraft\mods" and start debuging the game crashes


    the screen turns black and it says:


    2013-05-12 01:14:49 [INFO] [STDERR] Exception in thread "Minecraft main thread" java.lang.NoSuchMethodError: tj.<init>(Ljava/lang/String;)V
    2013-05-12 01:14:49 [INFO] [STDERR] at ic2.core.CreativeTabIC2.<init>(CreativeTabIC2.java:15)
    2013-05-12 01:14:49 [INFO] [STDERR] at ic2.core.IC2.<clinit>(IC2.java:2274)................................


    how to solve this problem? otherwise the debugging will be painful QAQ

  • I too have been using BON to deobfuscate IC2 jars for use in eclipse, and with versions of Forge and MCP through around 666 and IC2 build 304 or 305, it worked fine - but with 696 and 309 I started getting NoSuchMethod errors on some recent rendering methods whose names were changed, whether I tried to use BON or left it alone. (Specifically, renderBottomFace was changed to renderFaceYNeg as were the other five like it.)


    Having a fully deobfuscated version directly from the source will be extremely useful. Thank you for making that available!


    It looks like the MCP updates somewhere between 7.44 and 7.51 changed those method names... I don't understand how these versions of IC2 are able to run (outside of eclipse I mean) on versions of Forge that were built with different mappings. Does the runtime deobfuscation give different results to different mods based on what mappings they were built with somehow? Is the release version still using obfuscated names after all?

    • Official Post

    IC2 is being distributed with names translated to srg names, which are mostly consistent across mc versions and independent of the actual names you see in mcp, name changes don't affect them.


    FML translates every class to use those srg names while loading it at runtime.


    I'll update IC2 to the latest forge/mappings after finishing these inventory changes.