Quiero crear un bot que envíe un mensaje al usuario que menciono, por ejemplo, escribiré !hola @thomas#5555
Y el bot enviará un mensaje de DM "hola" a este usuario
if(message.content.startsWith(prefix + "sendHello")){ const taggedUser = message.mentions.users.first(); const user = client.users.cache.get(taggedUser.id); user.send('Hello'); }¿Qué ocurre? Sigue recibiendo esto: "ReferenceError: el cliente no está definido"
Definí el cliente en la parte superior del código así: "const Client = new Disocrd.Client();"
Dado que definió a su cliente como Client , debe usar eso en lugar de client . También puede usar message.client para acceder a él desde el objeto del mensaje.
Primero asegúrese de que está inicializando su Cliente correctamente.
Probar:
const client = new Client({ intents: [Intents.FLAGS.GUILDS] }); Con discord.js v13, debe agregar las intenciones que desea que reciba su cliente. La opción de intentos Intents.FLAGS.GUILDS es necesaria para que su cliente funcione correctamente. Puedes ver todos los Intents aquí .
También para su código de comando, si alguien etiquetó a un Usuario, no necesita recuperar al Usuario nuevamente. Simplemente use la variable taggedUser .
const taggedUser = message.mentions.users.first(); // get User if (!taggedUser) return message.channel.send('Please mention a user to fetch.'); // Check to see if a User was tagged. taggedUser.send('Hi') // send to User