I'm trying to make my message look like this, but as a result of interaction.reply I get this instead.
Here is my code:
fs.readdir("./pics", (error, files) => {
if (error) return console.log(error)
const num = (Math.floor(Math.random() * files.length)+1).toString();
const imagembed = new Discord.MessageEmbed()
.setTitle("Some cute pic for you!")
.setColor("#980002")
.setFooter("Requested by " + interaction.member.user.tag);
interaction.reply({ embeds: [imagembed], files: [`./pics/${num}.jpg`]})
})
Any ideas how to fix it?
Attaching images in embeds can be achieved using MessageEmbed.setImage(). This requires a valid link to picture.
Since MessageEmbed.setImage() is the only way, to attach an image to an embed, you have to use some trickery. You have to send the image as file in your MessagePayload and add it to the embed.
const embed = new discord.MessageEmbed().setImage("attachment://image.png");
interaction.reply({ embeds: [embed ], files: [`./path/to/image.png`] });
For you, this would result in the following code:
fs.readdir("./pics", (error, files) => {
if (error) return console.log(error)
const num = (Math.floor(Math.random() * files.length) + 1).toString();
const imagembed = new Discord.MessageEmbed()
.setTitle("Some cute pic for you!")
.setColor("#980002")
.setFooter("Requested by " + interaction.member.user.tag)
.setImage(`attachment://${num}.jpg`);
interaction.reply({ embeds: [imagembed], files: [`./pics/${num}.jpg`] })
})