Discord.js v13 发送缓冲区作为附件导致不可见图像

Discord.js v13 sending buffer as attachment results in invisible image

我正在尝试在 Discord.js v13 中将缓冲区作为附件发送。 我使用的是与 v11 相同的代码,对 v13 进行了必要的语法更改。

指定路径的图像确实存在,如果我将缓冲区作为图像保存到磁盘,它就可以正常工作。
如果我在 Discord 中将它作为附件发送,它会生成一个空附件,如下所示:

这是我的代码:

const promise = fs.promises.readFile(path.join('./assets/Environment/Base.png')); //this image exists

Promise.resolve(promise).then(function(buffer){
    message.channel.send({content: `${message.author.username}'s base:\n⁣`, attachment: [buffer]}).catch(allerrors)
});

我在几个 Discord 服务器上询问过,但没有人能帮助我,所以我想我应该在这里问一下,有人知道是什么原因造成的吗?
谢谢!

根据docs,你应该像这样发送一个缓冲区:

message.channel.send({content: `${message.author.username}'s base:\n⁣`, files: [
    { attachment: buffer }
]}).catch(allerrors);

在 discord.js v13 和 discord.js v12 上测试。