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

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

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 Report

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 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!