如何让 Discord.js bot 获取频道上的最后一个附件

时间:2021-05-07 19:04:30

标签: node.js discord discord.js

我正在尝试让我的 Discord 机器人发送频道上的最后一个附件,但我在发送时遇到了问题。
当我使用“m.attachments.first().url”时,它会显示“未处理的承诺拒绝”,当我使用“m.attachments.first()”时,它会显示“无法发送空消息”。

if (message.content.toLowerCase() === 'test'){
message.channel.messages.fetch().then(messages => {
    const firstAttachment = messages.filter((m) => m.attachments.first().url);
    message.channel.send(firstAttachment);
})} 

编辑:我尝试了很多不同的东西,但唯一给我一些结果的是这个(结果是“未定义”):

if (message.content.toLowerCase() === 'test'){
message.channel.messages.fetch().then(messages => {
    const att = messages.filter(m => m.attachments.size > 0);
    message.channel.send(`${att.first().attachments.url}`)
})} 

1 个答案:

答案 0 :(得分:0)

您对第二段代码非常接近!您只需要在 .first() 之后添加另一个 attachments

    message.channel.messages.fetch().then(messages => {
        const att = messages.filter(m => m.attachments.size > 0);
        
        message.channel.send(att.first().attachments.first().url);
    });

您可能还希望在发送消息之前确保 att 确实具有值,否则您会收到错误消息。

相关问题