Hice un comando de perfil para discord. Necesita mostrar los roles de un usuario. Sé cómo mostrar los roles del autor del mensaje, pero el mismo método para mostrar los roles del autor del mensaje no funciona para los miembros a los que se hace ping.
Voy a mostrar mi código para que quede más claro:
// this one works as expected message.member.roles.cache.map((role) => role.name).join(", ")
// but this one doesn't work let pingedUser = message.mentions.users.first(); pingedUser.roles.cache.map((role) => role.name).join(", ")
El primero funciona porque mapea los roles de un GuildMember
. El segundo no funciona porque intenta obtener los roles de un User
, pero solo los GuildMember
tienen roles.
Para solucionar esto, puede usar message.mentions.members.first()
en su lugar, ya que message.mentions.members
devuelve un GuildMember
:
let pingedMember = message.mentions.members.first(); pingedMember.roles.cache.map((role) => role.name).join(', ');