diff --git a/src/Discord.Net.Rest/API/Common/Message.cs b/src/Discord.Net.Rest/API/Common/Message.cs index 655b37b8..3f579cdd 100644 --- a/src/Discord.Net.Rest/API/Common/Message.cs +++ b/src/Discord.Net.Rest/API/Common/Message.cs @@ -82,7 +82,7 @@ internal class Message public Optional ReferencedMessage { get; set; } [JsonProperty("components")] - public Optional Components { get; set; } + public Optional Components { get; set; } [JsonProperty("interaction")] public Optional Interaction { get; set; } diff --git a/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs b/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs index a081336c..51ea852a 100644 --- a/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs +++ b/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs @@ -171,7 +171,8 @@ namespace Discord.Rest if (model.Components.IsSpecified) { - Components = model.Components.Value.Select(x => new ActionRowComponent(x.Components.Select(y => + Components = model.Components.Value.Where(x => x.Type is ComponentType.ActionRow) + .Select(x => new ActionRowComponent(((API.ActionRowComponent)x).Components.Select(y => { switch (y.Type) { diff --git a/src/Discord.Net.Rest/Extensions/EntityExtensions.cs b/src/Discord.Net.Rest/Extensions/EntityExtensions.cs index e6a510a2..b6b27ee6 100644 --- a/src/Discord.Net.Rest/Extensions/EntityExtensions.cs +++ b/src/Discord.Net.Rest/Extensions/EntityExtensions.cs @@ -198,7 +198,7 @@ namespace Discord.Rest Content = (data.Content.IsSpecified && data.Content.Value == null) ? Optional.Unspecified : data.Content, Embeds = data.Embeds, AllowedMentions = data.AllowedMentions, - Components = data.Components, + Components = data.Components.GetValueOrDefault(Array.Empty()), Flags = data.Flags, }; diff --git a/src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs b/src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs index 9f7dbc43..4e86208e 100644 --- a/src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs +++ b/src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs @@ -204,7 +204,8 @@ namespace Discord.WebSocket if (model.Components.IsSpecified) { - Components = model.Components.Value.Select(x => new ActionRowComponent(x.Components.Select(y => + Components = model.Components.Value.Where(x => x.Type is ComponentType.ActionRow) + .Select(x => new ActionRowComponent(((API.ActionRowComponent)x).Components.Select(y => { switch (y.Type) { diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs index 224ec6fd..1134008f 100644 --- a/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs +++ b/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs @@ -152,7 +152,7 @@ namespace Discord.WebSocket { var entity = new SocketGuildUser(guild, guild.Discord.GetOrCreateUser(state, model)); entity.Update(state, model); - entity.UpdateRoles(new ulong[0]); + entity.UpdateRoles([]); return entity; } internal static SocketGuildUser Create(SocketGuild guild, ClientState state, MemberModel model) @@ -160,7 +160,7 @@ namespace Discord.WebSocket var entity = new SocketGuildUser(guild, guild.Discord.GetOrCreateUser(state, model.User)); entity.Update(state, model); if (!model.Roles.IsSpecified) - entity.UpdateRoles(new ulong[0]); + entity.UpdateRoles([]); return entity; } internal static SocketGuildUser Create(SocketGuild guild, ClientState state, PresenceModel model) @@ -168,7 +168,7 @@ namespace Discord.WebSocket var entity = new SocketGuildUser(guild, guild.Discord.GetOrCreateUser(state, model.User)); entity.Update(state, model, false); if (!model.Roles.IsSpecified) - entity.UpdateRoles(new ulong[0]); + entity.UpdateRoles([]); return entity; } internal void Update(ClientState state, MemberModel model)