private void HandleAuthResponseMessage(object source, MessageEventArgs e) { AuthenticatedMessage authenticated = JsonConvert.DeserializeObject <AuthenticatedMessage>(e.Data.ToString()); if (authenticated.MessageType != MessageTypeNames.Authenticated) { ResetSavedSession(); return; } if (authenticated.Status != AuthenticationStatus.Authenticated) { Log($"Player login rejected {authenticated.Status} : {authenticated.StatusMessage}"); ResetSavedSession(); return; } _currentPlayer = new PlayerClientInfo { Name = authenticated.PlayerName, SessionId = authenticated.SessionId }; SaveSession(); Log($"Player is authenticated as {_currentPlayer.Name} with sessionId = {_currentPlayer.SessionId}"); }
private void MainAction() { while (!ShouldExit) { bool needsAuth = (_currentPlayer == null); if (needsAuth) { if (HasSavedSession()) { _currentPlayer = LoadSession(); } else { Authenticate(); } } else { ProcessMessages(); } } }
private void ResetSavedSession() { File.Delete(SessionSaveFilename); _currentPlayer = null; }