当我为Discord制作机器人并尝试附加图片时,由于这个错误,我无法做到
这是一款运行于Discord.js
上的Discord机器人
我一开始就尝试使用const Attachment,但这没用,在代码中删除了new和const也没用
case 'about':
message.channel.send('I am Damabot, developed by Damadion!')
const attachment = new Attachment('./DidYouThinkIAmTheRealFace.png')
message.channel.send('I am Damabot, developed by Damadion!' + attachment)
console.log('Bot successfully replied')
break;
我希望它发送附件,但没有发送并发送此错误
答案 0 :(得分:0)
您可以这样做:
message.channel.send('I am Damabot, developed by Damadion!', { files: ['./DidYouThinkIAmTheRealFace.png'] });
它将文件直接添加到消息中,因此您不必那样做。我在机器人中使用了这种方法,效果很好。
答案 1 :(得分:0)
Attachment
是Discord.js中的类。除非您对require语句(const { Attachment } = require('discord.js')
使用解构分配,否则Node.js会尝试基于代码中的类构造Attachment对象。如果发现没有任何内容,则会引发错误。
如果要坚持构造附件对象,可以使用:
const attachment = new Discord.Attachment('./path/to/file.png', 'name'); // name is optional
message.channel.send('Hey there', attachment)
.catch(console.error);
否则,您可以像这样使用消息的files
属性:
message.channel.send('Hey there', {
files: ['./path/to/file.png']
})
.catch(console.error);
后者允许您还发送嵌入(也可以使用嵌入中的附件)。
答案 2 :(得分:0)
对我来说,以下代码有效:
const attachment = new Discord.MessageAttachment("url");
channel.send(attachment);
Discord.Attachment
替换为Discord.MessageAttachement
答案 3 :(得分:0)
我有同样的问题。我运行npm install
来更新我的软件包,并检查我的不一致版本是否过时并因此引起任何问题。
之后,我决定浏览一下文档,并在此处找到以下代码段:
const attachment=new Discord.MessageAttachment("enter the URL u wanna enter here")
const generalChannel=client.channels.cache.get("enter ur channel id here")
$generalChannel.send(attachment);
至少,它对我有用。请让我知道它是否也适用于您。