private void LoadConfiguration() { configurationProvider.LoadFromFile("configs/RealmServer.ini"); logger.Debug("Realm configuration has been loaded"); }
private void LoadConfiguration() { configurationProvider.LoadFromFile("configs/WorldCluster.ini"); logger.Debug("Cluster configuration has been loaded"); }
public async Task StartAsync() { xmlConfigurationProvider.LoadFromFile("configs/WorldServer.ini"); Console.BackgroundColor = ConsoleColor.Black; Console.Title = $"{((AssemblyTitleAttribute)Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), inherit: false)[0]).Title} v{Assembly.GetExecutingAssembly().GetName().Version}"; Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("{0}", ((AssemblyProductAttribute)Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), inherit: false)[0]).Product); Console.WriteLine(((AssemblyCopyrightAttribute)Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), inherit: false)[0]).Copyright); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(" __ __ _ _ ___ ___ ___ __ __ ___ "); Console.WriteLine(" | \\/ |__ _| \\| |/ __|/ _ \\/ __| \\ \\ / /| _ ) We Love "); Console.WriteLine(" | |\\/| / _` | .` | (_ | (_) \\__ \\ \\ V / | _ \\ Vanilla Wow"); Console.WriteLine(" |_| |_\\__,_|_|\\_|\\___|\\___/|___/ \\_/ |___/ "); Console.WriteLine(" "); Console.WriteLine(" Website / Forum / Support: https://getmangos.eu/ "); Console.WriteLine(""); Console.ForegroundColor = ConsoleColor.Magenta; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(((AssemblyTitleAttribute)Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), inherit: false)[0]).Title); Console.WriteLine(" version {0}", Assembly.GetExecutingAssembly().GetName().Version); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(""); Console.ForegroundColor = ConsoleColor.Gray; DateTime dateTimeStarted = DateAndTime.Now; Log.WriteLine(LogType.INFORMATION, "[{0}] World Server Starting...", Strings.Format(DateAndTime.TimeOfDay, "hh:mm:ss")); AppDomain currentDomain = AppDomain.CurrentDomain; currentDomain.UnhandledException += GenericExceptionHandler; LoadConfig(); Console.ForegroundColor = ConsoleColor.Gray; AccountDatabase.SQLMessage += AccountSQLEventHandler; CharacterDatabase.SQLMessage += CharacterSQLEventHandler; WorldDatabase.SQLMessage += WorldSQLEventHandler; int ReturnValues = AccountDatabase.Connect(); if (ReturnValues > 0) { Console.WriteLine("[{0}] An SQL Error has occurred", Strings.Format(DateAndTime.TimeOfDay, "hh:mm:ss")); Console.WriteLine("*************************"); Console.WriteLine("* Press any key to exit *"); Console.WriteLine("*************************"); Console.ReadKey(); ProjectData.EndApp(); } AccountDatabase.Update("SET NAMES 'utf8';"); ReturnValues = CharacterDatabase.Connect(); if (ReturnValues > 0) { Console.WriteLine("[{0}] An SQL Error has occurred", Strings.Format(DateAndTime.TimeOfDay, "hh:mm:ss")); Console.WriteLine("*************************"); Console.WriteLine("* Press any key to exit *"); Console.WriteLine("*************************"); Console.ReadKey(); ProjectData.EndApp(); } CharacterDatabase.Update("SET NAMES 'utf8';"); ReturnValues = WorldDatabase.Connect(); if (ReturnValues > 0) { Console.WriteLine("[{0}] An SQL Error has occurred", Strings.Format(DateAndTime.TimeOfDay, "hh:mm:ss")); Console.WriteLine("*************************"); Console.WriteLine("* Press any key to exit *"); Console.WriteLine("*************************"); Console.ReadKey(); ProjectData.EndApp(); } WorldDatabase.Update("SET NAMES 'utf8';"); bool areDbVersionsOk = true; if (!WorldServiceLocator._CommonGlobalFunctions.CheckRequiredDbVersion(AccountDatabase, ServerDb.Realm)) { areDbVersionsOk = false; } if (!WorldServiceLocator._CommonGlobalFunctions.CheckRequiredDbVersion(CharacterDatabase, ServerDb.Character)) { areDbVersionsOk = false; } if (!WorldServiceLocator._CommonGlobalFunctions.CheckRequiredDbVersion(WorldDatabase, ServerDb.World)) { areDbVersionsOk = false; } if (!areDbVersionsOk) { Console.WriteLine("*************************"); Console.WriteLine("* Press any key to exit *"); Console.WriteLine("*************************"); Console.ReadKey(); ProjectData.EndApp(); } await WorldServiceLocator._WS_DBCDatabase.InitializeInternalDatabaseAsync(); WorldServiceLocator._WS_Handlers.IntializePacketHandlers(); ALLQUESTS.LoadAllQuests(); await AllGraveYards.InitializeGraveyardsAsync(); WorldServiceLocator._WS_Transports.LoadTransports(); ClsWorldServer = new WS_Network.WorldServerClass(WorldServiceLocator._DataStoreProvider); WorldServerConfiguration configuration = WorldServiceLocator._ConfigurationProvider.GetConfiguration(); server = new ProxyServer <WS_Network.WorldServerClass>(Dns.GetHostAddresses(configuration.LocalConnectHost)[0], configuration.LocalConnectPort, ClsWorldServer); ClsWorldServer.ClusterConnect(); Log.WriteLine(LogType.INFORMATION, "Interface UP at: {0}", ClsWorldServer.LocalURI); GC.Collect(); if (Process.GetCurrentProcess().PriorityClass == ProcessPriorityClass.High) { Log.WriteLine(LogType.WARNING, "Setting Process Priority to HIGH..[done]"); } else { Log.WriteLine(LogType.WARNING, "Setting Process Priority to NORMAL..[done]"); } Log.WriteLine(LogType.INFORMATION, " Load Time: {0}", Strings.Format(DateAndTime.DateDiff(DateInterval.Second, dateTimeStarted, DateAndTime.Now), "0 seconds")); Log.WriteLine(LogType.INFORMATION, " Used Memory: {0}", Strings.Format(GC.GetTotalMemory(forceFullCollection: false), "### ### ##0 bytes")); WaitConsoleCommand(); try { } catch (Exception ex2) { ProjectData.SetProjectError(ex2); Exception ex = ex2; WorldServiceLocator._WS_TimerBasedEvents.Regenerator.Dispose(); AreaTriggers.Dispose(); ProjectData.ClearProjectError(); } }