Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

176
Views
No puedo enviar un mensaje a un canal específico

Estoy tratando de crear un sistema de modmail y cada vez que intento hacerlo, dice "channel.send no es una función, aquí está mi código".

 const Discord = require("discord.js") const client = new Discord.Client() const db = require('quick.db') // ... client.on('message', message => { if(db.fetch(`ticket-${message.author.id}`)){ if(message.channel.type == "dm"){ const channel = client.channels.cache.get(id => id.name == `ticket-${message.author.id}`) channel.send(message.content) } } }) // ... client.login("MYTOKEN")

Estoy intentando esto con la versión 12.0.0

EDITAR: Encontré mi problema, por alguna razón, la ID guardada es la ID de bots, no mi ID

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Como dijo MrMythical, debe usar la función de find en lugar de get . Creo que el problema es que está tomando un canal que no es de texto, ya que channel está definido, simplemente no puede enviarle nada.

Puede solucionar esto agregando una captura adicional para asegurarse de que está obteniendo un canal de texto, y no una categoría o un canal de voz. También return (o haría una especie de mensaje de error) si channel no está definido.

Discordia.js v12:

 const channel = client.channels.cache.find(c => c.name === `ticket-${message.author.id}` && c.type === 'text');

Discordia.js v13:

 const channel = client.channels.cache.find(c => c.name === `ticket-${message.author.id}` && c.type === 'GUILD_TEXT');

Editar: puede decir que channel está definido porque si no lo fuera, diría algo como: Cannot read property 'send' of undefined .

about 4 years ago · Juan Pablo Isaza Report

0

Estás tratando de encontrarlo con una función. Use .find para eso en su lugar:

 const channel = client.channels.cache.find(id => id.name == `ticket-${message.author.id}`)
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!