public void start() {
		log.info("Starting ModManager");
		
		log.info("Searching mod directory");
		File[] mods = OpenCraft.modDir.listFiles();
		for (File modFile : mods) {
			IMod mod = ClassLoader.loadMod(modFile);
			if (mod != null) {
				this.listMod.put(mod.getName(), mod);
			}
		}
		log.info("Found " + this.listMod.size() + " mods");
		
		log.info("Initializing mods");
		for (IMod mod : this.listMod.values()) {
			mod.init();
		}
		
		List<String> listModName = new ArrayList<String>();
		for (IMod mod : this.listMod.values()) {
			listModName.add(mod.getName());
		}
		
		log.info("Start pre-load phase");
		for (IMod mod : this.listMod.values()) {
			mod.event().emit(new EventPreLoadMod(listModName));
		}
		
		log.info("Start load phase");
		for (IMod mod : this.listMod.values()) {
			mod.event().emit(new EventLoadMod());
		}
		
		log.info("Start post-load phase");
		for (IMod mod : this.listMod.values()) {
			mod.event().emit(new EventPostLoadMod());
		}
	}