private void LoginFinished(Client.LoginResult success, DateTime banEnd, string message) { if (_inLoginDone) return; _inLoginDone = true; Trace.TraceInformation("Login finished."); if (_loginTimer != null) { _loginTimer.Dispose(); _loginTimer = null; } Dispatcher.Invoke((Action) (() => { Program.LauncherWindow.Closing -= LauncherWindowClosing; _isLoggingIn = false; StopSpinning(); switch (success) { case Skylabs.Lobby.Client.LoginResult.Success: Prefs.Password = cbSavePassword.IsChecked == true ? passwordBox1.Password.Encrypt() : ""; Prefs.Username = textBox1.Text; Prefs.Nickname = textBox1.Text; Program.MainWindow = new Windows.Main(); Program.MainWindow.Show(); Application.Current.MainWindow = Program.MainWindow; Program.LauncherWindow.Close(); break; case Skylabs.Lobby.Client.LoginResult.Banned: DoErrorMessage("You have been banned until " + banEnd.ToShortTimeString() + " on " + banEnd.ToShortDateString()); break; case Skylabs.Lobby.Client.LoginResult.Failure: DoErrorMessage("Login Failed: " + message); break; } _inLoginDone = false; }), new object[] {}); }
void LobbyClientOnLoginComplete(object sender, Client.LoginResults results) { switch (results) { case Skylabs.Lobby.Client.LoginResults.ConnectionError: UpdateLoginStatus(""); _isLoggingIn = false; DoErrorMessage("Could not connect to the server."); StopSpinning(); break; case Skylabs.Lobby.Client.LoginResults.Success: LoginFinished(Skylabs.Lobby.Client.LoginResult.Success, DateTime.Now,""); break; case Skylabs.Lobby.Client.LoginResults.Failure: LoginFinished(Skylabs.Lobby.Client.LoginResult.Failure, DateTime.Now,"Username/Password Incorrect."); break; } _isLoggingIn = false; }