Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

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.

Well to start off that should crash. Because there are imports that don't exist. So yeah. There is the first problem.

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.

  • Author

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.