Estoy tratando de enviar un anuncio al canal pero recibo este error:
TypeError: Cannot read properties of undefined (reading 'send')La secuencia de comandos:
const Discord = require("discord.js"); const clients = new Discord.Client({ intents: 14087}); const allow = require("./admin/announceAllow.json") module.exports = { name: 'announce', description: "announce stuff to announcement server", execute(message, args, cmdName, extraString, status, reason,user,id, prefix,lang){ if(cmdName == ""){ let err = new Discord.MessageEmbed() .setTitle("There was an error while announcing") .setDescription("Reason: `Empty string`") .setColor("RED") message.channel.send({embeds:[err]}) }else if(!(cmdName == "")){ var toAnnounce = cmdName.replace("announce ","") var toSend = "929580453554434089" var splitToAnnounce = toAnnounce.split(",,") console.log(`${splitToAnnounce[0].replace("|n", "\n")}\n${splitToAnnounce[1].replace("|n", "\n")}\n${splitToAnnounce[2].replace("|n", "\n")}`) if(allow[message.author.id + ""]){ try{ let announce = new Discord.MessageEmbed() .setTitle(`${splitToAnnounce[0].replace("|n", "\n")}`) .setDescription(`${splitToAnnounce[1].replace("|n", "\n")}`) .setColor(`${splitToAnnounce[2].replace("|n", "\n")}`) clients.channels.cache.get(`${toSend}`).send({embeds:[announce]}) }catch(e){ let err = new Discord.MessageEmbed() .setTitle("There was an error while announcing") .setDescription("Possible reason: `Bot don't have permission, bot script outdated, bot error, user input error, color error`\n\nUsage: <prefix> announce `title,,content,,color`\ntip: use `|n` for new line\ncolor: `RED,BLUE,GREEN` etc") .setColor("RED") message.channel.send({embeds:[err]}) console.log(e) } }else if(!(allow[message.author.id + ""])){...........Alguien, por favor explique por qué ocurrió este error y cómo solucionarlo
Verifique la ID del canal en toSend . Recreé una versión simple de este código y pude obtener el mismo error mientras la ID del canal se ingresa incorrectamente . Si su controlador de comandos funciona bien, el problema se presenta principalmente en la parte clients.channels.cache.get... . Por encima de TypeError, debería mostrarle qué línea de código se está ejecutando cuando se produce el error.