diff --git a/src/structures/Webhook.js b/src/structures/Webhook.js index e1d7fcf..533d4a0 100644 --- a/src/structures/Webhook.js +++ b/src/structures/Webhook.js @@ -72,7 +72,7 @@ class Webhook { if ('channel_id' in data) { /** - * The channel the webhook belongs to + * The id of the channel the webhook belongs to * @type {Snowflake} */ this.channelId = data.channel_id; @@ -116,6 +116,7 @@ class Webhook { * @property {string} [avatarURL] Avatar URL override for the message * @property {Snowflake} [threadId] The id of the thread in the channel to send to. * For interaction webhooks, this property is ignored + * @property {string} [threadName] Name of the thread to create (only available if webhook is in a forum channel) * @property {MessageFlags} [flags] Which flags to set for the message. Only `SUPPRESS_EMBEDS` can be set. */ @@ -127,11 +128,10 @@ class Webhook { * @property {FileOptions[]|BufferResolvable[]|MessageAttachment[]} [files] See {@link BaseMessageOptions#files} * @property {MessageMentionOptions} [allowedMentions] See {@link BaseMessageOptions#allowedMentions} * @property {MessageAttachment[]} [attachments] Attachments to send with the message - * @property {Array<(MessageActionRow|MessageActionRowOptions)>} [components] + * @property {MessageActionRow[]|MessageActionRowOptions[]} [components] * Action rows containing interactive components for the message (buttons, select menus) * @property {Snowflake} [threadId] The id of the thread this message belongs to * For interaction webhooks, this property is ignored - * @property {string} [threadName] Name of the thread to create (only available if webhook is in a forum channel) */ /** @@ -188,9 +188,9 @@ class Webhook { let messagePayload; if (options instanceof MessagePayload) { - messagePayload = await options.resolveData(); + messagePayload = options.resolveData(); } else { - messagePayload = await MessagePayload.create(this, options).resolveData(); + messagePayload = MessagePayload.create(this, options).resolveData(); } const { data, files } = await messagePayload.resolveFiles(); @@ -324,13 +324,10 @@ class Webhook { let messagePayload; - if (options instanceof MessagePayload) { - messagePayload = await options.resolveData(); - } else { - messagePayload = await MessagePayload.create(this, options).resolveData(); - } + if (options instanceof MessagePayload) messagePayload = options; + else messagePayload = MessagePayload.create(this, options); - const { data, files } = await messagePayload.resolveFiles(); + const { data, files } = await messagePayload.resolveData().resolveFiles(); const d = await this.client.api .webhooks(this.id, this.token) @@ -386,6 +383,15 @@ class Webhook { }); } + /** + * The channel the webhook belongs to + * @type {?(TextChannel|VoiceChannel|NewsChannel|ForumChannel)} + * @readonly + */ + get channel() { + return this.client.channels.resolve(this.channelId); + } + /** * The timestamp the webhook was created at * @type {number}