@Mod.EventHandler
  public void init(FMLInitializationEvent event) {
    IEContent.init();

    GameRegistry.registerWorldGenerator(new IEWorldGen(), 0);
    MinecraftForge.EVENT_BUS.register(new EventHandler());
    FMLCommonHandler.instance().bus().register(new EventHandler());
    NetworkRegistry.INSTANCE.registerGuiHandler(instance, proxy);
    proxy.init();

    Lib.IC2 = Loader.isModLoaded("IC2") && Config.getBoolean("ic2compat");
    Lib.GREG = Loader.isModLoaded("gregtech") && Config.getBoolean("gregtechcompat");
    Config.setBoolean("ic2Manual", Lib.IC2);
    Config.setBoolean("gregManual", Lib.GREG);
    for (IECompatModule compat : IECompatModule.modules) compat.init();

    int messageId = 0;
    packetHandler.registerMessage(
        MessageMineralListSync.Handler.class,
        MessageMineralListSync.class,
        messageId++,
        Side.CLIENT);
    packetHandler.registerMessage(
        MessageTileSync.Handler.class, MessageTileSync.class, messageId++, Side.SERVER);
    packetHandler.registerMessage(
        MessageSpeedloaderSync.Handler.class,
        MessageSpeedloaderSync.class,
        messageId++,
        Side.CLIENT);
    packetHandler.registerMessage(
        MessageSkyhookSync.Handler.class, MessageSkyhookSync.class, messageId++, Side.CLIENT);
    packetHandler.registerMessage(
        MessageMinecartShaderSync.HandlerServer.class,
        MessageMinecartShaderSync.class,
        messageId++,
        Side.SERVER);
    packetHandler.registerMessage(
        MessageMinecartShaderSync.HandlerClient.class,
        MessageMinecartShaderSync.class,
        messageId++,
        Side.CLIENT);
    packetHandler.registerMessage(
        MessageRequestBlockUpdate.Handler.class,
        MessageRequestBlockUpdate.class,
        messageId++,
        Side.SERVER);
  }
  @Mod.EventHandler
  public void init(FMLInitializationEvent event) {
    IEContent.init();

    GameRegistry.registerWorldGenerator(new IEWorldGen(), 0);
    MinecraftForge.EVENT_BUS.register(new EventHandler());
    FMLCommonHandler.instance().bus().register(new EventHandler());
    NetworkRegistry.INSTANCE.registerGuiHandler(instance, proxy);
    proxy.init();

    Lib.IC2 = Loader.isModLoaded("IC2") && Config.getBoolean("ic2compat");
    Lib.GREG = Loader.isModLoaded("gregtech") && Config.getBoolean("gregtechcompat");
    for (IECompatModule compat : IECompatModule.modules) compat.init();

    packetHandler.registerMessage(
        MessageMineralListSync.Handler.class, MessageMineralListSync.class, 0, Side.CLIENT);
  }
 @Mod.EventHandler
 public void serverStarted(FMLServerStartedEvent event) {
   if (ImmersiveNetHandler.INSTANCE == null)
     ImmersiveNetHandler.INSTANCE = new ImmersiveNetHandler();
   if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) {
     World world = MinecraftServer.getServer().getEntityWorld();
     if (!world.isRemote) {
       IELogger.info("WorldData loading");
       IESaveData worldData =
           (IESaveData) world.loadItemData(IESaveData.class, IESaveData.dataName);
       if (worldData == null) {
         IELogger.info("WorldData not found");
         worldData = new IESaveData(IESaveData.dataName);
         world.setItemData(IESaveData.dataName, worldData);
       } else IELogger.info("WorldData retrieved");
       IESaveData.setInstance(world.provider.dimensionId, worldData);
     }
   }
   if (Config.getBoolean("arcfurnace_recycle")) ArcRecyclingThreadHandler.doRecipeProfiling();
 }