private static void Main(string[] args) { // Attempt to size window for best log view try { Console.SetWindowSize(140, 40); } catch { } ServerMain.Initialize(); }
public static void Initialize() { var stopwatch = new Stopwatch(); stopwatch.Start(); InternalInstance = new ServerMain(); InternalInstance.WriteConsoleLogo(); EngineLog.Write(EngineLogLevel.Startup, "Starting WorldManagerServer"); // 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 (!WorldConfiguration.Initialize(out var loginConfigMsg)) { throw new StartupException(loginConfigMsg); } WorldConfig = WorldConfiguration.Instance; // Database if (!DB.AddManager(DatabaseType.Character, DatabaseConfiguration.Instance)) { throw new StartupException("Database connection failure! See above error."); } // Handlers StoreHandlers(); // Networking LoginServer.Connect(NetConfig.LoginNetConfig.S2SListenIP, (ushort)NetConfig.LoginNetConfig.S2SListenPort); ZoneServer.Listen(NetConfig.WorldNetConfig.S2SListenIP, (ushort)NetConfig.WorldNetConfig.S2SListenPort); ClientServer.Listen(NetConfig.WorldNetConfig.ListenIP, (ushort)NetConfig.WorldNetConfig.ListenPort); // TODO: GameLogServer // GameLogServer.Connect(NetConfig.GameLogNetConfig.S2SListenIP, (ushort)NetConfig.GameLogNetConfig.S2SListenPort); // Main server loop new Thread(() => { while (true) { Update(Time.Milliseconds); Thread.Sleep(10); } }).Start(); // Console commands? }