Estoy usando Discord.js v12 y trato de verificar si se envió un mensaje desde un DM pero no funciona para mí, probé este método:
if (msg.channel.type === 'dm') Esto funcionaba bien hace un par de meses, pero ya no funciona. Cuando pruebo console.log(msg.channel.type) solo devuelve texto y no devuelve dm cuando el bot recibe un DM y no puedo encontrar ninguna solución para esto.
¿Está seguro de que no ha actualizado su versión de discord.js y todavía está usando v12?
Los tipos de canales en v13 ahora están en mayúsculas y se alinean con las convenciones de nomenclatura de Discord. Vea a continuación los cambios:
| tipo de canal | v12 | v13 |
|---|---|---|
| canal de mensajes directos | dm | DM |
| canal de mensajes directos grupales | N / A | GROUP_DM |
| canal de texto del gremio | text | GUILD_TEXT |
| canal de hilo público del canal de texto del gremio | N / A | GUILD_PUBLIC_THREAD |
| canal de hilo privado del canal de texto del gremio | N / A | GUILD_PRIVATE_THREAD |
| canal de voz del gremio | voice | GUILD_VOICE |
| canal de voz del escenario del gremio | N / A | GUILD_STAGE_VOICE |
| canal de categoría de gremio | category | GUILD_CATEGORY |
| canal de noticias del gremio | news | GUILD_NEWS |
| canal de hilo público del canal de noticias del gremio | N / A | GUILD_NEWS_THREAD |
| canal de la tienda del gremio | store | GUILD_STORE |
| canal genérico de tipo desconocido | unknown | UNKNOWN |
Significa que si desea verificar si el type de channel es DM, debe usar:
if (msg.channel.type === 'DM')