Using a Function to Respond
The better and more organized method of responding to embeds by utilizing an asynchronous function.
All the code below goes inside the "Receiving the Event" block.
Call the Function
if (command === 'help') {
const description = 'description here';
const embed = new Discord.MessageEmbed()
.setTitle("Echo!")
.setThumbnail(interaction.member.user.displayAvatarURL)
.setDescription(description)
.setAuthor(interaction.member.user.username);
client.api.interactions(interaction.id, interaction.token).callback.post({
data: {
type: 4,
data: await createAPIMessage(interaction, embed, Discord, client)
}
});
}
The Function
async function createAPIMessage(interaction, content, D, client) {
const apiMessage = await D.APIMessage.create(client.channels.resolve(interaction.channel_id), content)
.resolveData()
.resolveFiles();
return {
...apiMessage.data,
files: apiMessage.files
};
}
Complete Example
Here's a complete sample for you to simply copy-paste and utilize:
if (command === 'help') {
// Here you could do anything. In this sample, I reply with an api interaction
const description = 'description here';
const embed = new Discord.MessageEmbed()
.setTitle("Echo!")
.setThumbnail(interaction.member.user.displayAvatarURL)
.setDescription(description)
.setAuthor(interaction.member.user.username);
client.api.interactions(interaction.id, interaction.token).callback.post({
data: {
type: 4,
data: await createAPIMessage(interaction, embed, Discord, client)
}
});
async function createAPIMessage(interaction, content, D, client) {
const apiMessage = await D.APIMessage.create(client.channels.resolve(interaction.channel_id), content)
.resolveData()
.resolveFiles();
return {
...apiMessage.data,
files: apiMessage.files
};
}
Last updated
Was this helpful?