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

223
Vistas
Error con argumentos en comandos en Discord.JS

así que tropecé con otro problema y realmente no puedo entenderlo. Usando el siguiente código, sigue devolviendo que "no se puede leer la propiedad" nombre de usuario "de undefined, sin embargo, con el comando "! stats @USER" el argumento debería haberse establecido para el usuario, ¿verdad?

¡Cualquier ayuda sería muy apreciada!

 const args = message.content.trim().split(' '); const command = args.shift().toLowerCase(); if(command === '!stats'){ if (args.length){ var userMentioned = args[0].id message.delete() } else{ var userMentioned = message.author.id message.delete() } if (message.channel.id === "876597275856601168") {{ setTimeout(function (){ message.delete(); const statsEmbed = new MessageEmbed() .setColor('#8F00FF') .setAuthor(userMentioned.user.username, userMentioned.user.displayAvatarURL()) .addFields( { name: '<:logoas2:876840515465797632>Current Level:', value: 'Current: **' + (userMentioned.userStats.level) + '**', inline: true }, { name: '<:xp2:874732251571707966>Current XP:', value: 'Amount: **' + userMentioned.userStats.xp + '**', inline: true }, { name: '<:xp3:876841199456092161>To Next Level:', value: 'Amount: **' + (userMentioned.xpToNextLevel - userMentioned.userStats.xp) + '**', inline: true }, { name: '<:etherite:874730607106748457>Etherite:', value: 'Amount: **' + userMentioned.userStats.etherite + '**', inline: true }, { name: '<:time:876866100774707290>Member Since:', value: 'Date: **' + userMentioned.userStats.dateofJoin + '**', inline: true }, ) .setTimestamp() .setFooter('Avesong', client.user.displayAvatarURL()); client.channels.cache.get("876597275856601168").send({ embeds: [statsEmbed] }); }, 500); }}}
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Sugeriría usar:

 var userMentioned = Client.users.cache.get(args[0]);

Tal como se ha observado antes, en este momento está ingresando un valor de cadena que obviamente no tiene la propiedad .id, etc.

¿Por qué optaría por lo anterior? Si no recuerdo mal, esta es la forma más elegante de evitar errores sobre el bot que no puede obtener datos de usuarios que no figuran en el gremio. Si bien este podría no ser el caso, es aconsejable evitar tales errores.

Además, es probable que deba verificar las intenciones de su bot en el portal de desarrollo; definitivamente necesitará el indicador GUILD_MEMBERS activo.

Documentos sobre cache.get()

about 4 years ago · Juan Pablo Isaza Denunciar

0

Dividir el contenido del mensaje no devuelve el usuario mencionado. En su lugar, devuelve la cadena como esta: "<@UserId>" . Puede usar Message.mentions en su lugar.

 if (message.mentions.users.size){ var userMentioned = message.mentions.users.first() message.delete() }
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