package com.minemaarten.advancedmod; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import thaumcraft.api.ThaumcraftApi; import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.AspectList; import com.minemaarten.advancedmod.event.AdvancedModEventHandler; import com.minemaarten.advancedmod.init.ModBlocks; import com.minemaarten.advancedmod.init.ModTileEntities; import com.minemaarten.advancedmod.network.DescriptionHandler; import com.minemaarten.advancedmod.network.NetworkHandler; import com.minemaarten.advancedmod.proxy.CommonProxy; import com.minemaarten.advancedmod.reference.Reference; import com.minemaarten.advancedmod.tileentity.TileEntityCamoMine; import com.minemaarten.advancedmod.utility.Log; import com.minemaarten.advancedmod.world.gen.WorldGeneratorFlag; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent; import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; @Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION) public class AdvancedMod{ @Mod.Instance(Reference.MOD_ID) public static AdvancedMod instance; @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS) public static CommonProxy proxy; @Mod.EventHandler public void preInit(FMLPreInitializationEvent event){ ModBlocks.init(); ModTileEntities.init(); proxy.preInit(); GameRegistry.registerWorldGenerator(new WorldGeneratorFlag(), 0); NetworkHandler.init(); DescriptionHandler.init(); NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); MinecraftForge.EVENT_BUS.register(new AdvancedModEventHandler());//For registering events from the net.miencraftforge.event package. FMLCommonHandler.instance().bus().register(new AdvancedModEventHandler());//For registering events from the cpw.mods.fml.gameevent package. FMLInterModComms.sendMessage(Reference.MOD_ID, "camoMineBlacklist", new ItemStack(Blocks.stone)); FMLInterModComms.sendMessage("Waila", "register", "com.minemaarten.advancedmod.thirdparty.waila.Waila.onWailaCall"); Log.info("Pre Initialization Complete!"); if(Loader.isModLoaded("Thaumcraft")) { loadThaumcraft(); } } @Optional.Method(modid = "Thaumcraft") private void loadThaumcraft(){ ThaumcraftApi.registerObjectTag(new ItemStack(ModBlocks.dutchFlag), new AspectList().add(Aspect.AIR, 5)); } @Mod.EventHandler public void init(FMLInitializationEvent event){ proxy.init(); Log.info("Initialization Complete!"); } @Mod.EventHandler public void postInit(FMLPostInitializationEvent event){ proxy.postInit(); Log.info("Post Initialization Complete!"); } @Mod.EventHandler public void onIMCMessages(IMCEvent event){ Log.info("Receiving IMC"); for(IMCMessage message : event.getMessages()) { if(message.key.equalsIgnoreCase("camoMineBlacklist")) { if(message.isItemStackMessage()) { ItemStack blacklistedStack = message.getItemStackValue(); if(blacklistedStack.getItem() != null) { TileEntityCamoMine.camouflageBlacklist.add(blacklistedStack); Log.info(String.format("Mod %s added %s to be blacklisted as camouflage for the Camo Mine", message.getSender(), blacklistedStack.toString())); } else { throw new IllegalStateException(String.format("ItemStack tried to be used in registry by the mod %s has a null item.", message.getSender())); } } else { Log.warn(String.format("Mod %s sent a non-ItemStack message, where an ItemStack message was expected.", message.getSender())); } } else { Log.warn(String.format("Mod %s used an invalid IMC key: %s", message.getSender(), message.key)); } } } }