Пример #1
0
        /// <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;
        }
Пример #2
0
        /// <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;
        }
Пример #3
0
        /// <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);
            }
        }
Пример #4
0
        /// <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);
            }
        }
Пример #5
0
 /// <summary>
 /// Notify when user logged in
 /// </summary>
 /// <param name="user"></param>
 public virtual void NotifyOnUserLoggedInEvent(IUserPeerExtension user)
 {
     OnUserLoggedInEvent?.Invoke(user);
 }