Discord 嵌入的用户图像

User image to Discord Embed

我想要获取用户发送的图像并将其放入机器人随后发送的嵌入中。由于图像必须是 url 而人发送图像,我不知道如何将此图像转换为 url。 执行命令时,嵌入发送但没有图像。这是我试过但没有用的方法:

const plotEmbed = new Discord.MessageEmbed() 
                        .setTitle(`Purchase of the plot n°${plotId}`)
                        .setColor("GREEN")
                        .setDescription(`Purchase of plot ${plotId} for ${days} days.`)
                        .setImage(message.attachments.first.url)
                        .setTimestamp()
message.channel.send({ embeds: [pEmbed]})

如果有人能给我建议我应该尝试什么,因为我真的不知道...... 感谢阅读。

使用message.attachments给出一个集合,所以可以使用.map()命令获取url。您所要做的就是将您的代码更改为:

const attachmentURL = message.attachments.map(attachment => attachment.url)
const plotEmbed = new Discord.MessageEmbed()
  .setTitle(`Purchase of the plot n°${plotId}`)
  .setColor("GREEN")
  .setDescription(`Purchase of plot ${plotId} for ${days} days.`)
  .setImage(attachmentURL[0])
  .setTimestamp()
message.channel.send({
  embeds: [pEmbed]
})

这可能只是因为 pEmbed 是在您的代码片段之前声明的,但只是想告诉您正在发送一个名为 pEmbed 的嵌入,而当前代码片段中的嵌入位于一个名为 plotEmbed,所以你可能想改变它。

编辑:

刚刚找到了另一种更简单的方法。您刚刚在调用 message.attachments.first 时犯了一个错误。它实际上应该是 message.attachments.first().url 因为 first() 实际上是一个函数。所以这也应该像我发布的第一种方法一样工作