From 406b09387cfb82ffad70d24aa137c219fc8ae85b Mon Sep 17 00:00:00 2001 From: Nicolas Date: Sun, 7 Aug 2022 01:07:02 -0300 Subject: [PATCH] Update DMChannel (#98) * Update DMChannel: accept dm group * Fix --- packages/core/src/structures/channels.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/core/src/structures/channels.ts b/packages/core/src/structures/channels.ts index 365ad5c..6bc443a 100644 --- a/packages/core/src/structures/channels.ts +++ b/packages/core/src/structures/channels.ts @@ -715,15 +715,30 @@ export abstract class BaseVoiceChannel extends GuildChannel { export class DMChannel extends BaseChannel implements Model { constructor(session: Session, data: DiscordChannel) { super(session, data); - this.user = new User(this.session, data.recipents!.find(r => r.id !== this.session.botId)!); - this.type = data.type as ChannelTypes.DM | ChannelTypes.GroupDm; + + if (data.owner_id && data.recipents) { + this.user = new User(session, data.recipents.find(user => user.id === data.owner_id)!); + } else { + this.user = new User(session, data.recipents!.find(user => user.id === this.session.botId)!); + } + + if (data.recipents && data.recipents.length > 1) { + this.group = data.recipents.map(r => new User(this.session, r)); + } + + this.type = ChannelTypes.GroupDm | ChannelTypes.GroupDm; + if (data.last_message_id) { this.lastMessageId = data.last_message_id; } } override type: ChannelTypes.DM | ChannelTypes.GroupDm; + /** Onwer of the dm channel. */ user: User; + /** If the channel is a DM Group it's has multiple users. */ + group?: User[]; + /** Last message id. */ lastMessageId?: Snowflake; async close(): Promise {