Estoy jugando creando un bot de prueba simple. Hasta ahora funciona bien en los canales, pero me gustaría modificarlo para convertirlo en un bot de prueba solo para mensajes directos.
Escucho comandos de usuarios de Discord como este:
client.on('messageCreate', async message => {Y funciona bien pero SOLO EN canales, no en DMs.
He buscado 'directMessageCreate' o cualquier otra cosa, pero aún no he encontrado la solución.
También traté de buscar tutoriales y todos inician el DM de bot con un comando público en un canal público, me gustaría hacer un bot solo de DM.
¿Cómo puedo hacer que mi bot público sea un bot solo de DM?
EDITAR:
Estas son mis intenciones, que tienen DIRECT_MESSAGES en la lista. ¿Todavía falta algo?
const client = new discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES", "DIRECT_MESSAGES"] });Deberá habilitar las intenciones y los parciales requeridos para poder escuchar los mensajes directos. Como ya agregó DIRECT_MESSAGES , debe haberse perdido el CHANNEL parcial . Es obligatorio para los DM. Aunque los canales del servidor siempre estarán disponibles, los canales de DM se pueden quitar de la memoria caché y es por eso que deberá agregarlos de esta manera:
const client = new discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES", "DIRECT_MESSAGES"], partials: ['CHANNEL'] }); Si desea crear un bot solo de DM, deberá verificar channel.type e ignorar cualquier cosa que no sea un DM:
client.on('messageCreate', (message) => { if (message.author.bot || message.channel.type !== 'DM') return; // handle the command sent in a DM });