DISCORD. JS TypeError: Невозможно прочитать свойство 'url' из неопределенного - PullRequest
1 голос
/ 03 мая 2020

Я хочу переслать все сообщения, которые поступают на канал X, на канал Y, который работает нормально. Но я также хочу пересылать каждое изображение на канал Y, когда оно есть.

Получение этой ошибки: UnhandledPromiseRejectionWarning: TypeError: Невозможно прочитать свойство '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)
});

1 Ответ

0 голосов
/ 03 мая 2020

Похоже, что когда вы проверяете вложение, вы возвращаетесь, если вложение найдено, что, я предполагаю, не является предполагаемым поведением. Если вы получите сообщение с вложением, оно вернется, но если вложения нет, встраивание будет отправлено с (несуществующим) изображением. Вы видите проблему?

Чтобы исправить это, все, что вам нужно сделать, это изменить if(msg.attachments.length >= 1)return на что-то вроде if (msg.attachments.length < 1) return;

Теперь, когда вы отправляете сообщение без каких-либо вложений, оно будет просто вернитесь, не пытаясь получить доступ к свойству url несуществующего вложения.

...