如何在 discord.js 中显示提及用户的角色

How to show roles of a mentioned user in discord.js

我为 discord 创建了一个配置文件命令。它需要显示用户的角色。我知道如何显示消息作者的角色,但显示消息作者角色的相同方法不适用于 ping 成员。

我将展示我的代码以使其更清晰:

// 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(", ")

第一个有效,因为它映射了 GuildMember. The second one doesn't work because you try to get the roles of a User 的角色,但只有 GuildMember 有角色。

要解决此问题,您可以使用 message.mentions.members.first() 作为 message.mentions.members returns a GuildMember:

let pingedMember = message.mentions.members.first();

pingedMember.roles.cache.map((role) => role.name).join(', ');