/// <summary> /// Invoked, when user logs into the master server /// </summary> /// <param name="session"></param> /// <param name="accountData"></param> private void OnUserLoggedInEventHandler(IUserPeerExtension user) { user.Peer.OnPeerDisconnectedEvent += OnPeerPlayerDisconnectedEventHandler; // Create a profile ObservableServerProfile profile; if (ProfilesList.ContainsKey(user.Username)) { // There's a profile from before, which we can use profile = ProfilesList[user.Username]; profile.ClientPeer = user.Peer; } else { // We need to create a new one profile = CreateProfile(user.Username, user.Peer); ProfilesList.Add(user.Username, profile); } // Restore profile data from database (only if not a guest) if (!user.Account.IsGuest) { profileDatabaseAccessor.RestoreProfile(profile); } // Save profile property user.Peer.AddExtension(new ProfilePeerExtension(profile, user.Peer)); // Listen to profile events profile.OnModifiedInServerEvent += OnProfileChangedEventHandler; }
/// <summary> /// Triggered when the user has successfully logged in /// </summary> /// <param name="session"></param> /// <param name="accountData"></param> protected virtual async void AuthModule_OnUserLoggedInEvent(IUserPeerExtension user) { user.Peer.OnPeerDisconnectedEvent += OnPeerPlayerDisconnectedEventHandler; // Create a profile ObservableServerProfile profile; if (profilesList.ContainsKey(user.UserId)) { // There's a profile from before, which we can use profile = profilesList[user.UserId]; profile.ClientPeer = user.Peer; } else { // We need to create a new one profile = CreateProfile(user.UserId, user.Peer); profilesList.Add(user.UserId, profile); } // Restore profile data from database await profileDatabaseAccessor.RestoreProfileAsync(profile); // Save profile property user.Peer.AddExtension(new ProfilePeerExtension(profile, user.Peer)); // Listen to profile events profile.OnModifiedInServerEvent += OnProfileChangedEventHandler; }
/// <summary> /// Fired if existing user logged out and <see cref="useAuthModule"/> is set to true /// </summary> /// <param name="account"></param> protected virtual void OnUserLoggedOutEventHandler(IUserPeerExtension account) { // Get chat user from extensions list var chatUser = account.Peer.GetExtension <ChatUserPeerExtension>(); // Remove it from chat users list if is not null if (chatUser != null) { RemoveChatUser(chatUser); } }
/// <summary> /// Fired when new user logged in and <see cref="useAuthModule"/> is set to true /// </summary> /// <param name="account"></param> protected virtual void OnUserLoggedInEventHandler(IUserPeerExtension account) { // Create new chat user var chatUser = CreateChatUser(account.Peer, account.Username); // Add him to chat users list if (AddChatUser(chatUser)) { // Add the extension account.Peer.AddExtension(chatUser); } }
/// <summary> /// Notify when user logged in /// </summary> /// <param name="user"></param> public virtual void NotifyOnUserLoggedInEvent(IUserPeerExtension user) { OnUserLoggedInEvent?.Invoke(user); }