Estoy usando la biblioteca discord.js y node.js para crear un bot de Discord. En este momento, necesito codificar el bot de modo que cuando envíe un mensaje, por ejemplo: "! enviar @ hola", envíe un DM al usuario mencionado en el mensaje, en este caso, la cadena: "hola"
En este momento estoy tratando de hacer eso haciendo lo siguiente (el código es defectuoso y definitivamente no funcionará, pero espero que puedas entender lo que estoy tratando de lograr):
//get the user mentioned in the message user = message.mentions[0] //sending the message to said user user.send("message")¿Hay alguna manera de hacer esto?
este es el error que devuelve cuando intento el código anterior:
console.log((mensaje.menciones)[0])
^ TypeError: no se pueden leer las propiedades de undefined (leyendo '0')
Message.mentions devuelve el objeto MessageMentions , que no es una matriz.
Debería poder obtener los usuarios utilizando MessageMentions.users
let user = message.mentions.users.first(); // You need to check whether user exists, because the message could mention noone. if (user) { user.send("message") } Probablemente también deba verificar si User.dmChannel existe, y si no es así, debe crearlo usando User.createDM
Prueba esto:
message.mentions.members.first().send("message");