From aaa0e058ef7405abf74b474daa23d2085abb5448 Mon Sep 17 00:00:00 2001 From: Valithor Obsidion Date: Tue, 9 Sep 2025 02:30:23 -0400 Subject: [PATCH 1/7] Update MessageBuilder.php --- src/Discord/Builders/MessageBuilder.php | 44 ++++++++++++++----------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/src/Discord/Builders/MessageBuilder.php b/src/Discord/Builders/MessageBuilder.php index 5bb80c95d..3ff5500bc 100644 --- a/src/Discord/Builders/MessageBuilder.php +++ b/src/Discord/Builders/MessageBuilder.php @@ -424,36 +424,38 @@ public function getForward(): ?Message /** * Adds a component to the builder. * - * @param ComponentObject $component Component to add. + * @param ComponentObject[]|ComponentObject $component Component to add. * * @throws \InvalidArgumentException Component is not a valid type. * @throws \OverflowException Builder exceeds component limits. * * @return $this */ - public function addComponent(Component $component): self + public function addComponent(...$components): self { - if (! $component instanceof ComponentObject) { - throw new \InvalidArgumentException('You can only add component objects to a message.'); - } + foreach ($components as $component) { + if (! $component instanceof ComponentObject) { + throw new \InvalidArgumentException('You can only add component objects to a message.'); + } - if ($component instanceof ComponentV2) { - $this->setV2Flag(); - } + if ($component instanceof ComponentV2) { + $this->setIsComponentsV2Flag(); + } - if ($component instanceof Interactive) { - $component = ActionRow::new()->addComponent($component); - } + if ($component instanceof Interactive) { + $component = ActionRow::new()->addComponent($component); + } - if ($this->flags & Message::FLAG_IS_COMPONENTS_V2) { - $this->enforceV2Limits(); - } else { - $this->enforceV1Limits($component); - } + if ($this->flags & Message::FLAG_IS_COMPONENTS_V2) { + $this->enforceV2Limits(); + } else { + $this->enforceV1Limits($component); + } - $this->components ??= Collection::for(ComponentObject::class); + $this->components ??= Collection::for(ComponentObject::class); - $this->components->pushItem($component); + $this->components->pushItem($component); + } return $this; } @@ -469,6 +471,8 @@ public function addComponent(Component $component): self * @return $this * * @since 10.19.0 + * + * @deprecated 10.19.0 Use `MessageBuilder::addComponent()` instead. */ public function addComponents($components): self { @@ -525,7 +529,7 @@ public function countTotalComponents(): int fn ($component) => (is_array($component) && isset($component['components']) && is_array($component['components'])) ? 1 + $this->countTotalComponents($component['components']) : 1, - $this->components ?? [] + $this->components->toArray() ?? [] )); } @@ -634,7 +638,7 @@ public function removeSticker($sticker): self /** * Sets the stickers of the builder. Removes the existing stickers in the process. * - * @param array $stickers New sticker ids. + * @param string[] $stickers New sticker ids. * * @return $this */ From b53ad68a8bea63eb6014778b0fa4670113c1b907 Mon Sep 17 00:00:00 2001 From: Valithor Obsidion Date: Tue, 9 Sep 2025 03:00:21 -0400 Subject: [PATCH 2/7] Update MessageBuilder.php --- src/Discord/Builders/MessageBuilder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Discord/Builders/MessageBuilder.php b/src/Discord/Builders/MessageBuilder.php index 3ff5500bc..30dbebe0e 100644 --- a/src/Discord/Builders/MessageBuilder.php +++ b/src/Discord/Builders/MessageBuilder.php @@ -424,7 +424,7 @@ public function getForward(): ?Message /** * Adds a component to the builder. * - * @param ComponentObject[]|ComponentObject $component Component to add. + * @param ExCollectionInterface|ComponentObject[]|ComponentObject $component Component to add. * * @throws \InvalidArgumentException Component is not a valid type. * @throws \OverflowException Builder exceeds component limits. From 650f2cf71f47ff058a61d430c450ed6d6bf8bfb8 Mon Sep 17 00:00:00 2001 From: Valithor Obsidion Date: Mon, 17 Nov 2025 15:30:48 -0500 Subject: [PATCH 3/7] PHPDocs --- src/Discord/Builders/MessageBuilder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Discord/Builders/MessageBuilder.php b/src/Discord/Builders/MessageBuilder.php index 30dbebe0e..347c0dfc0 100644 --- a/src/Discord/Builders/MessageBuilder.php +++ b/src/Discord/Builders/MessageBuilder.php @@ -594,7 +594,7 @@ public function getComponents(): ExCollectionInterface /** * Adds a sticker to the builder. Only used for sending message or creating forum thread. * - * @param string|Sticker $sticker Sticker to add. + * @param Sticker|string $sticker Sticker to add. * * @throws \OverflowException Builder exceeds 3 stickers. * @@ -638,7 +638,7 @@ public function removeSticker($sticker): self /** * Sets the stickers of the builder. Removes the existing stickers in the process. * - * @param string[] $stickers New sticker ids. + * @param Sticker[]|string[] $stickers New sticker ids. * * @return $this */ From 2656d7fbe5964f258c8e3b7c02084eed2bf54bf6 Mon Sep 17 00:00:00 2001 From: Valithor Obsidion Date: Mon, 17 Nov 2025 15:41:14 -0500 Subject: [PATCH 4/7] Update MessageBuilder.php --- src/Discord/Builders/MessageBuilder.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Discord/Builders/MessageBuilder.php b/src/Discord/Builders/MessageBuilder.php index 347c0dfc0..f8605cbce 100644 --- a/src/Discord/Builders/MessageBuilder.php +++ b/src/Discord/Builders/MessageBuilder.php @@ -431,7 +431,7 @@ public function getForward(): ?Message * * @return $this */ - public function addComponent(...$components): self + public function addComponent(Component ...$components): self { foreach ($components as $component) { if (! $component instanceof ComponentObject) { @@ -476,10 +476,8 @@ public function addComponent(...$components): self */ public function addComponents($components): self { - foreach ($components as $component) { - $this->addComponent($component); - } - + $this->addComponent(...$components); + return $this; } From 3f008fd08f5798525c04fe2c2b959ec394d622dc Mon Sep 17 00:00:00 2001 From: Valithor Obsidion Date: Mon, 17 Nov 2025 15:46:16 -0500 Subject: [PATCH 5/7] PHPDocs --- src/Discord/Builders/MessageBuilder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Discord/Builders/MessageBuilder.php b/src/Discord/Builders/MessageBuilder.php index f8605cbce..495dac2c1 100644 --- a/src/Discord/Builders/MessageBuilder.php +++ b/src/Discord/Builders/MessageBuilder.php @@ -424,7 +424,7 @@ public function getForward(): ?Message /** * Adds a component to the builder. * - * @param ExCollectionInterface|ComponentObject[]|ComponentObject $component Component to add. + * @param ComponentObject[]|ComponentObject $component Component to add. * * @throws \InvalidArgumentException Component is not a valid type. * @throws \OverflowException Builder exceeds component limits. @@ -463,7 +463,7 @@ public function addComponent(Component ...$components): self /** * Add a group of components to the builder. * - * @param ExCollectionInterface|ComponentObject[] $components Components to add. + * @param ComponentObject[] $components Components to add. * * @throws \InvalidArgumentException Component is not a valid type. * @throws \OverflowException Builder exceeds component limits. From 63afe656060bff97b04c911a5dd87515569d97db Mon Sep 17 00:00:00 2001 From: Valithor Obsidion Date: Mon, 17 Nov 2025 15:55:32 -0500 Subject: [PATCH 6/7] Fix parameter name --- src/Discord/Builders/MessageBuilder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Discord/Builders/MessageBuilder.php b/src/Discord/Builders/MessageBuilder.php index 5fb916cba..44a066e0f 100644 --- a/src/Discord/Builders/MessageBuilder.php +++ b/src/Discord/Builders/MessageBuilder.php @@ -422,14 +422,14 @@ public function getForward(): ?Message /** * Adds a component to the builder. * - * @param ComponentObject[]|ComponentObject $component Component to add. + * @param ComponentObject[]|ComponentObject $components Component to add. * * @throws \InvalidArgumentException Component is not a valid type. * @throws \OverflowException Builder exceeds component limits. * * @return $this */ - public function addComponent(Component ...$component): self + public function addComponent(Component ...$components): self { $this->components ??= []; From d7aad60da9fcd0ddbcaa82fe13d7edebd9d96a7a Mon Sep 17 00:00:00 2001 From: Valithor Obsidion Date: Mon, 17 Nov 2025 15:56:30 -0500 Subject: [PATCH 7/7] Use non-deprecated method --- src/Discord/Builders/MessageBuilder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Discord/Builders/MessageBuilder.php b/src/Discord/Builders/MessageBuilder.php index 44a066e0f..0785fbb2a 100644 --- a/src/Discord/Builders/MessageBuilder.php +++ b/src/Discord/Builders/MessageBuilder.php @@ -448,7 +448,7 @@ public function addComponent(Component ...$components): self } if ($component instanceof ComponentV2) { - $this->setV2Flag(); + $this->setIsComponentsV2Flag(); } if ($this->flags & Message::FLAG_IS_COMPONENTS_V2) {