Jump to content

Recommended Posts

Posted

Hello all!

 

I've updated a mod of mine from 1.7.10 to 1.8, everything builds properly, but on run, Forge doesn't see my mod at all. I feel like there should be something biting me in the ass by now, but it seems I've done everything right. Feel free to ask for other snippets too :)

 

Main Class:

 

 

package robosphinx.mods.quartz;

/**
* @author robosphinx
*/

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.item.Item;
import robosphinx.mods.quartz.handler.ConfigHandler;
import robosphinx.mods.quartz.handler.RecipeHandler;
import robosphinx.mods.quartz.init.QuartzPlusBlocks;
import robosphinx.mods.quartz.init.QuartzPlusItems;
import robosphinx.mods.quartz.item.*;
import robosphinx.mods.quartz.block.*;
import robosphinx.mods.quartz.reference.Reference;
import robosphinx.mods.quartz.world.Generation;

/*
* What is our mod?
*/
@Mod (modid = Reference.MOD_ID, name = Reference.NAME, version = Reference.VERSION/*, guiFactory = Reference.GUI_FACTORY_CLASS*/)
public class Quartz {
    
    /*
     * Makes this class accessible from other mods (makes addons and integration possible).
     */
    @Instance (value = Reference.MOD_ID)
    public static Quartz     instance;
    
    private ConfigHandler    config;
    private RecipeHandler    recipes;
    private QuartzPlusBlocks blocks;
    private QuartzPlusItems  items;
    
    /*
     * Forge pre-initialization call, most of our loading stuff is here.
     */
    @Mod.EventHandler
    public void preInit (FMLPreInitializationEvent event) {
        
        // Gets the config file: if none exists, one is created.
        config.init(event.getSuggestedConfigurationFile());
        
        // Register World Gen
        GameRegistry.registerWorldGenerator(new Generation(), 0);
    }
    
    /*
     * Forge initialization call, adds smelting to the registry.
     */
    @Mod.EventHandler
    public void init (FMLInitializationEvent event) {
        if (event.getSide() == Side.CLIENT) {
            RenderItem render = Minecraft.getMinecraft().getRenderItem();

            // Blocks
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.quartz_slab),        0, new ModelResourceLocation("quartz:" + ((QuartzHalfSlab) blocks.quartz_slab).getUnlocalizedName(),          "inventory"));
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.double_quartz_slab), 0, new ModelResourceLocation("quartz:" + ((QuartzDoubleSlab) blocks.double_quartz_slab).getUnlocalizedName(), "inventory"));
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.white_quartz_ore),   0, new ModelResourceLocation("quartz:" + ((QuartzOre) blocks.white_quartz_ore).getUnlocalizedName(),          "inventory"));
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.rose_quartz_ore),    0, new ModelResourceLocation("quartz:" + ((RoseQuartzOre) blocks.rose_quartz_ore).getUnlocalizedName(),       "inventory"));
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.smoky_quartz_ore),   0, new ModelResourceLocation("quartz:" + ((SmokyQuartzOre) blocks.smoky_quartz_ore).getUnlocalizedName(),     "inventory"));
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.rose_quartz_block),  0, new ModelResourceLocation("quartz:" + ((RoseQuartzBlock) blocks.rose_quartz_block).getUnlocalizedName(),   "inventory"));
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.smoky_quartz_block), 0, new ModelResourceLocation("quartz:" + ((SmokyQuartzBlock) blocks.smoky_quartz_block).getUnlocalizedName(), "inventory"));

            // Items
            render.getItemModelMesher().register(items.smoky_quartz,   0, new ModelResourceLocation("quartz:" + ((SmokyQuartz)   items.smoky_quartz).getName(),   "inventory"));
            render.getItemModelMesher().register(items.rose_quartz,    0, new ModelResourceLocation("quartz:" + ((RoseQuartz)    items.rose_quartz).getName(),    "inventory"));
            render.getItemModelMesher().register(items.quartz_shovel,  0, new ModelResourceLocation("quartz:" + ((QuartzSpade)   items.quartz_shovel).getName(),  "inventory"));
            render.getItemModelMesher().register(items.quartz_pickaxe, 0, new ModelResourceLocation("quartz:" + ((QuartzPickaxe) items.quartz_pickaxe).getName(), "inventory"));
            render.getItemModelMesher().register(items.quartz_sword,   0, new ModelResourceLocation("quartz:" + ((QuartzSword)   items.quartz_sword).getName(),   "inventory"));
            render.getItemModelMesher().register(items.quartz_axe,     0, new ModelResourceLocation("quartz:" + ((QuartzAxe)     items.quartz_axe).getName(),     "inventory"));
            render.getItemModelMesher().register(items.quartz_hoe,     0, new ModelResourceLocation("quartz:" + ((QuartzHoe)     items.quartz_hoe).getName(),     "inventory"));
        }

        recipes.initRecipes();
        recipes.initSmelting();
    }
    
    @Mod.EventHandler
    public void postInit (FMLPostInitializationEvent event) {
        // Stub method at this point - Here if we need it.
    }
}

 

 

The further a society drifts from the truth, the more it hates those who speak it.

Posted

Guy above is right. All cpw. packages are now in mcforge. Also - why @Mod.EventHandler? Use simple @EventHandler.

 

Other than that - redesign your main class please and use proxy.

Side.X is NOT reliable in all cases, and certainly shouldnt be used when you have neat proxy system right under your hand.

1.7.10 is no longer supported by forge, you are on your own.

Posted

Interesting... My userdev still has all cpw.* packages in it –as well as– net.minecraftforge.fml.* in it. Thanks for pointing that out.

 

Additionally, I haven't had the need to do sided things in forever so I just used quick hackery - I'll clean that up in a separate proxy later :)

The further a society drifts from the truth, the more it hates those who speak it.

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.