void CheckInTimer_Tick(object sender, System.EventArgs e) { DebugDetector.AssertCheckRunning(); MainForm.SetStatusBar("Checking in..."); var message = string.Empty; var ticket = string.Empty; var data = SessionNegotiator.GenerateCheckInData(); var result = SessionNegotiator.CheckIn(data, ref message, ref ticket); if (result != CheckInStatus.Ok) { //Close Allegiance AllegianceLoader.ExitAllegiance(); //Unlock form this.Enabled = true; MainForm.SetStatusBar(message); } else { MainForm.SetStatusBar(string.Format("Checked in at {0:h:mm tt}.", DateTime.Now)); } GC.Collect(); //Now is a decent time to force garbage collection }
private void _playOfflineButton_Click(object sender, EventArgs e) { _playOfflineButton.Enabled = false; AllegianceLoader.StartAllegiance(String.Empty, LobbyType.Production, String.Empty, new Utility.TaskDelegate(delegate(Object context) { AllegianceLoader.AllegianceExit += new EventHandler(AllegianceLoader_AllegianceExit); })); }
public static void AssertCheckRunning() { #if !DEBUG if (Debugger.IsAttached || !IsCheckRunning) { //Exit Allegiance if it is running AllegianceLoader.ExitAllegiance(); KillProcess(); throw new Exception("Debug check not running."); } #endif }
private void Logout(bool closeAllegiance) { MainForm.SetStatusBar("Logged out"); //Stop timer CheckInTimer.Stop(); //Close Allegiance if (closeAllegiance) { AllegianceLoader.ExitAllegiance(); } //Tell the server you are logging out SessionNegotiator.Logout(false); SetLoggedIn(false); }
private static void StartMainForm() { try { do { Application.Run(new MainForm()); if (MainForm.Restart == true) { if (!ServiceHandler.CheckLogin()) { using (var loginForm = new LoginForm()) { if (loginForm.ShowDialog() != DialogResult.OK) { return; } //launcherSignInStatus = loginForm.LauncherSignInStatus; } } } } while (MainForm.Restart == true); } catch (Exception ex) { File.WriteAllText("ExceptionLog.txt", ex.ToString()); throw; } finally { if (MainForm.LoggedIn) { SessionNegotiator.Logout(true); } SystemWatcher.Close(); AllegianceLoader.ExitAllegiance(); } }
internal void LoginToLobby(LobbyType lobbyType) { //Verify the form is filled out if (string.IsNullOrEmpty(_loginComboBox.Text)) { return; } // TODO: Figure out where the alleg exe is and send it to the launcher. //Create a new session var signal = new TaskDelegate(delegate(object input) { var parameters = input as object[]; var status = (CheckInStatus)parameters[0]; var message = parameters[1] as string; var alias = parameters[2] as string; var ticket = parameters[3] as string; int rank = 0; if (parameters[4] != null) { rank = (int)parameters[4]; } Regex aliasFinder = new Regex( "(?<callsign>.*?)(\\(\\d+\\))?$", RegexOptions.ExplicitCapture | RegexOptions.CultureInvariant | RegexOptions.Compiled ); var match = aliasFinder.Match(alias); if (match.Success == true) { alias = match.Groups["callsign"].Value; } if (status == CheckInStatus.AccountLinked) { if (ReloadCallsigns != null) { ReloadCallsigns(); } } if (status == CheckInStatus.Ok || status == CheckInStatus.AccountLinked) { //Initialize check-in interval CheckInTimer = new Timer(); CheckInTimer.Interval = CheckInInterval; CheckInTimer.Tick += new EventHandler(CheckInTimer_Tick); CheckInTimer.Start(); //Launch Allegiance MainForm.SetStatusBar("Launching Allegiance..."); //Store last-used alias if (!string.Equals(DataStore.LastAlias, alias)) { DataStore.LastAlias = alias; DataStore.Instance.Save(); } if (rank <= 5) { alias += "(" + rank + ")"; } AllegianceLoader.StartAllegiance(ticket, lobbyType, alias, delegate(object param) { var result = (bool)param; if (!result) { Logout(); MainForm.SetStatusBar("Failed to launch Allegiance."); } else { //AllegianceLoader.AllegianceProcess.OnExiting // += new EventHandler(AllegianceProcess_OnExiting); AllegianceLoader.AllegianceExit += new EventHandler(AllegianceProcess_OnExiting); } }); SetLoggedIn(true); if (DataStore.Preferences.AutoLogin) { MainForm.HideForm(); } } else { MainForm.SetStatusBar(message); if (status == CheckInStatus.VirtualMachineBlocked) { VirtualMachineInfo virtualMachineInfo = new VirtualMachineInfo(); virtualMachineInfo.ShowDialog(); } this.Enabled = true; SystemWatcher.Close(); } }); SessionNegotiator.Login(_loginComboBox.Text, lobbyType.ToString(), delegate(object input) { if (this.InvokeRequired) { this.Invoke(signal, input); } else { signal(input); } }); }