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

120
Vistas
El comando de información de usuario tiene problemas con la actividad del juego.

Acabo de hacer una pregunta por algo similar hoy, sin embargo, obtuve la respuesta y me encontré con un nuevo problema. Estoy creando un comando de información de usuario para un bot de discordia, y si el usuario no está jugando, el bot fallará.

este enlace contiene imágenes del registro de la consola cuando un usuario está en el juego y cuando un usuario no está en el juego. Solo tienes que leer las descripciones de las imágenes. https://imgur.com/a/ZLL24FY

código:

 const Discord = require('discord.js'); const moment = require('moment'); module.exports = { name: "userinfo", aliases: ['ui', 'user', 'uinfo'], category: "info", description: "shows information of the user you mentioned", usage: "[command | alias]", run: async (client, message, args) => { const user = message.mentions.users.first() || message.author; const member = message.mentions.members.first() || message.member; const joinDiscord = moment(user.createdAt).format('llll'); const joinServer = moment(user.joinedAt).format('llll'); var presence = user.presence.activities.filter(x=>x.type === "PLAYING") console.log(presence); const embed = new Discord.MessageEmbed() .setColor('#724e72') .setTitle(`**Information for** ${user.tag}`) .setAuthor(`${message.author.tag}`, message.author.displayAvatarURL()) .setDescription('Shows information for mentioned user') .setThumbnail(user.displayAvatarURL()) .addField(`${user.tag}`, `${user}`, true) //.addField("ID:", `${user.id}`, true) .addField("Nickname:", `${member.displayName}`, true) .addField("Status:", `${user.presence.status}`, true) //.addField("In Server", message.guild.name, true) .addField("Game:", `${presence}`, true) .addField("Bot:", `${user.bot}`, true) .addField("Joined The Server On:", `${moment.utc(message.member.joinedAt).format("dddd, MMMM Do YYYY")}`) .addField("Account Created On:", `${moment.utc(user.createdAt).format("dddd, MMMM Do YYYY")}`, true) .addField("Roles:", member.roles.cache.map(r => '`'+r.name+'`').slice(0,-1)) .setTimestamp() .setFooter('a') message.channel.send(embed); } }

Si alguien puede ayudar, gracias. No he usado discord.js o JavaScript en al menos un año, por lo que se agradece cualquier ayuda.

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

0

Cuando el usuario no está en un juego, la presence es una matriz vacía. Cuando una matriz vacía se convierte en cadena, se convierte en una cadena vacía. Esto significa que cuando haces esto

 .addField("Game:", `${presence}`, true)

está agregando un campo con un valor vacío a la inserción como se indica en el error. Puedes hacer algo como esto:

 /* ... */ .addField("Game:", `${presence}`||'None', true)

o simplemente verifique si la presence está vacía antes de agregarla a la inserción de esta manera

 /* ... */ const embed = new Discord.MessageEmbed() .setColor('#724e72') .setTitle(`**Information for** ${user.tag}`) .setAuthor(`${message.author.tag}`, message.author.displayAvatarURL()) .setDescription('Shows information for mentioned user') .setThumbnail(user.displayAvatarURL()) .addField(`${user.tag}`, `${user}`, true) //.addField("ID:", `${user.id}`, true) .addField("Nickname:", `${member.displayName}`, true) .addField("Status:", `${user.presence.status}`, true) //.addField("In Server", message.guild.name, true) if (presence) embed.addField("Game:", `${presence}`, true) embed.addField("Bot:", `${user.bot}`, true) .addField("Joined The Server On:", `${moment.utc(message.member.joinedAt).format("dddd, MMMM Do YYYY")}`) .addField("Account Created On:", `${moment.utc(user.createdAt).format("dddd, MMMM Do YYYY")}`, true) .addField("Roles:", member.roles.cache.map(r => '`'+r.name+'`').slice(0,-1)) .setTimestamp() .setFooter('a') /* ... */
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