Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

201
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!