예제 #1
0
 public void UnLoadUser(NodeRemoveEvent e, SingleNode <LoadUserComponent> loadUser, [JoinAll] SingleNode <SharedUsersStorageComponent> storage, [JoinAll] SingleNode <ClientSessionComponent> session)
 {
     storage.component.UserId2EntityIdMap.Remove(loadUser.component.UserId, loadUser.Entity.Id);
     if (!storage.component.UserId2EntityIdMap.ContainsKey(loadUser.component.UserId))
     {
         long[]           userIds       = new long[] { loadUser.component.UserId };
         UnLoadUsersEvent eventInstance = new UnLoadUsersEvent(userIds);
         base.ScheduleEvent(eventInstance, session);
     }
 }
예제 #2
0
        public void UnLoadUsers(NodeRemoveEvent e, SingleNode <LoadUsersComponent> loadUsers, [JoinAll] SingleNode <SharedUsersStorageComponent> storage, [JoinAll] SingleNode <ClientSessionComponent> session)
        {
            HashSet <long> userIds = new HashSet <long>();

            foreach (long num in loadUsers.component.UserIds)
            {
                storage.component.UserId2EntityIdMap.Remove(num, loadUsers.Entity.Id);
                if (!storage.component.UserId2EntityIdMap.ContainsKey(num))
                {
                    userIds.Add(num);
                }
            }
            if (userIds.Count > 0)
            {
                UnLoadUsersEvent eventInstance = new UnLoadUsersEvent(userIds);
                base.ScheduleEvent(eventInstance, session);
            }
        }