Estoy tratando de escanear el interior de una descripción incrustada "lector incrustado" y sigo recibiendo este error y no puedo solucionarlo. Funcionó en discord.js V12 pero cambié a v13 para poder agregarlo a mi otro bot.
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/%27') .setAuthor("apphx the ass grabber") .setDescription('IP Logger Detected') .setThumbnail('https://kinsta.com/wp-content/uploads/2017/09/external-ip-address-1-1024x512.png%27') 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) && message.embeds[i].title.includes(badwords[i])){ message.delete(); message.channel.send(detectedEmbed) break } } } }) client.login(verysecrettoken');¿No debería ser:
for (var i = 0; i < message.embeds.length; i++) {No hay nada que impida que exceda la cantidad de incrustaciones en el mensaje y, por lo tanto, cuando lo hace, message.embeds [i] no existe.
Parece que tenía la intención de iterar sobre la matriz de malas palabras para cada inserción en el mensaje.
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 } } }Además, en v13 es probable que tengas que tener:
message.channel.send({ embeds: [detectedEmbed] })