diff --git a/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ComponentContainerExtensions.cs b/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ComponentContainerExtensions.cs index 9195a20b..a7c5c58f 100644 --- a/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ComponentContainerExtensions.cs +++ b/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ComponentContainerExtensions.cs @@ -9,10 +9,21 @@ public static class ComponentContainerExtensions /// Gets the total number of components in this and all child s combined. /// public static int ComponentCount(this IComponentContainer container) - => (container.Components?.Count ?? 0) - + container.Components? - .OfType() - .Sum(x => x.ComponentCount()) ?? 0; + { + var sum = 0; + foreach (var component in container.Components) + { + sum++; + + if (component is SectionBuilder { Accessory: not null }) + sum++; + + if (component is IComponentContainer childContainer) + sum += childContainer.ComponentCount(); + } + + return sum; + } /// /// Adds a to the container.