Example #1
0
        public override void Run()
        {
            if (_wowManager.LockToken.IsValid)
            {
                _wowManager.LockToken.ReleaseLock();
            }

            if (!_wowManager.StartupSequenceIsComplete)
            {
                _wowManager.SetStartupSequenceToComplete();
                _loggedOutSw.Reset();
                _wowIsLoggedOutForTooLong = false;
            }

            var trouble = FindTrouble();

            if (trouble == WowProblem.None)
            {
                _wowManager.Profile.ShoudPause = false;
                return;
            }

            switch (trouble)
            {
            case WowProblem.Crash:
                _wowManager.Profile.Status = "WoW has crashed. restarting";
                _wowManager.Profile.Log("WoW has crashed.. So lets restart WoW");
                break;

            case WowProblem.Disconnected:
                _wowManager.Profile.Log("WoW has disconnected.. So lets restart WoW");
                _wowManager.Profile.Status = "WoW has DCed. restarting";
                break;

            case WowProblem.Unresponsive:
                _wowManager.Profile.Status = "WoW is not responding. restarting";
                _wowManager.Profile.Log("WoW is not responding.. So lets restart WoW");
                break;

            case WowProblem.LoggedOutForTooLong:
                _wowManager.Profile.Log("Restarting wow because it was logged out for more than 40 seconds");
                _wowManager.Profile.Status = "WoW was logged out for too long. restarting";
                break;
            }
            _wowManager.CloseGameProcess();
        }
Example #2
0
        private void InGameLogic()
        {
            if (_wowManager.LockToken.IsValid)
            {
                _wowManager.LockToken.ReleaseLock();
            }

            // The HBRelogHelper plugin will monitor the health of the WoW process
            if (_wowManager.Processsharp != null)
            {
                _wowManager.Processsharp.Dispose();
                _wowManager.Processsharp = null;
            }

            if (!_wowManager.StartupSequenceIsComplete)
            {
                _wowManager.SetStartupSequenceToComplete();
            }
        }