Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

190
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda