Estoy creando un bot de discordia en JS que cuando se llama al comando dice "El usuario ha estado jugando GameName durante horas". Actualmente, mi código funciona si el usuario mencionado está jugando un juego que carece de soporte de presencia enriquecido, pero si se llama a un juego como League of legends junto con el usuario, aparece el error TypeError: Cannot read property 'presence' of undefined . Si bien sé lo que esto significa, es la forma en que hago referencia a la presencia del usuario mencionado que se encuentra en el código a continuación.
const { Client, Intents } = require('discord.js'); module.exports = { name: 'test', aliases: [], category: 'test', utilisation: '', execute(client, message, presence, guild) { let msgMention = message.mentions.members.first() let mp = msgMention.presence.activities[0] if (msgMention.presence.activities[0].name == "Spotify"){ var imgvar = mp.assets.largeImage var imgvar = imgvar.replace('spotify:','') message.channel.send({ embed: { color: '1DB954', title: `${msgMention.displayName} is listening to ${mp.assets.largeText} for some reason`, image: { url: `https://i.scdn.co/image/${imgvar}` }, }, }); } else if (mp.name == "League of Legends") { const n = new Date(); console.log(n) const g = mp.timestamps.start; if (g <= 0) { return; } const hours = Math.abs(n - g) / 36e5; const minutes = hours.toFixed(2) message.channel.send(`${msgMention.displayName} has been wasting his life playing ${mp.name} for ${minutes} hours`); } else { const n = new Date(); console.log(n) const g = mp.timestamps.start; if (g <= 0) { return; } const hours = Math.abs(n - g) / 36e5; const minutes = hours.toFixed(2) message.channel.send(`${msgMention.displayName} has been playing ${mp.name} for ${minutes} hours`); } }, };Las matemáticas funcionan calculando el tiempo, junto con el comando separado de spotify que también funciona, pero league of legends simplemente no funciona debido a que tiene un soporte de presencia enriquecido, ¿cómo puedo corregir este error para hacer referencia a juegos normales de presencia no enriquecida mientras presencia enriquecida? los juegos todavía toman el nombre de la actividad
Actividad del usuario
let member = message.mentions.members.first() || message.guild.members.cache.get(args[1]) || message.guild.member(message.author) const embed = new Discord.MessageEmbed() if (!member.presence.activities || member.presence.activities.length == 0) { embed.addField('⚽️ Activity:', 'Not playing anything') } else { const activity = member.presence.activities[0]; embed.addField('⚽️ Activity:', `${activity.type} ${activity.name}\n${activity.details}\n${activity.state}`); }