internal SocketRole AddRole(RoleModel model) { var role = SocketRole.Create(this, Discord.State, model); _roles[model.Id] = role; return(role); }
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; }