fix: send interaction followups require different response

This commit is contained in:
Skillz4Killz
2021-11-14 14:22:53 +00:00
committed by GitHub
parent 67278fdc1e
commit a24e6fefb6

View File

@@ -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,
});
}