Estoy intentando, cuando alguien escribe un mensaje en el gremio A/B/C, el bot que está en, por ejemplo, 3 servidores, me envía el mensaje en el cuarto servidor, enviándolos en diferentes canales de texto llamados "gremio A", " gremio B" y "gremio C", no en los mismos...
Obtuve el siguiente error:
channel.send(msgLog) TypeError: Cannot read property 'send' of undefinedY este es mi código:
const msgLog = `[#${message.channel.name}]=[${message.author.username}#${message.author.discriminator}]=> ${message.content}` ``` client.guilds.cache.map(guild => server.channels.cache.find(channel => channel.name == guild.name)).forEach(channel => channel.send(msgLog) );El error significa que el channel no está undefined y no puede tener ninguna propiedad (como 'send' ) de undefined .
Esto significa que el server no tiene un canal con el nombre guild.name para algunos gremios.
Puede usar el filter para incluir solo los canales que están definidos:
client.guilds.cache .map(guild => server.channels.cache.find(channel => channel.name == guild.name)) .filter(channel => channel) // returns false if channel === undefined .forEach(channel => channel.send(msgLog));Esto es aproximadamente equivalente a
client.guilds.cache.forEach(guild => { const channel = server.channels.cache.find(channel => channel.name == guild.name)); if (channel) { channel.send(msgLog); } });