如何在 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(', ');
我为 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(', ');