예제 #1
0
        public static void HandleProcessStateInfo(ProcessStateInfo processStateInfo, IPCClientBase client)
        {
            switch (processStateInfo.State)
            {
            case ProcessState.Stop:
                BnetServer.Shutdown();
                break;

            default:
                Log.Message(LogTypes.Error, $"Received unhandled process state '{processStateInfo.State}' from '{processStateInfo.Alias}'.");
                break;
            }
        }
예제 #2
0
파일: Program.cs 프로젝트: rdavydov/d3sharp
        private static void StartupServers()
        {
            _bnetServer = new BnetServer();
            _gameServer = new GameServer();

            var bnetServerThread = new Thread(_bnetServer.Run)
            {
                IsBackground = true
            };

            bnetServerThread.Start();

            var gameServerThread = new Thread(_gameServer.Run)
            {
                IsBackground = true
            };

            gameServerThread.Start();

            // Read user input indefinitely
            // TODO: Replace with proper command parsing and execution
            while (true)
            {
                var line = Console.ReadLine();
                if (!string.Equals("quit", line, StringComparison.OrdinalIgnoreCase) &&
                    !string.Equals("exit", line, StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }

                Logger.Info("Shutting down servers...");
                _bnetServer.Shutdown();
                _gameServer.Shutdown();
                break;
            }
        }