Попытка просканировать внутреннюю часть описания встраивания

#javascript #discord.js

Вопрос:

Я пытаюсь просканировать внутреннюю часть описания встраивания «читатель встраивания», и я продолжаю получать эту ошибку и не могу ее исправить. Это сработало на discord.js V12, но я переключился на v13, чтобы добавить его в другого бота.

 const { Client, Intents} = require('discord.js');
const Discord = require('discord.js');

const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
let prefix = ";";
let badwords = ["IP Logger", "grabify", "dlscord.com"]; 
client.on('ready', () => {
    console.log('Ready!');
});

client.on("message", async message => {
    const detectedEmbed = new Discord.MessageEmbed()
    .setColor('#0099ff')
    .setTitle('Detected')
    .setURL('https://discord.js.org/'')
    .setAuthor("apphx the ass grabber")
    .setDescription('IP Logger Detected')
    .setThumbnail('https://kinsta.com/wp-content/uploads/2017/09/external-ip-address-1-1024x512.png'')

    var content = message.content;
    var stringToCheck = content.replace(/s /g, '').toLowerCase();
    if(message.content.toLowerCase().includes( badwords))
    message.channel.send(detectedEmbed);
else {
    for (var i = 0; i < badwords.length; i  ) {
        if (message.embeds[i].title.includes(badwords) amp;amp; message.embeds[i].title.includes(badwords[i])){
            message.delete();
            message.channel.send(detectedEmbed)
            break
            }
        }
    }
})


client.login(verysecrettoken');
 

Ошибка: https://pastebin.com/tPsUdCjB

Ответ №1:

Разве это не должно быть:

 for (var i = 0; i < message.embeds.length; i  ) {
 

Ничто не мешает мне превысить количество вложений в сообщение, и поэтому, когда это происходит, message.embeds[i] не существует.

Похоже, вы хотели повторить массив плохих слов для каждого встраивания в сообщение.

     for (var i = 0; i < message.embeds.length; i  ) {
      for (var j = 0; j < badwords.length; j  ) {
        if (message.embeds[i].title.includes(badwords[j])){
            message.delete();
            message.channel.send(detectedEmbed)
            break
            }
        }
    }
 

Кроме того, в v13 вы, вероятно, должны иметь:

 message.channel.send({ embeds: [detectedEmbed] })