Exemple #1
0
        internal SocketRole AddRole(RoleModel model)
        {
            var role = SocketRole.Create(this, Discord.State, model);

            _roles[model.Id] = role;
            return(role);
        }
Exemple #2
0
        internal void Update(ClientState state, Model model)
        {
            AFKChannelId                = model.AFKChannelId;
            EmbedChannelId              = model.EmbedChannelId;
            SystemChannelId             = model.SystemChannelId;
            AFKTimeout                  = model.AFKTimeout;
            IsEmbeddable                = model.EmbedEnabled;
            IconId                      = model.Icon;
            Name                        = model.Name;
            OwnerId                     = model.OwnerId;
            VoiceRegionId               = model.Region;
            SplashId                    = model.Splash;
            VerificationLevel           = model.VerificationLevel;
            MfaLevel                    = model.MfaLevel;
            DefaultMessageNotifications = model.DefaultMessageNotifications;

            if (model.Emojis != null)
            {
                var emojis = ImmutableArray.CreateBuilder <GuildEmote>(model.Emojis.Length);
                for (int i = 0; i < model.Emojis.Length; i++)
                {
                    emojis.Add(model.Emojis[i].ToEntity());
                }
                _emotes = emojis.ToImmutable();
            }
            else
            {
                _emotes = ImmutableArray.Create <GuildEmote>();
            }

            if (model.Features != null)
            {
                _features = model.Features.ToImmutableArray();
            }
            else
            {
                _features = ImmutableArray.Create <string>();
            }

            var roles = new ConcurrentDictionary <ulong, SocketRole>(ConcurrentHashSet.DefaultConcurrencyLevel, (int)(model.Roles.Length * 1.05));

            if (model.Roles != null)
            {
                for (int i = 0; i < model.Roles.Length; i++)
                {
                    var role = SocketRole.Create(this, state, model.Roles[i]);
                    roles.TryAdd(role.Id, role);
                }
            }
            _roles = roles;
        }