private void CrashHangLogic() { var verb = _isCrashed ? "crashed" : "hung"; _wowManager.Profile.Status = $"WoW has {verb}. Restarting"; _wowManager.Profile.Log($"WoW has {verb}, so lets restart WoW"); _wowManager.CloseGameProcess(); }
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(); }
void ChangeRealm() { if (_realmChangeSw.IsRunning && _realmChangeSw.Elapsed < TimeSpan.FromSeconds(5)) { return; } if (UnableToSwitchRealm) { _wowManager.Profile.Log("Unable to switch realms. Trying a restart of WoW."); _wowManager.CloseGameProcess(); return; } var changeRealmButton = UIObject.GetUIObjectByName <Button>(_wowManager, "CharSelectChangeRealmButton"); var clickPos = _wowManager.ConvertWidgetCenterToWin32Coord(changeRealmButton); Utility.LeftClickAtPos(_wowManager.GameWindow, (int)clickPos.X, (int)clickPos.Y); _wowManager.Profile.Log("Changing server."); _realmChangeSw.Restart(); }
void ChangeRealm() { if (_realmChangeSw.IsRunning && _realmChangeSw.Elapsed < TimeSpan.FromSeconds(5)) { return; } if (UnableToSwitchRealm) { _wowManager.Profile.Log("Unable to switch realms. Trying a restart of WoW."); _wowManager.CloseGameProcess(); return; } // Inserts a delay before pressing button because pressing too fast causes the 'You have been disconnected' error. // See https://github.com/BosslandGmbH/HBRelog/issues/49 Thread.Sleep(4000); var changeRealmButton = UIObject.GetUIObjectByName <Button>(_wowManager, "CharSelectChangeRealmButton"); var clickPos = _wowManager.ConvertWidgetCenterToWin32Coord(changeRealmButton); Utility.LeftClickAtPos(_wowManager.GameWindow, (int)clickPos.X, (int)clickPos.Y); _wowManager.Profile.Log("Changing server."); _realmChangeSw.Restart(); }