// Path: src/main/java/mc/Mitchellbrine/diseaseCraft/DiseaseCraft.java
// @SuppressWarnings("unchecked")
// @Mod(modid = References.MODID, name = References.NAME, version = References.VERSION)
// public class DiseaseCraft {
// 
// 	@SidedProxy(clientSide = "mc.Mitchellbrine.diseaseCraft.proxy.ClientProxy", serverSide = "mc.Mitchellbrine.diseaseCraft.proxy.CommonProxy")
// 	public static CommonProxy proxy;
// 
// 	public static Logger logger = LogManager.getLogger(References.MODID);
// 
// 	public static ScheduledExecutorService scheduler = new ScheduledThreadPoolExecutor(1);
// 
// 	public static boolean shouldUpdate = false;
// 
// 	public static final double MC_VERSION = 7.10;
// 
// 	@Mod.Instance
// 	public static DiseaseCraft instance;
// 
// 	public DiseaseCraft() {
// 		new ClassHelper();
// 	}
// 
// 	/**
// 	 * The order in disease loading is such:
// 	 *
// 	 * Pre-init: Register all the JSON diseases
// 	 * Init: Allow mods to register their diseases in code
// 	 * Post-init: Everything Disease related should be finished processing.
// 	 *
// 	 */
// 	@Mod.EventHandler
// 	public void preInit(FMLPreInitializationEvent event) {
// 		ConfigRegistry.init(new File((FMLInjectionData.data()[6]) + File.separator + "config" + File.separator));
// 		ConfigRegistry.doConfig(new Configuration(event.getSuggestedConfigurationFile()));
// 
// 
// 		proxy.registerStuff();
// 
// 		if (!ConfigRegistry.useNativeDiseases && DiseaseCraft.shouldUpdate && ConfigRegistry.autoUpdate) {
// 			DiseaseDownloader.init();
// 		}
// 
// 		/*
// 
// 		THE FOLLOWING WAS TEST CODE!
// 
// 		try {
// 			Class clazz = Class.forName("mc.Mitchellbrine.diseaseCraft.DiseaseCraft");
// 			clazz.getMethod("hello").setAccessible(true);
// 			Method method = clazz.getMethod("hello");
// 			if (method.getGenericReturnType() == Boolean.TYPE) {
// 				boolean worked = (Boolean)method.invoke(this);
// 				System.out.println(worked);
// 			}
// 		} catch (Exception ex) {
// 			ex.printStackTrace();
// 		}
// 
// 		Disease test = new Disease("testDisease");
// 
// 		Disease domainTest = new Disease("blahblah:testTwo");
// 
// 		Disease newerTest = new Disease("blahTwo:newer");
// 		newerTest.setMinimumVersion(3.0);
// 
// 		Disease effectTest = new Disease("blahThree:effect");
// 		for (int i = 1; i <= 16;i++) {
// 			effectTest.addEffect(i);
// 		}
// 
// 		Diseases.registerDisease(test);
// 		Diseases.registerDisease(domainTest);
// 		Diseases.registerDisease(newerTest);
// 		Diseases.registerDisease(effectTest);
// 
// 		System.out.println(test.isRequirementMet());
// 		System.out.println(test);
// 
// 		System.out.println(domainTest.isRequirementMet());
// 		System.out.println(domainTest);
// 
// 		System.out.println(newerTest.isRequirementMet());
// 		System.out.println(newerTest);
// 
// 		System.out.println(effectTest.isRequirementMet());
// 		System.out.println(effectTest); */
// 
// 		new Diseases();
// 
// 		DiseaseManager.findAllDiseases();
// 
// 		ConfigRegistry.STATE = 0;
// 		ConfigRegistry.triggerState();
// 
// 		registerAllEvents();
// 		EntityRegistration.init();
// 		ItemRegistry.init();
// 		NetworkRegistry.INSTANCE.registerGuiHandler(DiseaseCraft.instance, new GuiHandler());
// 		PacketHandler.init();
// 
// 	}
// 
// 	@Mod.EventHandler
// 	public void init(FMLInitializationEvent event) {
// 		ConfigRegistry.triggerState();
// 	}
// 
// 	@Mod.EventHandler
// 	public void postInit(FMLPostInitializationEvent event) {
// 		DiseaseManager.readAllJSONs();
// 		ConfigRegistry.triggerState();
// 	}
// 
// 	@Mod.EventHandler
// 	public void server(FMLServerStartingEvent event) {
// 		ConfigRegistry.triggerState();
// 	}
// 
// 	public boolean hello() {
// 		System.out.println("Hello world!");
// 		return true;
// 	}
// 
// 	private void registerAllEvents() {
// 		MinecraftForge.EVENT_BUS.register(new ContractingEvents());
// 		FMLCommonHandler.instance().bus().register(new ContractingEvents());
// 		MinecraftForge.ORE_GEN_BUS.register(new ContractingEvents());
// 		MinecraftForge.TERRAIN_GEN_BUS.register(new ContractingEvents());
// 
// 		if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
// 			MinecraftForge.EVENT_BUS.register(new mc.Mitchellbrine.diseaseCraft.client.gui.ClientGuiEvents());
// 			FMLCommonHandler.instance().bus().register(new mc.Mitchellbrine.diseaseCraft.client.gui.ClientGuiEvents());
// 		}
// 	}
// }


import mc.Mitchellbrine.diseaseCraft.DiseaseCraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityList;
import cpw.mods.fml.common.registry.EntityRegistry;
package mc.Mitchellbrine.diseaseCraft.entity;


/**
 * Created by Mitchellbrine on 2015.
 */
public class EntityRegistration {

	private static int START_ID = 500;

	public static void init() {
		registerEntity(EntityRat.class,"rat",7237230,3158064);
	}

	@SuppressWarnings("unchecked")
	private static void registerEntity(Class<? extends Entity> entity, String name) {
		int id = getUniqueId();
// Path: src/main/java/mc/Mitchellbrine/diseaseCraft/DiseaseCraft.java
// @SuppressWarnings("unchecked")
// @Mod(modid = References.MODID, name = References.NAME, version = References.VERSION)
// public class DiseaseCraft {
// 
// 	@SidedProxy(clientSide = "mc.Mitchellbrine.diseaseCraft.proxy.ClientProxy", serverSide = "mc.Mitchellbrine.diseaseCraft.proxy.CommonProxy")
// 	public static CommonProxy proxy;
// 
// 	public static Logger logger = LogManager.getLogger(References.MODID);
// 
// 	public static ScheduledExecutorService scheduler = new ScheduledThreadPoolExecutor(1);
// 
// 	public static boolean shouldUpdate = false;
// 
// 	public static final double MC_VERSION = 7.10;
// 
// 	@Mod.Instance
// 	public static DiseaseCraft instance;
// 
// 	public DiseaseCraft() {
// 		new ClassHelper();
// 	}
// 
// 	/**
// 	 * The order in disease loading is such:
// 	 *
// 	 * Pre-init: Register all the JSON diseases
// 	 * Init: Allow mods to register their diseases in code
// 	 * Post-init: Everything Disease related should be finished processing.
// 	 *
// 	 */
// 	@Mod.EventHandler
// 	public void preInit(FMLPreInitializationEvent event) {
// 		ConfigRegistry.init(new File((FMLInjectionData.data()[6]) + File.separator + "config" + File.separator));
// 		ConfigRegistry.doConfig(new Configuration(event.getSuggestedConfigurationFile()));
// 
// 
// 		proxy.registerStuff();
// 
// 		if (!ConfigRegistry.useNativeDiseases && DiseaseCraft.shouldUpdate && ConfigRegistry.autoUpdate) {
// 			DiseaseDownloader.init();
// 		}
// 
// 		/*
// 
// 		THE FOLLOWING WAS TEST CODE!
// 
// 		try {
// 			Class clazz = Class.forName("mc.Mitchellbrine.diseaseCraft.DiseaseCraft");
// 			clazz.getMethod("hello").setAccessible(true);
// 			Method method = clazz.getMethod("hello");
// 			if (method.getGenericReturnType() == Boolean.TYPE) {
// 				boolean worked = (Boolean)method.invoke(this);
// 				System.out.println(worked);
// 			}
// 		} catch (Exception ex) {
// 			ex.printStackTrace();
// 		}
// 
// 		Disease test = new Disease("testDisease");
// 
// 		Disease domainTest = new Disease("blahblah:testTwo");
// 
// 		Disease newerTest = new Disease("blahTwo:newer");
// 		newerTest.setMinimumVersion(3.0);
// 
// 		Disease effectTest = new Disease("blahThree:effect");
// 		for (int i = 1; i <= 16;i++) {
// 			effectTest.addEffect(i);
// 		}
// 
// 		Diseases.registerDisease(test);
// 		Diseases.registerDisease(domainTest);
// 		Diseases.registerDisease(newerTest);
// 		Diseases.registerDisease(effectTest);
// 
// 		System.out.println(test.isRequirementMet());
// 		System.out.println(test);
// 
// 		System.out.println(domainTest.isRequirementMet());
// 		System.out.println(domainTest);
// 
// 		System.out.println(newerTest.isRequirementMet());
// 		System.out.println(newerTest);
// 
// 		System.out.println(effectTest.isRequirementMet());
// 		System.out.println(effectTest); */
// 
// 		new Diseases();
// 
// 		DiseaseManager.findAllDiseases();
// 
// 		ConfigRegistry.STATE = 0;
// 		ConfigRegistry.triggerState();
// 
// 		registerAllEvents();
// 		EntityRegistration.init();
// 		ItemRegistry.init();
// 		NetworkRegistry.INSTANCE.registerGuiHandler(DiseaseCraft.instance, new GuiHandler());
// 		PacketHandler.init();
// 
// 	}
// 
// 	@Mod.EventHandler
// 	public void init(FMLInitializationEvent event) {
// 		ConfigRegistry.triggerState();
// 	}
// 
// 	@Mod.EventHandler
// 	public void postInit(FMLPostInitializationEvent event) {
// 		DiseaseManager.readAllJSONs();
// 		ConfigRegistry.triggerState();
// 	}
// 
// 	@Mod.EventHandler
// 	public void server(FMLServerStartingEvent event) {
// 		ConfigRegistry.triggerState();
// 	}
// 
// 	public boolean hello() {
// 		System.out.println("Hello world!");
// 		return true;
// 	}
// 
// 	private void registerAllEvents() {
// 		MinecraftForge.EVENT_BUS.register(new ContractingEvents());
// 		FMLCommonHandler.instance().bus().register(new ContractingEvents());
// 		MinecraftForge.ORE_GEN_BUS.register(new ContractingEvents());
// 		MinecraftForge.TERRAIN_GEN_BUS.register(new ContractingEvents());
// 
// 		if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
// 			MinecraftForge.EVENT_BUS.register(new mc.Mitchellbrine.diseaseCraft.client.gui.ClientGuiEvents());
// 			FMLCommonHandler.instance().bus().register(new mc.Mitchellbrine.diseaseCraft.client.gui.ClientGuiEvents());
// 		}
// 	}
// }


// Path: src/main/java/mc/Mitchellbrine/diseaseCraft/entity/EntityRegistration.java
import mc.Mitchellbrine.diseaseCraft.DiseaseCraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityList;
import cpw.mods.fml.common.registry.EntityRegistry;

package mc.Mitchellbrine.diseaseCraft.entity;


/**
 * Created by Mitchellbrine on 2015.
 */
public class EntityRegistration {

	private static int START_ID = 500;

	public static void init() {
		registerEntity(EntityRat.class,"rat",7237230,3158064);
	}

	@SuppressWarnings("unchecked")
	private static void registerEntity(Class<? extends Entity> entity, String name) {
		int id = getUniqueId();
		EntityRegistry.registerModEntity(entity, name, id, DiseaseCraft.instance, 80, 3, true);