From 5f2d173361eabcf4a096a59066580c4bd4566c4b Mon Sep 17 00:00:00 2001 From: Mihail Gribkov <61027276+Misha-133@users.noreply.github.com> Date: Sun, 11 May 2025 16:47:34 +0300 Subject: [PATCH] [Fix] Include section accessories in `ComponentCount()` (#3126) --- .../Builders/ComponentContainerExtensions.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) 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.