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

242
Visualizações
¿Cómo verifico si un mensaje es un DM en Discord.js?

Actualmente estoy usando la última versión de Discord.js (v13.1.0) .

Quiero poder detectar si cierto mensaje es un DM. Intenté crear un evento messageCreate e hice una declaración if para verificar si el canal es un DM

 client.on('messageCreate', message => { if (message.channel.type == 'DM') { console.log('Dm recieved!') } })

Esto por alguna razón no funcionó. Así que no tengo idea de lo que hará.

Aquí están mis intents :

[Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_MESSAGE_REACTIONS, Intents.FLAGS.DIRECT_MESSAGES]

Por cierto, el evento funciona :

 client.on('messageCreate', message => { console.log('Event') }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

También tuve este problema antes; Investigué los cambios entre discord.js v12 y v13 y descubrí por qué.

Como se ve aquí en la página web discordjs.guide dedicada a los cambios importantes entre las actualizaciones:

En Discord API v8 y versiones posteriores, los canales DM no emiten el evento CHANNEL_CREATE , lo que significa que discord.js no puede almacenarlos en caché automáticamente. Para que su bot reciba DM, el parcial de CHANNEL debe estar habilitado.

Para la característica muy importante de manejar mensajes DM, ese aviso fue bastante difícil de encontrar. Solo menciona directamente el evento CHANNEL_CREATE , pero básicamente lo que significa es que su bot no puede recibir ningún DM a menos que el CHANNEL parcial esté habilitado en las opciones de su cliente.

Aquí hay un ejemplo de cómo lo harías:

 const client = new Discord.Client({ partials: ["CHANNEL"], intents: [...] });

Debe agregar esa propiedad de partials a su constructor de Client para recibir mensajes directos. Después de hacerlo, su código funcionará correctamente.

about 4 years ago · Juan Pablo Isaza Relatório

0

Tuve el mismo problema, la solución fue modificar la variable del cliente agregando esto

gracias a cannicida

 const client = new discord.Client({ partials: ["CHANNEL"], intents: [ discord.Intents.FLAGS.DIRECT_MESSAGES, discord.Intents.FLAGS.DIRECT_MESSAGE_TYPING ]})
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