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(); }
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(); } }