public static void Initialize() { var stopwatch = new Stopwatch(); stopwatch.Start(); InternalInstance = new ServerMain(); InternalInstance.WriteConsoleLogo(); EngineLog.Write(EngineLogLevel.Startup, "Starting LoginServer"); // Configuration if (!NetworkConfiguration.Initialize(out var netConfigMsg)) { throw new StartupException(netConfigMsg); } NetConfig = NetworkConfiguration.Instance; if (!DatabaseConfiguration.Initialize(out var dbConfigMsg)) { throw new StartupException(dbConfigMsg); } DbConfig = DatabaseConfiguration.Instance; if (!LoginConfiguration.Initialize(out var loginConfigMsg)) { throw new StartupException(loginConfigMsg); } LoginConfig = LoginConfiguration.Instance; // Database if (!DB.AddManager(DatabaseType.Account, DatabaseConfiguration.Instance)) { throw new StartupException("Database connection failure! See above error."); } // Handlers StoreHandlers(); // Networking WorldServer.Listen(NetConfig.LoginNetConfig.S2SListenIP, (ushort)NetConfig.LoginNetConfig.S2SListenPort); ClientServer.Listen(NetConfig.LoginNetConfig.ListenIP, (ushort)NetConfig.LoginNetConfig.ListenPort); // TODO: gamelogserver // GameLogServer.Connect(NetConfig.GameLogNetConfig.S2SListenIP, (ushort)NetConfig.GameLogNetConfig.S2SListenPort); stopwatch.Stop(); EngineLog.Write(EngineLogLevel.Startup, $"Time taken to start: {stopwatch.ElapsedMilliseconds}ms"); // Main server loop new Thread(() => { while (true) { Update(Time.Milliseconds); Thread.Sleep(10); } }).Start(); // Console commands? }
private static void Main(string[] args) { // Attempt to size window for best log view try { Console.SetWindowSize(140, 40); } catch { } ServerMain.Initialize(); }