Quiero enviar un mensaje a un canal específico pero no funciona, probé client.guilds.cache.get("<id>").send("<msg>") pero aparece el error " .send no es una función". ¿Que me estoy perdiendo aqui?
Está tratando de obtener del caché un Guild , no un Channel , o más específicamente un TextChannel , es por eso que lo que intenta no funciona, debe intentar cambiar el código a algo como esto y debería funcionar.
const channel = client.channels.cache.get('Channel Id'); channel.send({ content: 'This is a message' }); Además, como algo extra, recomendaría usar el método fetch para estas cosas, ya que revisa el caché del bot y en el caso de no encontrar el objeto solicitado envía una solicitud a la api, pero depende del uso final si necesitarlo o no.
const channel = await client.channels.fetch('Channel Id'); channel.send({ content: 'This is a message' });Hay tres formas de enviar un mensaje a un canal específico.
1. Usando un método de búsqueda
const channel = await <client>.channels.fetch('channelID') channel.send({content: "Example Message"})2. Usar un método get
const channel = await <client>.channels.cache.get('channelID') channel.send({content: "Example Message"})3. Usar un método de búsqueda
una.
const channel = await <client>.channels.cache.find(channel => channel.id === "channelID") channel.send({content: "Example Message"})b.
const channel = await <client>.channels.cache.find(channel => channel.name === "channelName") channel.send({content: "Example Message})Su línea de código actual obtiene el GUILD_ID, no el CHANNEL_ID.