Skip to content

Commit 4bbee4d

Browse files
committed
Message:getComponentsAttribute utilizes Builder classes
1 parent a9902fd commit 4bbee4d

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/Discord/Parts/Channel/Message.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
use Discord\Parts\Guild\Guild;
3232
use Discord\Parts\Guild\Sticker;
3333
use Discord\Parts\Interactions\Request\Component;
34+
use Discord\Builders\Components\Component as ComponentBuilder;
3435
use Discord\Parts\Thread\Thread;
3536
use Discord\Parts\WebSockets\MessageInteraction;
3637
use Discord\Repository\Channel\ReactionRepository;
@@ -728,10 +729,16 @@ protected function getComponentsAttribute(): ?ExCollectionInterface
728729
return null;
729730
}
730731

731-
$components = Collection::for(Component::class, null);
732+
$components = Collection::for(ComponentBuilder::class, null);
732733

733-
foreach ($this->attributes['components'] as $component) {
734-
$components->pushItem($this->createOf(Component::class, $component));
734+
foreach ($this->attributes['components'] ?? [] as $component) {
735+
$componentType = (is_object($component)) ? (isset($component->type) ? $component->type : 0) : ($component['type'] ?? 0);
736+
$components->pushItem(
737+
isset(ComponentBuilder::TYPE_CLASSES[$componentType])
738+
? (new (ComponentBuilder::TYPE_CLASSES[$componentType]))->fill((array) $component)
739+
: (new ComponentBuilder())->fill((array) $component),
740+
$component
741+
);
735742
}
736743

737744
return $components;

0 commit comments

Comments
 (0)