Estoy tratando de crear un comando para mi bot en Discord JS que, cuando se activa, toma el usuario mencionado del comando y recupera su juego actual (si no hay juego, entonces el estado) y envía un mensaje que dice que el usuario mencionado ha estado jugando el juego durante el tiempo transcurrido (Y si es posible enviar la imagen del juego si la tiene).
Este es mi código actual:
module.exports = { name: 'game', aliases: ['gm', 'status'], category: 'Commands', utilisation: '{prefix}game', execute(client, message) { let msgMention = message.mentions.members.first() || message.guild.member(message.author) console.log(msgMention.presence.activities[0]) message.channel.send(msgMention.presence.activities[0].name); }, }; Todo lo que hace con la extensión .name dice que el nombre no está definido y si .name dice que no puede enviar un mensaje vacío. Además, me menciono a mí mismo jugando un juego que se muestra públicamente en mi estado de actividad de discordia. ¿Qué puedo hacer para que realmente lea el nombre y la hora de la actividad para luego enviarla?
Necesitas la intención de GUILD_PRESENCES .
const { Client, Intents } = require('discord.js'); const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MEMBERS, Intents.FLAGS.GUILD_PRESENCES] }); También, por cierto, recomendaría usar message.member en lugar de message.guild.member(message.author)
let msgMention = message.mentions.members.first() || message.member