コード例 #1
0
ファイル: ServerMain.cs プロジェクト: Bankst/DragonFiesta
        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?
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: Bankst/DragonFiesta
        private static void Main(string[] args)
        {
            // Attempt to size window for best log view
            try { Console.SetWindowSize(140, 40); }
            catch { }

            ServerMain.Initialize();
        }