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); } }
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); } }