Ejemplo n.º 1
0
        internal void Update(ClientState state, GuildSyncModel model)
        {
            var members = new ConcurrentDictionary <ulong, SocketGuildUser>(ConcurrentHashSet.DefaultConcurrencyLevel, (int)(model.Members.Length * 1.05));

            {
                for (int i = 0; i < model.Members.Length; i++)
                {
                    var member = SocketGuildUser.Create(this, state, model.Members[i]);
                    members.TryAdd(member.Id, member);
                }
                DownloadedMemberCount = members.Count;

                for (int i = 0; i < model.Presences.Length; i++)
                {
                    if (members.TryGetValue(model.Presences[i].User.Id, out SocketGuildUser member))
                    {
                        member.Update(state, model.Presences[i], true);
                    }
                }
            }
            _members = members;

            var _ = _syncPromise.TrySetResultAsync(true);

            /*if (!model.Large)
             *  _ = _downloaderPromise.TrySetResultAsync(true);*/
        }
Ejemplo n.º 2
0
        public void Update(GuildSyncModel model, UpdateSource source, DataStore dataStore)
        {
            if (source == UpdateSource.Rest && IsAttached)
            {
                return;
            }

            var members = new ConcurrentDictionary <ulong, SocketGuildUser>(1, (int)(model.Presences.Length * 1.05));

            {
                DownloadedMemberCount = 0;
                for (int i = 0; i < model.Members.Length; i++)
                {
                    AddOrUpdateUser(model.Members[i], dataStore, members);
                }
                var _ = _syncPromise.TrySetResultAsync(true);
                if (!model.Large)
                {
                    _ = _downloaderPromise.TrySetResultAsync(true);
                }

                for (int i = 0; i < model.Presences.Length; i++)
                {
                    AddOrUpdateUser(model.Presences[i], dataStore, members);
                }
            }
            _members = members;
        }