Thanks for the feedback! I'll look into it and get a new mod link up that fixes the sanguinite weapon problem. It's probably all of them and not just the halberd, so I'll be sure to get it fixed.
EDIT: 11 November 2015
I had actually forgotten to include Sanguinite weapon effects entirely! I think you may be referring to Kalendrite weapons; there was an error where the regeneration buff would be applied to the enemy you were attacking and not the player, definitely not something you want! I fixed the error and included Sanguinite weapon effects. They now have a 30% to inflict the wither debuff onto enemies.
The new version 0.1.2 is now up. If there are any issues let me know and I'll get them fixed. I'm going to start with graphics for katanas and flails, these weapon types are far overdue! I hope to get a version out with them added by the end of December, so hopefully you'll be seeing that soon. Thanks to all that use this script, it's cool putting something out and seeing people use it.
btw, it appears that most of the weapons don't take any damage when you attack with them; the only exceptions are spears, knives, and boomerangs, when you throw them.
Thanks for pointing this out! Do you mean that the weapons themselves don't degrade and eventually break or is it a problem with causing damage? I'll be looking into it either way and get a fix going for it.
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 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?
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 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!
I did a compatibility mod between Metallurgy 4 and Balkon's weapons. I had seen that it was in the works in 2011, but I don't think it was ever completed even though there were some art assets made for it. It's still a WIP, but most of the compatibility is there, just needs to be tweaked here and there. Metallurgy is a great mod and I've been enjoying it immensely; thanks for all the hard work!
I haven't played the game you mention,but I think the idea sounds pretty neat. It would be neat to have a system that rewards you for what you like doing. One person may prefer farming or fishing while another might just like killing monsters all the time. I'm certainly interested, good luck with you mod.
I've done a compatibility mod between BalkondeurAlpha's weapon mod and Metallurgy 4. Now the metals in Metallurgy can be used to craft most of the weapons in Balkon's weapon's mod! This is my first Minecraft mod, so there's still much and more to do before this is finalized, but most of the functionality is there.
As of now you are able to craft the following weapons with no issues:
Halberd's
Spear's
Battleaxe's
Warhammer's
Knives
Bayonets
The following things still need to be implemented or fixed:
Boomerangs- only apply metallurgy metal effects when used as a melee weapon. Throwing the boomerang will not trigger it. Also, when thrown the boomerang will appear as a normal wooden boomerang. It's something that I'm looking into.
Flails/Katana's have no implementation as of yet, partly because I have no graphic for katana's or flails.
The weapons that cause potion effects may be weaker/more powerful that those of Metallurgy. I am fine tuning the potion effects. but thus far have been unable to find how long they should last.
Note: The textures for the weapons are either part of Balkon's weapon mod or from art assets posted by ShadowClaimer in Balkon's thread (I believe Shadow was a part of the Metallurgy team until recently. I am very new to both Minecraft and the forum so I'm not totally sure on this). Shadow had done many textures for the weapons on a planned compatibility, but I don't think it was ever actually completed.
If there are any issues please post and I will do my best to resolve them. And if anyone knows how long the weapon effects should last or how to change the graphic for the thrown boomerang, let me know!
xD sorry guys! Thanks for being patient with me though lol. Bit of an embarrassing derp moment there
And sorry to OP for hijack too.
It's cool! I just read through everything and I learned something too. And after going through MANY crashes because of obfuscated vs. deobfusated jars I can say that all of the above is going to be super useful to any new modders that can't get the environment quite right. Just download CodeChickenCore and you will be spared the massive headache! And on a bright note, I have Balkon's Weapon's and Metallurgy working together quite nicely now. Thanks for all the help!
EDIT(12/24/2014) - Lots of edits going on! I managed to fix this, for anyone reading in the future. I downloaded the CodeChickenCore mod which will deobfuscate jar's in the project automatically. I wasn't able to get this working with Jadclipse, but this way works great and is literally plug and play. Put CodeChickenCore in forge/eclipse/mods and put whichever mod you are adding on to in forge/libs (you may have to create this folder). Add the mod to the build path in eclipse and you are good to go! Thanks to everyone for your help, this is totally solved now!
EDIT (12/23/2014): Just saw the above reply- I was composing my post so it hadn't loaded! I'll make sure that's there in my completed. I can find his modid, no problems there. Thank you for the help!
I ran into an issue and I'm not sure what's causing it. I have run BON to deobfuscate the mods jar file, changed it to a jar file by adding ".jar" and imported it as an external jar in eclipse's library. While that did make it so all the classes from the mod could be access within my own code, I am getting an error when I enter my minecraft game world (and here I was thinking it was working just because it compiled and started up... *sigh*). The error report (if it's needed):
---- Minecraft Crash Report ----
// Uh... Did I do that?
Time: 12/24/14 2:54 PM
Description: Ticking player
java.lang.NoSuchFieldError: isClient
at ckathode.weaponmod.WMClientEventHandler.onPlayerTick(WMClientEventHandler.java:25)
at cpw.mods.fml.common.eventhandler.ASMEventHandler_7_WMClientEventHandler_onPlayerTick_PlayerTickEvent.invoke(.dynamic)
at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:138)
at cpw.mods.fml.common.FMLCommonHandler.onPlayerPreTick(FMLCommonHandler.java:345)
at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:259)
at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:330)
at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:329)
at net.minecraft.network.play.client.C03PacketPlayer.processPacket(C03PacketPlayer.java:37)
at net.minecraft.network.play.client.C03PacketPlayer$C06PacketPlayerPosLook.processPacket(C03PacketPlayer.java:271)
at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at ckathode.weaponmod.WMClientEventHandler.onPlayerTick(WMClientEventHandler.java:25)
at cpw.mods.fml.common.eventhandler.ASMEventHandler_7_WMClientEventHandler_onPlayerTick_PlayerTickEvent.invoke(.dynamic)
at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:138)
at cpw.mods.fml.common.FMLCommonHandler.onPlayerPreTick(FMLCommonHandler.java:345)
at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:259)
-- Player being ticked --
Details:
Entity Type: null (net.minecraft.entity.player.EntityPlayerMP)
Entity ID: 283
Entity Name: Player609
Entity's Exact location: 251.50, 76.00, 238.50
Entity's Block location: World: (251,76,238), Chunk: (at 11,4,14 in 15,14; contains blocks 240,0,224 to 255,255,239), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Entity's Momentum: 0.00, 0.00, 0.00
Stacktrace:
at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:330)
at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:329)
at net.minecraft.network.play.client.C03PacketPlayer.processPacket(C03PacketPlayer.java:37)
at net.minecraft.network.play.client.C03PacketPlayer$C06PacketPlayerPosLook.processPacket(C03PacketPlayer.java:271)
at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
-- Ticking connection --
Details:
Connection: net.minecraft.network.NetworkManager@79c3574e
Stacktrace:
at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
-- 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: 857028208 bytes (817 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 38, allocated: 13, tallocated: 95
FML: MCP v9.05 FML v7.10.85.1230 Minecraft Forge 10.13.2.1230 5 mods loaded, 5 mods active
mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
FML{7.10.85.1230} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.2.1230.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Forge{10.13.2.1230} [Minecraft Forge] (forgeSrc-1.7.10-10.13.2.1230.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
zombiebearrecipe{0.0.1} [Zombiebear Recipe] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
weaponmod{v1.14.3} [Balkon's WeaponMod] (balkonweapons.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Profiler Position: N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Player Count: 1 / 8; [EntityPlayerMP['Player609'/283, l='Test', x=251.50, y=76.00, z=238.50]]
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to 'fml,forge'
To attempt to fix this I tried several things, mostly importing into eclipse's library different ways. It didn't help and I'm not sure why this is happening. The code ran when in my own project so I'm thinking I'm either importing it as a library the wrong way, or the original mod's jar file was compiled using a different version of forge than my own and it's causing issues (or something else, I'm taking a stab in the dark).
It depends, if you only want access to the resources in the mod to extend onto them, it's as simple as using BON to deobfuscate the mod and load that into your IDE as a library
However if you also want the source code behind that (for educational purposes of course...), then it's a little more complicated, you'll need to decompile the jar.
Decompiling the jar is simple, depending on what decompiler you use, but it results in errors all through the source code (going from the code you write (called high-level code) to the actual code stored in class files (called bytecode) is simple, going from bytecode to high-level code is not so simple). You can use this to just get the rough idea of how the code works, however loading it into your IDE as a library to get a better view of the methods and classes available to you (outside of using the Javadocs viewer in your IDE) will lead up to you having to fix all the errors.
Thanks for the information! I'm assuming bytecode is a bit like machine code. I haven't taken a look at byte code yet, but some assembly language has certainly showed me how tough it can be to go through low level code. I want to take look at the source for the Metallurgy mod and see how to make it compatible with Balkon's weaponmod, so this is super helpful.
IDEA (native) and Eclipse (with a plugin) can do that for you automatically while only using the Deobf jars as a library.
Thanks for the plugin for Eclipse. I've got it loaded up and working, and using BON and adding the folder as an external class folder to the library worked like a charm.
Now one more followup question: Since this is a hard dependency that would mean that Balkan's weaponmod (the one I'm modding) MUST be installed or this won't work, correct? So next I should look into checking if the mod is loaded, etc? Since I'll be able to see the source code of everything now I can look for examples in existing mods that offer support, just want to make sure that I'm heading in the right direction with this.
I'm pretty new to the Minecraft modding scene (like I literally started 3 days ago), though i do have some experience with coding, mainly C++ with some Ruby. I'm trying to add on to Balkon's weapons in a manner that is 'clean and elegant' and doesn't result in a terrible mess. I've already added a new ingot that can be used for the weapons, and it's working great so far (textures, recipe, everything).
However, the only way I could do this was to import the code directly into my own mod package (right terminology?) and create new classes that extend on his. I've read about API's for adding on, but have no idea on how to use one, or even how to check and see if the opensource code that I'm using actually qualifies as one. I read that I could add mods(or was it API's?) into a library... but I have no idea how to do that either, although header files from C++ come to mind. Does anyone have experience on how to set up the environment properly to add on to a mod without having to package it together?
Any help on this would be appreciated, especially if there is a guide somewhere on modding a mod that I missed!
*As a quick note, I am using Minecraft version 1.7.10 and have Eclipse set up with Forge and MCP. I already packaged my mod together with Balkon's as a single mod (just for personal use as I learn to mod)... but that feels like some kind of terrible mess that is best avoided.
0
Thanks for the feedback! I'll look into it and get a new mod link up that fixes the sanguinite weapon problem. It's probably all of them and not just the halberd, so I'll be sure to get it fixed.
EDIT: 11 November 2015
I had actually forgotten to include Sanguinite weapon effects entirely! I think you may be referring to Kalendrite weapons; there was an error where the regeneration buff would be applied to the enemy you were attacking and not the player, definitely not something you want! I fixed the error and included Sanguinite weapon effects. They now have a 30% to inflict the wither debuff onto enemies.
The new version 0.1.2 is now up. If there are any issues let me know and I'll get them fixed. I'm going to start with graphics for katanas and flails, these weapon types are far overdue! I hope to get a version out with them added by the end of December, so hopefully you'll be seeing that soon. Thanks to all that use this script, it's cool putting something out and seeing people use it.
1
Thanks for pointing this out! Do you mean that the weapons themselves don't degrade and eventually break or is it a problem with causing damage? I'll be looking into it either way and get a fix going for it.
0
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.
0
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?
0
//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));
0
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!
0
0
4
UPDATED: 11 November 2015 -
Dropbox Link to updated version 0.1.2:
https://www.dropbox.com/s/ey0cnk4oew8o2bn/Zombiebear -Compatability for Balkans-1.7.10 - 0.1.2.jar?dl=0
UPDATED: 9 October 2015:
Dropbox Link to updated version 0.1.1:https://dl.dropboxusercontent.com/u/67986878/Zombiebear -Compatability for Balkons-1.7.10 - 0.1.1.jarI've done a compatibility mod between BalkondeurAlpha's weapon mod and Metallurgy 4. Now the metals in Metallurgy can be used to craft most of the weapons in Balkon's weapon's mod! This is my first Minecraft mod, so there's still much and more to do before this is finalized, but most of the functionality is there.
As of now you are able to craft the following weapons with no issues:
Halberd's
Spear's
Battleaxe's
Warhammer's
Knives
Bayonets
The following things still need to be implemented or fixed:
Boomerangs- only apply metallurgy metal effects when used as a melee weapon. Throwing the boomerang will not trigger it. Also, when thrown the boomerang will appear as a normal wooden boomerang. It's something that I'm looking into.
Flails/Katana's have no implementation as of yet, partly because I have no graphic for katana's or flails.
The weapons that cause potion effects may be weaker/more powerful that those of Metallurgy. I am fine tuning the potion effects. but thus far have been unable to find how long they should last.
So with that, here is the download link, enjoy!
Dropbox: https://db.tt/r5n7efWV
Note: The textures for the weapons are either part of Balkon's weapon mod or from art assets posted by ShadowClaimer in Balkon's thread (I believe Shadow was a part of the Metallurgy team until recently. I am very new to both Minecraft and the forum so I'm not totally sure on this). Shadow had done many textures for the weapons on a planned compatibility, but I don't think it was ever actually completed.
If there are any issues please post and I will do my best to resolve them. And if anyone knows how long the weapon effects should last or how to change the graphic for the thrown boomerang, let me know!
2
It's cool! I just read through everything and I learned something too. And after going through MANY crashes because of obfuscated vs. deobfusated jars I can say that all of the above is going to be super useful to any new modders that can't get the environment quite right. Just download CodeChickenCore and you will be spared the massive headache! And on a bright note, I have Balkon's Weapon's and Metallurgy working together quite nicely now. Thanks for all the help!
0
EDIT (12/23/2014): Just saw the above reply- I was composing my post so it hadn't loaded! I'll make sure that's there in my completed. I can find his modid, no problems there. Thank you for the help!
I ran into an issue and I'm not sure what's causing it. I have run BON to deobfuscate the mods jar file, changed it to a jar file by adding ".jar" and imported it as an external jar in eclipse's library. While that did make it so all the classes from the mod could be access within my own code, I am getting an error when I enter my minecraft game world (and here I was thinking it was working just because it compiled and started up... *sigh*). The error report (if it's needed):
// Uh... Did I do that?
Time: 12/24/14 2:54 PM
Description: Ticking player
java.lang.NoSuchFieldError: isClient
at ckathode.weaponmod.WMClientEventHandler.onPlayerTick(WMClientEventHandler.java:25)
at cpw.mods.fml.common.eventhandler.ASMEventHandler_7_WMClientEventHandler_onPlayerTick_PlayerTickEvent.invoke(.dynamic)
at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:138)
at cpw.mods.fml.common.FMLCommonHandler.onPlayerPreTick(FMLCommonHandler.java:345)
at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:259)
at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:330)
at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:329)
at net.minecraft.network.play.client.C03PacketPlayer.processPacket(C03PacketPlayer.java:37)
at net.minecraft.network.play.client.C03PacketPlayer$C06PacketPlayerPosLook.processPacket(C03PacketPlayer.java:271)
at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at ckathode.weaponmod.WMClientEventHandler.onPlayerTick(WMClientEventHandler.java:25)
at cpw.mods.fml.common.eventhandler.ASMEventHandler_7_WMClientEventHandler_onPlayerTick_PlayerTickEvent.invoke(.dynamic)
at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:138)
at cpw.mods.fml.common.FMLCommonHandler.onPlayerPreTick(FMLCommonHandler.java:345)
at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:259)
-- Player being ticked --
Details:
Entity Type: null (net.minecraft.entity.player.EntityPlayerMP)
Entity ID: 283
Entity Name: Player609
Entity's Exact location: 251.50, 76.00, 238.50
Entity's Block location: World: (251,76,238), Chunk: (at 11,4,14 in 15,14; contains blocks 240,0,224 to 255,255,239), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Entity's Momentum: 0.00, 0.00, 0.00
Stacktrace:
at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:330)
at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:329)
at net.minecraft.network.play.client.C03PacketPlayer.processPacket(C03PacketPlayer.java:37)
at net.minecraft.network.play.client.C03PacketPlayer$C06PacketPlayerPosLook.processPacket(C03PacketPlayer.java:271)
at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
-- Ticking connection --
Details:
Connection: net.minecraft.network.NetworkManager@79c3574e
Stacktrace:
at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
-- 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: 857028208 bytes (817 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 38, allocated: 13, tallocated: 95
FML: MCP v9.05 FML v7.10.85.1230 Minecraft Forge 10.13.2.1230 5 mods loaded, 5 mods active
mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
FML{7.10.85.1230} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.2.1230.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Forge{10.13.2.1230} [Minecraft Forge] (forgeSrc-1.7.10-10.13.2.1230.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
zombiebearrecipe{0.0.1} [Zombiebear Recipe] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
weaponmod{v1.14.3} [Balkon's WeaponMod] (balkonweapons.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Profiler Position: N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Player Count: 1 / 8; [EntityPlayerMP['Player609'/283, l='Test', x=251.50, y=76.00, z=238.50]]
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to 'fml,forge'
I hope I just imported it wrong (since that seems easiest to fix), otherwise I think I'm looking at a much bigger problem. By the way, I followed this link's instructions to the letter, so all of my files are in the directory's specified in step 1:
http://www.minecraftforum.net/forums/mapping-and-modding/mapping-and-modding-tutorials/1571434-tutorial-modding-with-apis
0
Thanks for the information! I'm assuming bytecode is a bit like machine code. I haven't taken a look at byte code yet, but some assembly language has certainly showed me how tough it can be to go through low level code. I want to take look at the source for the Metallurgy mod and see how to make it compatible with Balkon's weaponmod, so this is super helpful.
Thanks for the plugin for Eclipse. I've got it loaded up and working, and using BON and adding the folder as an external class folder to the library worked like a charm.
Now one more followup question: Since this is a hard dependency that would mean that Balkan's weaponmod (the one I'm modding) MUST be installed or this won't work, correct? So next I should look into checking if the mod is loaded, etc? Since I'll be able to see the source code of everything now I can look for examples in existing mods that offer support, just want to make sure that I'm heading in the right direction with this.
0
0
However, the only way I could do this was to import the code directly into my own mod package (right terminology?) and create new classes that extend on his. I've read about API's for adding on, but have no idea on how to use one, or even how to check and see if the opensource code that I'm using actually qualifies as one. I read that I could add mods(or was it API's?) into a library... but I have no idea how to do that either, although header files from C++ come to mind. Does anyone have experience on how to set up the environment properly to add on to a mod without having to package it together?
Any help on this would be appreciated, especially if there is a guide somewhere on modding a mod that I missed!
*As a quick note, I am using Minecraft version 1.7.10 and have Eclipse set up with Forge and MCP. I already packaged my mod together with Balkon's as a single mod (just for personal use as I learn to mod)... but that feels like some kind of terrible mess that is best avoided.