From a24e6fefb67fd9e296d26f78c09e87925aafa5dc Mon Sep 17 00:00:00 2001 From: Skillz4Killz <23035000+Skillz4Killz@users.noreply.github.com> Date: Sun, 14 Nov 2021 14:22:53 +0000 Subject: [PATCH] fix: send interaction followups require different response --- .../interactions/send_interaction_response.ts | 198 +++++++++--------- 1 file changed, 98 insertions(+), 100 deletions(-) diff --git a/src/helpers/interactions/send_interaction_response.ts b/src/helpers/interactions/send_interaction_response.ts index 709aa9fc4..babc0529a 100644 --- a/src/helpers/interactions/send_interaction_response.ts +++ b/src/helpers/interactions/send_interaction_response.ts @@ -39,111 +39,109 @@ export async function sendInteractionResponse( // If its already been executed, we need to send a followup response if (bot.cache.executedSlashCommands.has(token)) { + // FOLLOWUP RESPONSES ARE DIFFERENT STYLED RESPONSE return await bot.rest.runMethod(bot.rest, "post", bot.constants.endpoints.WEBHOOK(bot.applicationId, token), { - type: options.type, - data: { - content: options.data.content, - tts: options.data.tts, - embeds: options.data.embeds?.map((embed) => ({ - title: embed.title, - type: embed.type, - description: embed.description, - url: embed.url, - timestamp: embed.timestamp, - color: embed.color, - footer: embed.footer - ? { - text: embed.footer.text, - icon_url: embed.footer.iconUrl, - proxy_icon_url: embed.footer.proxyIconUrl, - } - : undefined, - image: embed.image - ? { - url: embed.image.url, - proxy_url: embed.image.proxyUrl, - height: embed.image.height, - width: embed.image.width, - } - : undefined, - thumbnail: embed.thumbnail - ? { - url: embed.thumbnail.url, - proxy_url: embed.thumbnail.proxyUrl, - height: embed.thumbnail.height, - width: embed.thumbnail.width, - } - : undefined, - video: embed.video - ? { - url: embed.video.url, - proxy_url: embed.video.proxyUrl, - height: embed.video.height, - width: embed.video.width, - } - : undefined, - provider: embed.provider, - author: embed.author - ? { - name: embed.author.name, - url: embed.author.url, - icon_url: embed.author.iconUrl, - proxy_icon_url: embed.author.proxyIconUrl, - } - : undefined, - fields: embed.fields, - })), - allowed_mentions: { - parse: allowedMentions.parse, - roles: allowedMentions.roles, - users: allowedMentions.users, - replied_user: allowedMentions.repliedUser, - }, - file: options.data.file, - components: options.data.components?.map((component) => ({ - type: component.type, - components: component.components.map((subcomponent) => { - if (subcomponent.type === DiscordMessageComponentTypes.SelectMenu) - return { - type: subcomponent.type, - custom_id: subcomponent.customId, - placeholder: subcomponent.placeholder, - min_values: subcomponent.minValues, - max_values: subcomponent.maxValues, - options: subcomponent.options.map((option) => ({ - label: option.label, - value: option.value, - description: option.description, - emoji: option.emoji - ? { - id: option.emoji.id?.toString(), - name: option.emoji.name, - animated: option.emoji.animated, - } - : undefined, - default: option.default, - })), - }; - + content: options.data.content, + tts: options.data.tts, + embeds: options.data.embeds?.map((embed) => ({ + title: embed.title, + type: embed.type, + description: embed.description, + url: embed.url, + timestamp: embed.timestamp, + color: embed.color, + footer: embed.footer + ? { + text: embed.footer.text, + icon_url: embed.footer.iconUrl, + proxy_icon_url: embed.footer.proxyIconUrl, + } + : undefined, + image: embed.image + ? { + url: embed.image.url, + proxy_url: embed.image.proxyUrl, + height: embed.image.height, + width: embed.image.width, + } + : undefined, + thumbnail: embed.thumbnail + ? { + url: embed.thumbnail.url, + proxy_url: embed.thumbnail.proxyUrl, + height: embed.thumbnail.height, + width: embed.thumbnail.width, + } + : undefined, + video: embed.video + ? { + url: embed.video.url, + proxy_url: embed.video.proxyUrl, + height: embed.video.height, + width: embed.video.width, + } + : undefined, + provider: embed.provider, + author: embed.author + ? { + name: embed.author.name, + url: embed.author.url, + icon_url: embed.author.iconUrl, + proxy_icon_url: embed.author.proxyIconUrl, + } + : undefined, + fields: embed.fields, + })), + allowed_mentions: { + parse: allowedMentions.parse, + roles: allowedMentions.roles, + users: allowedMentions.users, + replied_user: allowedMentions.repliedUser, + }, + file: options.data.file, + components: options.data.components?.map((component) => ({ + type: component.type, + components: component.components.map((subcomponent) => { + if (subcomponent.type === DiscordMessageComponentTypes.SelectMenu) return { type: subcomponent.type, custom_id: subcomponent.customId, - label: subcomponent.label, - style: subcomponent.style, - emoji: subcomponent.emoji - ? { - id: subcomponent.emoji.id?.toString(), - name: subcomponent.emoji.name, - animated: subcomponent.emoji.animated, - } - : undefined, - url: subcomponent.url, - disabled: subcomponent.disabled, + placeholder: subcomponent.placeholder, + min_values: subcomponent.minValues, + max_values: subcomponent.maxValues, + options: subcomponent.options.map((option) => ({ + label: option.label, + value: option.value, + description: option.description, + emoji: option.emoji + ? { + id: option.emoji.id?.toString(), + name: option.emoji.name, + animated: option.emoji.animated, + } + : undefined, + default: option.default, + })), }; - }), - })), - flags: options.data.flags, - }, + + return { + type: subcomponent.type, + custom_id: subcomponent.customId, + label: subcomponent.label, + style: subcomponent.style, + emoji: subcomponent.emoji + ? { + id: subcomponent.emoji.id?.toString(), + name: subcomponent.emoji.name, + animated: subcomponent.emoji.animated, + } + : undefined, + url: subcomponent.url, + disabled: subcomponent.disabled, + }; + }), + })), + flags: options.data.flags, }); }