Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

200
Vistas
Marca de tiempo y nombre de Discord Rich Presence

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

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

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}`); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda