我想将所有进入通道 X 的消息转发到通道 Y,这工作正常。但我也想在有图片时将每张图片转发到通道 Y。
收到此错误:未处理的promise拒绝警告:类型错误:无法读取未定义的属性“url”
这是我的代码,希望有人可以帮助我
bot.on('message',async msg => {
if(msg.channel.id != readingchannel)return
let content = msg.content
let pic = msg.attachments
let alertembed = new Discord.MessageEmbed()
.setTitle("TEST")
.setColor("RANDOM")
.setDescription(msg.content)
bot.channels.cache.get(writingchannel).send(alertembed)
if(msg.attachments.length >= 1)return
let alertembed2 = new Discord.MessageEmbed()
.setTitle("TEST")
.setColor("RANDOM")
.setDescription(msg.content)
.setImage(msg.attachments[0].url)
bot.channels.cache.get(writingchannel).send(alertembed2)
});
看起来当您检查附件时,如果找到附件,则会返回,我假设这不是预期的行为。如果您收到带有附件的邮件,它将返回,但如果没有附件,嵌入内容将与(不存在的)图像一起发送。看到问题了吗?
要解决此问题,您所要做的就是更改if(msg.attachments.length)
现在,当您发送没有任何附件的邮件时,它将简单地返回,而不会尝试访问不存在的附件的 url
属性。