I created and ran my mod five months ago, took a break for awhile, and then added some new recipes and items to it this week. However, it crashes and gives the following error report.
---- Minecraft Crash Report ----
// I just don't know what went wrong
Time: 5/5/15 10:54 PM
Description: There was a severe problem during mod loading that has caused the game to fail
cpw.mods.fml.common.LoaderException: java.lang.NoSuchFieldError: woodResin
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(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)
Caused by: java.lang.NoSuchFieldError: woodResin
at com.zombiebear.Main.CraftingManager.addCraftingRec(CraftingManager.java:126)
at com.zombiebear.Main.CraftingManager.mainRegistry(CraftingManager.java:33)
at com.zombiebear.Main.MainRegistry.PreLoad(MainRegistry.java:49)
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.GeneratedMethodAccessor3.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)
... 10 more
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
As long as I comment out the new recipes I do not get this error and the .jar file works just fine. But as soon as I try to run it with the new recipes and items it crashes. The only difference between now and then is that I moved the mod folder from my desktop to another folder; I'm not sure this would cause the error. Here are my specs and what I have tried so far:
Forge: 1.7.10-10.13.2.1230
Dev Environment: Eclipse
Method to build jar: "gradlew build" in the console window (and then remove jar from build/libs)
Extra Notes:
Minecraft runs with no issue with my new items in the dev environment.
I recently got an error about my JDK, something about JAVA_HOME not being correct when I tried to run minecraft from eclipse. I added it as a variable to my environment path (right phrasing?) and then was able to run everything properly. However, I get this note when I run gradlew setupDecompWorkspace --refresh-dependencies, right after :compileJava: "[options] bootstrap class path not set in conjunction with -source 1.6. Some input files are unchecked or unsafe operations. Recompile with -Xlint:unchecked for details."
I updated MCPatcher for Minecraft in an attempt to solve problem. It didn't work, but it's info that might be related.
I've managed to get everything working in the past, but oddly it's just not working now. I believe the error is given because my source code is not being reobfuscated properly. I've tried running 'gradlew reobf', but that didn't work either. Perhaps there is a problem with how I added the JAVA_HOME variable, or something with the compiler being used? If so why does it recompile my old code and not the new code? It's just SO weird!
I've tried to post everything relevant to this issue, if anyone had any ideas please let me know. I've tried fixing this for a few days now and it's driving me nuts!
public static void mainRegistry(){
initializeBlock();
registerBlock();
oreRegistration();
}
@Instance(RefStrings.MODID)
public ModBlocks instance;
//Stone
public static Block MblBlock;
public static Block BlackMblBlock;
public static Block RedMblBlock;
public static Block GreenMblBlock;
public static Block BrownMblBlock;
public static Block BlueMblBlock;
public static Block PurpleMblBlock;
public static Block CyanMblBlock;
public static Block LightGrayMblBlock;
public static Block GrayMblBlock;
public static Block PinkMblBlock;
public static Block LimeMblBlock;
public static Block YellowMblBlock;
public static Block LightBlueMblBlock;
public static Block MagentaMblBlock;
public static Block OrangeMblBlock;
public static Block WhiteMblBlock;
//Metal
public static Block StlBlock;
//Wood
public static Block woodIron;
public static Block woodResin;
/*
public static Block woodFireHardened;
public static Block woodOakResin;
public static Block woodSpruceResin;
public static Block woodBirchResin;
public static Block woodJungleResin;
public static Block woodAcaciaResin;
public static Block woodDarkOakResin;
public static Block woodOakFireHard;
public static Block woodSpruceFireHard;
public static Block woodBirchFireHard;
public static Block woodJungleFireHard;
public static Block woodAcaciaFireHard;
public static Block woodDarkOakFireHard;
*/
//Plants,Crops
public static Item GlowMelonSeeds;
public static Block GlowMelon;
public static Block GlowMelonStem;
//Item
public static Item PaperPulp;
public static Item TreeSap;
//Chest
//public static Block IronChest;
//Machines & Crafting Table
public static Block blockGemTable;
public static final int guiIDGemTable = 1;
public static void initializeBlock() {
//Marble Blocks
MblBlock = new MblBlock(Material.rock).setBlockName("MblBlock").setBlockTextureName(RefStrings.MODID + ":marble_block");
BlackMblBlock = new MblBlock(Material.rock).setBlockName("BlackMblBlock").setBlockTextureName(RefStrings.MODID + ":black_marble");
RedMblBlock = new MblBlock(Material.rock).setBlockName("RedMblBlock").setBlockTextureName(RefStrings.MODID + ":red_marble");
GreenMblBlock = new MblBlock(Material.rock).setBlockName("GreenMblBlock").setBlockTextureName(RefStrings.MODID + ":green_marble");
BrownMblBlock = new MblBlock(Material.rock).setBlockName("BrownMblBlock").setBlockTextureName(RefStrings.MODID + ":brown_marble");
BlueMblBlock = new MblBlock(Material.rock).setBlockName("BlueMblBlock").setBlockTextureName(RefStrings.MODID + ":blue_marble");
PurpleMblBlock = new MblBlock(Material.rock).setBlockName("PurpleMblBlock").setBlockTextureName(RefStrings.MODID + ":purple_marble");
CyanMblBlock = new MblBlock(Material.rock).setBlockName("CyanMblBlock").setBlockTextureName(RefStrings.MODID + ":cyan_marble");
LightGrayMblBlock = new MblBlock(Material.rock).setBlockName("LightGrayMblBlock").setBlockTextureName(RefStrings.MODID + ":light_gray_marble");
GrayMblBlock = new MblBlock(Material.rock).setBlockName("GrayMblBlock").setBlockTextureName(RefStrings.MODID + ":grey_marble");
PinkMblBlock = new MblBlock(Material.rock).setBlockName("PinkMblBlock").setBlockTextureName(RefStrings.MODID + ":pink_marble");
LimeMblBlock = new MblBlock(Material.rock).setBlockName("LimeMblBlock").setBlockTextureName(RefStrings.MODID + ":lime_marble");
YellowMblBlock = new MblBlock(Material.rock).setBlockName("YellowMblBlock").setBlockTextureName(RefStrings.MODID + ":yellow_marble");
LightBlueMblBlock = new MblBlock(Material.rock).setBlockName("LightBlueMblBlock").setBlockTextureName(RefStrings.MODID + ":light_blue_marble");
MagentaMblBlock = new MblBlock(Material.rock).setBlockName("MagentaMblBlock").setBlockTextureName(RefStrings.MODID + ":magenta_marble");
OrangeMblBlock = new MblBlock(Material.rock).setBlockName("OrangeMblBlock").setBlockTextureName(RefStrings.MODID + ":orange_marble");
WhiteMblBlock = new MblBlock(Material.rock).setBlockName("WhiteMblBlock").setBlockTextureName(RefStrings.MODID + ":white_marble");
//Metal Blocks
StlBlock = new StlBlock(Material.iron).setBlockName("StlBlock").setHardness(5.0F).setResistance(30.0F).setStepSound(Block.soundTypeMetal).setCreativeTab(CreativeTabs.tabBlock).setBlockTextureName(RefStrings.MODID + ":steel_block");
//Wood Blocks
woodIron = new HardWoodBlock("woodIron",Material.wood);
woodResin = new WoodBlock("woodResin",Material.wood);
/*
woodFireHardened = new HardWoodBlock("woodFireHardened",Material.wood);
woodOakResin = new WoodBlock("woodOakResin",Material.wood).setBlockTextureName(RefStrings.MODID + ":planks_oak_RC");
woodSpruceResin = new WoodBlock("woodSpruceResin",Material.wood).setBlockTextureName(RefStrings.MODID + ":planks_spruce_RC");
woodJungleResin = new WoodBlock("woodJungleResin",Material.wood).setBlockTextureName(RefStrings.MODID + ":planks_jungle_RC");
woodAcaciaResin = new WoodBlock("woodAcaciaResin",Material.wood).setBlockTextureName(RefStrings.MODID + ":planks_acacia_RC");
woodDarkOakResin = new WoodBlock("woodDarkOakResin",Material.wood).setBlockTextureName(RefStrings.MODID + ":planks_dark_RC");
woodBirchResin = new WoodBlock("woodBirchResin",Material.wood).setBlockTextureName(RefStrings.MODID + ":planks_birch_RC"); ;
woodOakFireHard = new HardWoodBlock("woodOakFireHard",Material.wood).setBlockTextureName(RefStrings.MODID + ":planks_oak_FH"); ;
woodSpruceFireHard = new HardWoodBlock("woodSpruceFireHard",Material.wood).setBlockTextureName(RefStrings.MODID + ":planks_spruce_FH");
woodBirchFireHard = new HardWoodBlock("woodBirchFireHard",Material.wood).setBlockTextureName(RefStrings.MODID + ":planks_birch_FH");
woodJungleFireHard = new HardWoodBlock("woodJungleFireHard",Material.wood).setBlockTextureName(RefStrings.MODID + ":planks_jungle_FH");
woodAcaciaFireHard = new HardWoodBlock("woodAcaciaFireHard",Material.wood).setBlockTextureName(RefStrings.MODID + ":planks_acacia_FH");
woodDarkOakFireHard = new HardWoodBlock("woodDarkOakFireHard",Material.wood).setBlockTextureName(RefStrings.MODID + ":planks_dark_FH");
*/
//Crops
GlowMelon = new GourdBlock("GlowMelon",Material.gourd).setLightLevel(0.8F);
GlowMelonStem = new ModBlockStem(GlowMelon).setBlockName("GlowMelonStem").setBlockTextureName(RefStrings.MODID + ":glow_melon_stem");
GlowMelonSeeds = new ItemSeeds(GlowMelonStem, Blocks.farmland).setUnlocalizedName("GlowMelonSeeds").setCreativeTab(CreativeTabs.tabMaterials).setTextureName(RefStrings.MODID + ":seeds_glow_melon");
//Items
PaperPulp = new Item().setUnlocalizedName("PaperPulp").setCreativeTab(CreativeTabs.tabMaterials).setTextureName(RefStrings.MODID + ":paper_pulp");
TreeSap = new Item().setUnlocalizedName("TreeSap").setCreativeTab(CreativeTabs.tabMaterials).setTextureName(RefStrings.MODID + ":tree_sap");
//Crafting Tables
blockGemTable = new GemTable().setBlockName("GemTable").setCreativeTab(CreativeTabs.tabMaterials);
//Metal Chests
// IronChest = new IronChest(0).setBlockName("IronChest").setCreativeTab(CreativeTabs.tabDecorations);
}
GameRegistry.addSmelting(new ItemStack(Items.iron_ingot, 1), new ItemStack(ModTools.StlIngot, 1), 0.2F);
//GameRegistry.addSmelting(new ItemStack(ModBlocks.woodResin, 1), new ItemStack(ModBlocks.woodFireHardened, 1), 0.2F);
/*
GameRegistry.addSmelting(new ItemStack(ModBlocks.woodOakResin, 1), new ItemStack(ModBlocks.woodOakFireHard, 1), 0.3F);
GameRegistry.addSmelting(new ItemStack(ModBlocks.woodSpruceResin, 1), new ItemStack(ModBlocks.woodSpruceFireHard, 1), 0.3F);
GameRegistry.addSmelting(new ItemStack(ModBlocks.woodAcaciaResin, 1), new ItemStack(ModBlocks.woodAcaciaFireHard, 1), 0.3F);
GameRegistry.addSmelting(new ItemStack(ModBlocks.woodDarkOakResin, 1), new ItemStack(ModBlocks.woodDarkOakFireHard, 1), 0.3F);
GameRegistry.addSmelting(new ItemStack(ModBlocks.woodJungleResin, 1), new ItemStack(ModBlocks.woodJungleFireHard, 1), 0.3F);
GameRegistry.addSmelting(new ItemStack(ModBlocks.woodBirchResin, 1), new ItemStack(ModBlocks.woodBirchFireHard, 1), 0.3F);
*/
}
}
That should be everywhere it is used. I'll make sure, but just want to get this out now. Thank you for the quick reply!
EDIT: I thought about what you said about it being woodResin, and it made me realize that my mod IS being reobfuscated. I made a change to vanilla blocks (not a base class edit) and my new mod version does have the new changes to the blocks. It only crashes when I try to add my new blocks, which are all new wood blocks and one new chest. I'm looking into this further to see if I can isolate the problem with my new block types.
Thanks so much for your help so far. Just posting my code for you got me thinking about it in a new way. Gotta' love that second pair of eyes.
EDIT#2:The error seems to occur from the crafting manager. I can't see what's wrong with the recipe, but at least I know it's not gradlew build. I was thinking this problems was a lot crazier than it might actually be.
I ran the mod with woodResin declared in ModBlocks but with it's recipe commented out and it ran fine. It's only when I uncomment the recipe that I encounter the crash error.
Here's the crafting code- the top works, the bottom doesn't:
I also find that simply the process of posting my questions sometimes gets me thinking about the answer.
Your code for woodResin looks okay to me though. You properly declare the field in ModBlocks and it is assigned a value. Then you reference it properly from the other class as ModBlocks.woodResin.
So I'm really not sure what the issue is. But at least you now know the specific lines causing you trouble so hopefully you can work through it.
I hope I can figure it out too! Thanks for your help by the way, I really appreciate it.
Is it possible that everything in my mod is being reobfuscated except for the references in the crafting manager to my new items in ModBlocks (the file where I declare and register my blocks and items)? That seems... bizarre. But then again I don't know exactly how everything works, so I can't make any assumptions.
Is there any way to check on what's happening in detail? I'm not sure exactly what I'm asking for in that question... maybe some kind of utility mod/program for looking into these types of problems and isolating the exact issue? Although that's probably just the error report Perhaps there's something that I can look for in the finished jar file to help isolate the problem?
I don't think it is an obfuscation problem. As you mentioned, generally everything else is working and it is particular to a few lines of code. Doesn't sound like a general problem.
The technique for debugging usually involves "tracing" the execution of your code. One way to do this is to use the debug mode of your IDE (do you use Eclipse?) and set breakpoints in the code and watch the values you're interested in. Another way is to add console statements (System.out.println()) to print out values at critical points in the code.
I have a question though -- do you have a number of other mods installed as well? I see a lot of references to other mods in that crash report... I'd probably make sure there weren't other mods installed and see if it still crashes.
It does run on its own! Well, it's dependent on another mod right now, so it has one other mod in the folder, but close enough.
I didn't even think of checking that because I haven't changed the mods since I last played several months ago. I wonder why that's different from then to now... Would packaging a mod with referenced libraries (like in the case of an addon) cause a problem if it was done in two separate mods? What I mean is the following:
I did a compatibility between Metallurgy and Balkon's weapon mod and added those mods into the forge/libs folder for that project. However it is also in my current mod's forge/libs folder. I know there is a problem with packaging mods together, but I don't remember how that is done. Is that what I'm doing? If so it is definitely what's wrong! I started to test the theory, but I have to mess around with my environment a bit to get a functioning version without those mods there. It's been long enough since I've modded that I may have left my libs folder in a bad state and not even realized it! Although now that I think about it, I think packaging them together involves importing the mod's code in with your own. That's not what I've done.
And a quick question about tracing: does this only work when the code in the IDE is the problem? My stuff is running fine in Eclipse, it's only when I run the mod in actual minecraft that I have any issues. Is there a way to do this for actual minecraft, not in the dev environment? (Would that even be helpful at that point? I'm not sure, but it seems worth asking!)
EDIT:
How funny. It seems to be my own two mods that aren't playing nice with each other! There must be something wrong with how I have the separate environments set up. Perhaps I'm even packaging them together on accident *shudders* That would be embarrassing.
Anyway, thanks so much for your help! You pinpointed the problem exactly. I'll keep digging around and see what I'm doing wrong between my mods.
UPDATE:
I put all of my mods into the mod directory of my forge folder for testing, and everything works fine in the dev environment. When I run the exact same thing in actual minecraft only one of my mods will load the items that were registered; it's like the other one doesn't exist at all, and minecraft will actually give a warning that the blocks from the mod will be removed from the game world.
This explains the java.lang error. My blocks are literally not even there to be recognizes! My blocks will not load from both of my mods in actual minecraft even though they do in the dev version. What could cause this? I'm at a complete loss, though I'm pretty glad to have finally isolated the problem. Any ideas?
I'm thinking maybe something with the MCP versions? Should I reinstall Forge? I'm not sure what to do at this point.
I created and ran my mod five months ago, took a break for awhile, and then added some new recipes and items to it this week. However, it crashes and gives the following error report.
---- Minecraft Crash Report ----
// I just don't know what went wrong
Time: 5/5/15 10:54 PM
Description: There was a severe problem during mod loading that has caused the game to fail
cpw.mods.fml.common.LoaderException: java.lang.NoSuchFieldError: woodResin
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(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)
Caused by: java.lang.NoSuchFieldError: woodResin
at com.zombiebear.Main.CraftingManager.addCraftingRec(CraftingManager.java:126)
at com.zombiebear.Main.CraftingManager.mainRegistry(CraftingManager.java:33)
at com.zombiebear.Main.MainRegistry.PreLoad(MainRegistry.java:49)
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.GeneratedMethodAccessor3.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)
... 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 8.1 (amd64) version 6.3
Java Version: 1.8.0_25, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 479747808 bytes (457 MB) / 757596160 bytes (722 MB) up to 1890582528 bytes (1803 MB)
JVM Flags: 1 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump
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.85.1236 Minecraft Forge 10.13.2.1236 13 mods loaded, 13 mods active
mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized
FML{7.10.85.1236} [Forge Mod Loader] (forge-1.7.10-10.13.2.1236.jar) Unloaded->Constructed->Pre-initialized
Forge{10.13.2.1236} [Minecraft Forge] (forge-1.7.10-10.13.2.1236.jar) Unloaded->Constructed->Pre-initialized
Backpack{2.0.1} [Backpack] (backpack-2.0.1-1.7.x.jar) Unloaded->Constructed->Pre-initialized
BiomesOPlenty{2.1.0} [Biomes O' Plenty] (BiomesOPlenty-1.7.10-2.1.0.1018-universal.jar) Unloaded->Constructed->Pre-initialized
colourfulportalsmod{1.4.2} [Colourful Portals] (ColourfulPortals-1.4.2_for_1.7.X.jar) Unloaded->Constructed->Pre-initialized
MetallurgyCore{4.0.4} [Metallurgy Core] (MetallurgyCore-1.7.10-4.0.4.18.jar) Unloaded->Constructed->Pre-initialized
Metallurgy{4.0.6} [Metallurgy 4] (Metallurgy-1.7.10-4.0.6.80.jar) Unloaded->Constructed->Pre-initialized
harvestcraft{1.7.10d} [Pam's HarvestCraft] (Pam's HarvestCraft 1.7.10e.jar) Unloaded->Constructed->Pre-initialized
TwilightForest{2.3.2} [The Twilight Forest] (twilightforest-1.7.10-2.3.2.jar) Unloaded->Constructed->Pre-initialized
weaponmod{v1.14.3} [Balkon's WeaponMod] (weaponmod-1.14.3.jar) Unloaded->Constructed->Pre-initialized
zombiebearbalkons{0.1.0} [Balkon's/Metallurgy Compatability] (Zombiebear -Compatability for Balkons-1.7.10 - 0.1.0.jar) Unloaded->Constructed->Pre-initialized
zombiebearrecipe{0.0.7} [Zombiebear - More Recipes/Balkon's] (Zombiebear Recipe-1.7.10 - 0.0.7.jar) Unloaded->Constructed->Errored
As long as I comment out the new recipes I do not get this error and the .jar file works just fine. But as soon as I try to run it with the new recipes and items it crashes. The only difference between now and then is that I moved the mod folder from my desktop to another folder; I'm not sure this would cause the error. Here are my specs and what I have tried so far:
Forge: 1.7.10-10.13.2.1230
Dev Environment: Eclipse
Method to build jar: "gradlew build" in the console window (and then remove jar from build/libs)
Extra Notes:
I've managed to get everything working in the past, but oddly it's just not working now. I believe the error is given because my source code is not being reobfuscated properly. I've tried running 'gradlew reobf', but that didn't work either. Perhaps there is a problem with how I added the JAVA_HOME variable, or something with the compiler being used? If so why does it recompile my old code and not the new code? It's just SO weird!
I've tried to post everything relevant to this issue, if anyone had any ideas please let me know. I've tried fixing this for a few days now and it's driving me nuts!
Well the error clearly says that it doesn't recognize the field woodResin. Can you post the code where you declare, initialize and use woodResin?
//Crafting Manager - all of my recipes.
package com.zombiebear.Main;
/*import ckathode.weaponmod.BalkonsWeaponMod;
import ckathode.weaponmod.item.ItemFlail;
import ckathode.weaponmod.item.ItemMelee;
import ckathode.weaponmod.item.ItemMusket;
import ckathode.weaponmod.item.MeleeCompBattleaxe;
import ckathode.weaponmod.item.MeleeCompBoomerang;
import ckathode.weaponmod.item.MeleeCompHalberd;
import ckathode.weaponmod.item.MeleeCompKnife;
import ckathode.weaponmod.item.MeleeCompSpear;
import ckathode.weaponmod.item.MeleeCompWarhammer;
import ckathode.weaponmod.item.MeleeComponent;
import ckathode.weaponmod.item.MeleeComponent.MeleeSpecs;
*/
import ckathode.weaponmod.BalkonsWeaponMod;
import com.zombiebear.blocks.ModBlocks;
import com.zombiebear.item.ModTools;
import com.zombiebear.lib.RefStrings;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import cpw.mods.fml.common.registry.GameRegistry;
public class CraftingManager {
public static void mainRegistry(){
addCraftingRec();
addSmeltingRec();
}
public static void addCraftingRec() {
//Ingots and Metal Blocks, Shaped
GameRegistry.addRecipe(new ItemStack (ModTools.StlIngot, 8), new Object[]{"XXX","XOX","XXX", 'X',Items.iron_ingot, 'O', Blocks.coal_block});
GameRegistry.addRecipe(new ItemStack (ModBlocks.StlBlock, 1), new Object[]{"XXX","XXX","XXX", 'X',ModTools.StlIngot});
GameRegistry.addShapelessRecipe(new ItemStack (ModTools.StlIngot, 9), new Object[]{ModBlocks.StlBlock});
//Weapons, Shaped
GameRegistry.addRecipe(new ItemStack (ModTools.SteelSword, 1), new Object[]{"O","O","X", 'O',ModTools.StlIngot, 'X', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.ObsidianSword, 1), new Object[]{"O","O","X", 'O',Blocks.obsidian, 'X', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.woodIronSword, 1), new Object[]{"O","O","X", 'O',ModBlocks.woodIron, 'X', Items.stick});
//Balkon's Weapons
GameRegistry.addRecipe(new ItemStack (ModTools.SteelFlail, 1), new Object[]{" O"," XO","X S", 'S',ModTools.StlIngot, 'O', Items.string, 'X', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelSpear, 1), new Object[]{" O"," X ","X ", 'O',ModTools.StlIngot, 'X', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelHalberd, 1), new Object[]{" OO"," XO","X ", 'O',ModTools.StlIngot, 'X', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelBattleaxe,1),new Object[]{"OOO","OXO"," X ", 'O',ModTools.StlIngot, 'X', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelKnife, 1), new Object[]{"O", "X", 'O',ModTools.StlIngot, 'X', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelWarhammer,1),new Object[]{"OXO","OXO"," X ", 'O',ModTools.StlIngot, 'X', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelKatana, 1), new Object[]{" O"," O ","X ", 'O',ModTools.StlIngot, 'X', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelBoomerang,1),new Object[]{"OXX","X ","X ", 'O',ModTools.StlIngot, 'X', Blocks.planks});
//GameRegistry.addShapelessRecipe(new ItemStack (ModTools.SteelBayonet,1), new Object[]{ModTools.SteelKnife, BalkonsWeaponMod.musket});
//GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack (ModTools.SteelBayonet, 1), ModTools.SteelKnife, "itemMusket"));
//Armor, Shaped
GameRegistry.addRecipe(new ItemStack (ModTools.SteelChestplate, 1), new Object[]{"X X","XXX","XXX", 'X',ModTools.StlIngot});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelHelmet, 1), new Object[]{"XXX","X X"," ", 'X',ModTools.StlIngot});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelLeggings, 1), new Object[]{"XXX","X X","X X", 'X',ModTools.StlIngot});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelBoots, 1), new Object[]{" ","X X","X X", 'X',ModTools.StlIngot});
GameRegistry.addRecipe(new ItemStack (ModTools.ObsidianChestplate, 1), new Object[]{"X X","XXX","XXX", 'X',Blocks.obsidian});
GameRegistry.addRecipe(new ItemStack (ModTools.ObsidianHelmet, 1), new Object[]{"XXX","X X"," ", 'X',Blocks.obsidian});
GameRegistry.addRecipe(new ItemStack (ModTools.ObsidianLeggings, 1), new Object[]{"XXX","X X","X X", 'X',Blocks.obsidian});
GameRegistry.addRecipe(new ItemStack (ModTools.ObsidianBoots, 1), new Object[]{" ","X X","X X", 'X',Blocks.obsidian});
//Tools
GameRegistry.addRecipe(new ItemStack (ModTools.SteelPickaxe, 1), new Object[]{"XXX"," O "," O ", 'X', ModTools.StlIngot, 'O', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelAxe, 1), new Object[]{"XX","XO"," O", 'X', ModTools.StlIngot, 'O', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelHoe, 1), new Object[]{"XX"," O"," O", 'X', ModTools.StlIngot, 'O', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.SteelShovel, 1), new Object[]{"X","O","O", 'X', ModTools.StlIngot, 'O', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.woodIronPickaxe, 1), new Object[]{"XXX"," O "," O ", 'X', ModBlocks.woodIron, 'O', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.woodIronAxe, 1), new Object[]{"XX","XO"," O", 'X', ModBlocks.woodIron, 'O', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.woodIronHoe, 1), new Object[]{"XX"," O"," O", 'X', ModBlocks.woodIron, 'O', Items.stick});
GameRegistry.addRecipe(new ItemStack (ModTools.woodIronShovel, 1), new Object[]{"X","O","O", 'X', ModBlocks.woodIron, 'O', Items.stick});
//Monster Spawners, Shaped
/* currently defaults to pig beacuse of the tileID... something like that.
GameRegistry.addRecipe(new ItemStack (Blocks.mob_spawner, 6, 52), new Object[]{"XXX","XOX","XXX", 'X',Items.spider_eye, 'O', Blocks.gold_block});
GameRegistry.addRecipe(new ItemStack (Blocks.mob_spawner, 6, 51), new Object[]{"XXX","XOX","XXX", 'X',Items.bone, 'O', Blocks.gold_block});
GameRegistry.addRecipe(new ItemStack (Blocks.mob_spawner, 6, 50), new Object[]{"XXX","XOX","XXX", 'X',Items.gunpowder, 'O', Blocks.gold_block});
GameRegistry.addRecipe(new ItemStack (Blocks.mob_spawner, 6, 54), new Object[]{"XXX","XOX","XXX", 'X',Items.rotten_flesh, 'O', Blocks.gold_block});
GameRegistry.addRecipe(new ItemStack (Blocks.mob_spawner, 6, 55), new Object[]{"XXX","XOX","XXX", 'X',Items.slime_ball, 'O', Blocks.gold_block});
GameRegistry.addRecipe(new ItemStack (Blocks.mob_spawner, 6, 57), new Object[]{"XRX","ROR","XRX", 'R',Items.rotten_flesh, 'X',Items.porkchop ,'O',Blocks.gold_block});
GameRegistry.addRecipe(new ItemStack (Blocks.mob_spawner, 6, 120), new Object[]{"XXX","XOX","XXX", 'X',Items.emerald, 'O', Blocks.gold_block});
*/
//Blocks, Shaped, Marble
GameRegistry.addRecipe(new ItemStack (ModBlocks.MblBlock, 4), new Object[]{"OXO","X X","OXO", 'O',Items.quartz, 'X', Blocks.gravel});
GameRegistry.addRecipe(new ItemStack (ModBlocks.BlackMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 0)}); //black
GameRegistry.addRecipe(new ItemStack (ModBlocks.RedMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 1)}); //red
GameRegistry.addRecipe(new ItemStack (ModBlocks.GreenMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 2)}); //green
GameRegistry.addRecipe(new ItemStack (ModBlocks.BrownMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 3)}); //brown
GameRegistry.addRecipe(new ItemStack (ModBlocks.BlueMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 4)}); //blue
GameRegistry.addRecipe(new ItemStack (ModBlocks.PurpleMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 5)}); //purple
GameRegistry.addRecipe(new ItemStack (ModBlocks.CyanMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 6)}); //cyan
GameRegistry.addRecipe(new ItemStack (ModBlocks.LightGrayMblBlock, 8),new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 7)}); //light grey
GameRegistry.addRecipe(new ItemStack (ModBlocks.GrayMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 8)}); //gray
GameRegistry.addRecipe(new ItemStack (ModBlocks.PinkMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 9)}); //pink
GameRegistry.addRecipe(new ItemStack (ModBlocks.LimeMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 10)}); //lime
GameRegistry.addRecipe(new ItemStack (ModBlocks.YellowMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 11)}); //yellow
GameRegistry.addRecipe(new ItemStack (ModBlocks.LightBlueMblBlock, 8),new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 12)}); //light blue
GameRegistry.addRecipe(new ItemStack (ModBlocks.MagentaMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 13)}); //magenta
GameRegistry.addRecipe(new ItemStack (ModBlocks.OrangeMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 14)}); //orange
GameRegistry.addRecipe(new ItemStack (ModBlocks.WhiteMblBlock, 8), new Object[]{"XXX","XOX","XXX", 'X',ModBlocks.MblBlock, 'O', new ItemStack(Items.dye, 1, 15)}); //white
//Blocks, Shaped, Marble Slab
//Blocks, Shaped, Marble Stairs
//Blocks, Shaped, Resin Coated Wood
//GameRegistry.addRecipe(new ItemStack (ModBlocks.woodResin, 8), new Object[]{"XXX","XOX","XXX", 'X',Blocks.planks, 'O', new ItemStack(ModBlocks.TreeSap, 1)});
//Blocks, Plants, Gourds
GameRegistry.addShapelessRecipe(new ItemStack (Blocks.grass, 1), new Object[]{Blocks.dirt, Items.wheat_seeds});
GameRegistry.addShapelessRecipe(new ItemStack (ModBlocks.GlowMelonSeeds, 4), new Object[]{ModBlocks.GlowMelon});
GameRegistry.addRecipe(new ItemStack (ModBlocks.GlowMelon, 1), new Object[]{" X ","XOX"," X ", 'X', Blocks.glowstone,'O', Blocks.melon_block});
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.woodIron, 8), "XXX","XOX","XXX", 'X', "plankWood",'O', "ingotIron"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.woodResin, 8), "XXX","XOX","XXX", 'X', "plankWood",'O', ModBlocks.TreeSap));
/*
GameRegistry.addRecipe(new ItemStack (ModBlocks.woodOakResin, 8), new Object[]{"XXX","XOX","XXX", 'O',ModBlocks.TreeSap, 'X', new ItemStack(Blocks.planks, 1, 0)}); //Oak
GameRegistry.addRecipe(new ItemStack (ModBlocks.woodSpruceResin, 8), new Object[]{"XXX","XOX","XXX", 'O',ModBlocks.TreeSap, 'X', new ItemStack(Blocks.planks, 1, 1)}); //Spruce
GameRegistry.addRecipe(new ItemStack (ModBlocks.woodBirchResin, 8), new Object[]{"XXX","XOX","XXX", 'O',ModBlocks.TreeSap, 'X', new ItemStack(Blocks.planks, 1, 2)}); //Birch
GameRegistry.addRecipe(new ItemStack (ModBlocks.woodJungleResin, 8), new Object[]{"XXX","XOX","XXX", 'O',ModBlocks.TreeSap, 'X', new ItemStack(Blocks.planks, 1, 3)}); //Jungle
GameRegistry.addRecipe(new ItemStack (ModBlocks.woodAcaciaResin, 8), new Object[]{"XXX","XOX","XXX", 'O',ModBlocks.TreeSap, 'X', new ItemStack(Blocks.planks, 1, 4)}); //Acacia
GameRegistry.addRecipe(new ItemStack (ModBlocks.woodDarkOakResin, 8), new Object[]{"XXX","XOX","XXX", 'O',ModBlocks.TreeSap, 'X', new ItemStack(Blocks.planks, 1, 5)}); //Dark Oak
*/
//Chests
// GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.IronChest, 1), "XXX","XOX","XXX", 'X', "ingotIron", 'O',Blocks.chest));
//GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.woodCherryResin, 8), "XXX","XOX","XXX", 'X', "plank_cherry",'O', ModBlocks.TreeSap));
//Paper
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.PaperPulp, 3), "XXX","XOX","XXX", 'X', "stickWood", 'O',Items.water_bucket));
GameRegistry.addRecipe(new ItemStack(Items.paper, 3), "XXX","XXX", 'X', ModBlocks.PaperPulp);
GameRegistry.addShapelessRecipe(new ItemStack (Items.string, 4), new Object[]{Blocks.wool});
}
public static void addSmeltingRec(){
GameRegistry.addSmelting(new ItemStack(Items.iron_ingot, 1), new ItemStack(ModTools.StlIngot, 1), 0.2F);
//GameRegistry.addSmelting(new ItemStack(ModBlocks.woodResin, 1), new ItemStack(ModBlocks.woodFireHardened, 1), 0.2F);
/*
GameRegistry.addSmelting(new ItemStack(ModBlocks.woodOakResin, 1), new ItemStack(ModBlocks.woodOakFireHard, 1), 0.3F);
GameRegistry.addSmelting(new ItemStack(ModBlocks.woodSpruceResin, 1), new ItemStack(ModBlocks.woodSpruceFireHard, 1), 0.3F);
GameRegistry.addSmelting(new ItemStack(ModBlocks.woodAcaciaResin, 1), new ItemStack(ModBlocks.woodAcaciaFireHard, 1), 0.3F);
GameRegistry.addSmelting(new ItemStack(ModBlocks.woodDarkOakResin, 1), new ItemStack(ModBlocks.woodDarkOakFireHard, 1), 0.3F);
GameRegistry.addSmelting(new ItemStack(ModBlocks.woodJungleResin, 1), new ItemStack(ModBlocks.woodJungleFireHard, 1), 0.3F);
GameRegistry.addSmelting(new ItemStack(ModBlocks.woodBirchResin, 1), new ItemStack(ModBlocks.woodBirchFireHard, 1), 0.3F);
*/
}
}
That should be everywhere it is used. I'll make sure, but just want to get this out now. Thank you for the quick reply!
EDIT: I thought about what you said about it being woodResin, and it made me realize that my mod IS being reobfuscated. I made a change to vanilla blocks (not a base class edit) and my new mod version does have the new changes to the blocks. It only crashes when I try to add my new blocks, which are all new wood blocks and one new chest. I'm looking into this further to see if I can isolate the problem with my new block types.
Thanks so much for your help so far. Just posting my code for you got me thinking about it in a new way. Gotta' love that second pair of eyes.
EDIT#2:The error seems to occur from the crafting manager. I can't see what's wrong with the recipe, but at least I know it's not gradlew build. I was thinking this problems was a lot crazier than it might actually be.
I ran the mod with woodResin declared in ModBlocks but with it's recipe commented out and it ran fine. It's only when I uncomment the recipe that I encounter the crash error.
Here's the crafting code- the top works, the bottom doesn't:
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.woodIron, 8), "XXX","XOX","XXX", 'X', "plankWood",'O', "ingotIron"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.woodResin, 8), "XXX","XOX","XXX", 'X', "plankWood",'O', ModBlocks.TreeSap));
I also find that simply the process of posting my questions sometimes gets me thinking about the answer.
Your code for woodResin looks okay to me though. You properly declare the field in ModBlocks and it is assigned a value. Then you reference it properly from the other class as ModBlocks.woodResin.
So I'm really not sure what the issue is. But at least you now know the specific lines causing you trouble so hopefully you can work through it.
I hope I can figure it out too! Thanks for your help by the way, I really appreciate it.
Is it possible that everything in my mod is being reobfuscated except for the references in the crafting manager to my new items in ModBlocks (the file where I declare and register my blocks and items)? That seems... bizarre. But then again I don't know exactly how everything works, so I can't make any assumptions.
Is there any way to check on what's happening in detail? I'm not sure exactly what I'm asking for in that question... maybe some kind of utility mod/program for looking into these types of problems and isolating the exact issue? Although that's probably just the error report Perhaps there's something that I can look for in the finished jar file to help isolate the problem?
I don't think it is an obfuscation problem. As you mentioned, generally everything else is working and it is particular to a few lines of code. Doesn't sound like a general problem.
The technique for debugging usually involves "tracing" the execution of your code. One way to do this is to use the debug mode of your IDE (do you use Eclipse?) and set breakpoints in the code and watch the values you're interested in. Another way is to add console statements (System.out.println()) to print out values at critical points in the code.
I have a question though -- do you have a number of other mods installed as well? I see a lot of references to other mods in that crash report... I'd probably make sure there weren't other mods installed and see if it still crashes.
It does run on its own! Well, it's dependent on another mod right now, so it has one other mod in the folder, but close enough.
I didn't even think of checking that because I haven't changed the mods since I last played several months ago. I wonder why that's different from then to now... Would packaging a mod with referenced libraries (like in the case of an addon) cause a problem if it was done in two separate mods? What I mean is the following:
I did a compatibility between Metallurgy and Balkon's weapon mod and added those mods into the forge/libs folder for that project. However it is also in my current mod's forge/libs folder. I know there is a problem with packaging mods together, but I don't remember how that is done. Is that what I'm doing? If so it is definitely what's wrong! I started to test the theory, but I have to mess around with my environment a bit to get a functioning version without those mods there. It's been long enough since I've modded that I may have left my libs folder in a bad state and not even realized it! Although now that I think about it, I think packaging them together involves importing the mod's code in with your own. That's not what I've done.
And a quick question about tracing: does this only work when the code in the IDE is the problem? My stuff is running fine in Eclipse, it's only when I run the mod in actual minecraft that I have any issues. Is there a way to do this for actual minecraft, not in the dev environment? (Would that even be helpful at that point? I'm not sure, but it seems worth asking!)
EDIT:
How funny. It seems to be my own two mods that aren't playing nice with each other! There must be something wrong with how I have the separate environments set up. Perhaps I'm even packaging them together on accident *shudders* That would be embarrassing.
Anyway, thanks so much for your help! You pinpointed the problem exactly. I'll keep digging around and see what I'm doing wrong between my mods.
UPDATE:
I put all of my mods into the mod directory of my forge folder for testing, and everything works fine in the dev environment. When I run the exact same thing in actual minecraft only one of my mods will load the items that were registered; it's like the other one doesn't exist at all, and minecraft will actually give a warning that the blocks from the mod will be removed from the game world.
This explains the java.lang error. My blocks are literally not even there to be recognizes! My blocks will not load from both of my mods in actual minecraft even though they do in the dev version. What could cause this? I'm at a complete loss, though I'm pretty glad to have finally isolated the problem. Any ideas?
I'm thinking maybe something with the MCP versions? Should I reinstall Forge? I'm not sure what to do at this point.