Aquí está mi código, cuando ejecuto el comando no enviará el mensaje. Tengo el controlador de comandos configurado correctamente
const fs = require('fs'); module.exports = { name: 'accept', description: 'Accept', execute(message, args) { mentiondm = message.mentions.users.first(); message.channel.bulkDelete(1); if (!message.member.roles.cache.some((role) => role.name === 'Owner')) return message.channel.send('Beep Boing: This command is way too powerful for you to use!'); if (mentiondm == null) return message.reply('Beep Boing: No user to send message to!'); mentionMessage = message.content.slice(3); mentiondm.send(mentionMessage); console.log('Message Sent!'); }, };Esto no enviará un DM al usuario ni responderá de ninguna manera. ¿Algunas ideas?
En primer lugar, mencionado dm no será null si no se especifica ningún usuario, sino que devolverá undefined . Entonces, en lugar de hacer if (mentiondm == null) , podrías hacer if (!mentiondm) y así sucesivamente.
Intente verificar si hay errores en su consola también. Si aparece un error que dice Cannot send message to this user , eso significa que el usuario tiene sus DM bloqueados, por lo que debe cumplir la promesa. Por ejemplo, mentiondm.send("Some content").catch(e => { console.log(e.message) })
Otra razón por la que el bot no envía mensajes podría ser que no tiene permisos para eliminar mensajes ( message.channel.bulkDelete(1) ). Esto generalmente arrojaría un error que dice Faltan permisos o algo así. Además, en lugar de eliminar mensajes de esa manera, puede simplemente hacer message.delete() (si el bot tiene los permisos) que actúa de la misma manera.
Si no aparecen errores, es posible que los parámetros de su función estén en el orden incorrecto. Digamos que en su archivo principal, execute(client, message, args) , aquí, message sería client y los args serán message . Así que asegúrese de que estén en orden.