private static void LoadModules() { modList = new List <BackendModule> (); List <BackendModule> loadQueue = new List <BackendModule> (); Queue <BackendModule> processingQueue = new Queue <BackendModule> (); httpModule = new HttpMonitor(); userModule = new UserModule(); loadQueue.Add(httpModule); loadQueue.Add(userModule); loadQueue.Add(new TcpConsole()); loadQueue.Add(new MetaModule()); loadQueue.Add(new PostsModule()); GetCompatibleMods(loadQueue, modList, ref processingQueue); while (processingQueue.Count > 0) { while (processingQueue.Count > 0) { BackendModule mod = processingQueue.Dequeue(); mod.Load(); modList.Add(mod); loadQueue.Remove(mod); Console.WriteLine("[I] Enabled " + mod.MODNAME); } GetCompatibleMods(loadQueue, modList, ref processingQueue); } if (loadQueue.Count > 0) { foreach (BackendModule mod in loadQueue) { Console.WriteLine("[W] Disabled " + mod.MODNAME + " Reason: Missing or disabled dependency"); } } Console.WriteLine("Started"); httpModule.HttpStart(); }