Posted January 5, 201411 yr So I just started my mod, and I seem to get a weird error that makes my block not in the game, here is my code: package gmod.mods.roleplay.main; import gmod.mods.roleplay.main.common.block.BlockTest; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLLoadEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid = "Roleplay Craft", version = "0.0.1a") @NetworkMod(clientSideRequired = true, serverSideRequired = false) public class main_roleplay { public static Block testBlock; public static CreativeTabs tabRoleplay; public static int testBlockID = 3645; public void init(FMLInitializationEvent event) { } @EventHandler public void preInit(FMLPreInitializationEvent event) { testBlock = new BlockTest(testBlockID, Material.cloth).setUnlocalizedName("testBlock").setCreativeTab(this.tabRoleplay); GameRegistry.registerBlock(testBlock, "testBlock"); tabRoleplay = new CreativeTabs("tabRoleplay") { public ItemStack getIconItemStack() { return new ItemStack(Item.eyeOfEnder, 1, 0); }}; } public void load(FMLLoadEvent event) { LanguageRegistry.addName(testBlock, "Test Block"); } } Not new to java >> New to modding.
January 5, 201411 yr Is the block just not in the tab, or is the tab not there at all. It would help if you initialized the tab BEFORE assigning the block to it...
January 8, 201411 yr If you somehow did not understand the post above: @EventHandler public void preInit(FMLPreInitializationEvent event) { tabRoleplay = new CreativeTabs("tabRoleplay") { public ItemStack getIconItemStack() { return new ItemStack(Item.eyeOfEnder, 1, 0); }}; testBlock = new BlockTest(testBlockID, Material.cloth).setUnlocalizedName("testBlock").setCreativeTab(this.tabRoleplay); GameRegistry.registerBlock(testBlock, "testBlock"); } Before you even think about modding, please learn basic Java.
January 10, 201411 yr I'm *really* new to this, but don't you have to register the same string name through GameRegistry.registerBlock and LanguageRegistry.addName? At least, I'm doing that and I have things showing up in the Creative inventory. It may not actually be required, but couldn't hurt to check right?
January 10, 201411 yr don't you have to register the same string name through GameRegistry.registerBlock and LanguageRegistry.addName? No. GameRegistry.registerBlock registers a block into the code. LanguageRegistry.addName adds a name to be displayed in-game. For example: Block testBlock = new Block(1000, Material.air).setUnlocalizedName("testBlock").setTextureName("test_block"); GameRegistry.registerBlock(testBlock, "testBlock"); LanguageRegistry.addName(testBlock, "Test Block"); I personally like to register blocks with their unlocalized names like so: GameRegistry.registerBlock(testBlock, testBlock.getUnlocalizedName.substring(5)); Before you even think about modding, please learn basic Java.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.