Estoy creando un sistema de clasificación para mi bot y quiero mostrar la etiqueta del usuario junto con su cantidad de dinero.
Aquí está el código
const lb = users .slice(0) .sort(({ Bobux: a }, { Bobux: b }) => b - a) .map( ({ User, Bobux }, pos) => `${pos + 1}. ${(client.users.cache.get(User)).tag} - ${commaNumber(Bobux)} Bobux`, ); const newnew = lb.slice(0, 30) const embed = new Discord.MessageEmbed() .setTitle('Global Leaderboard For Most Bobux - Top 30') .setDescription(newnew)Aquí, lo mapeo e intento obtener la etiqueta del usuario con su identificación (Usuario es la identificación del usuario en la base de datos)
El usuario se ve así '43908439084329084'
.map( ({ User, Bobux }, pos) => `${pos + 1}. ${(client.users.cache.get(User)).tag} - ${commaNumber(Bobux)} Bobux`, );Cuando hago esto, me sale el error.
0|index | TypeError: Cannot read properties of undefined (reading 'tag')¿Cómo obtengo la etiqueta del usuario con su id.
Puede buscar al usuario a través del método UserManager#fetch . El siguiente código verificará si el usuario está en caché, si no, obtendrá ese usuario de Discord.
const user = await client.users.fetch(UserId).catch(() => null); if (!user) console.log("That user is not available"); else console.log(user.tag);Documentación: https://discord.js.org/#/docs/discord.js/stable/class/UserManager