有没有办法从私人消息中收集角色?

时间:2017-09-29 02:17:39

标签: javascript discord discord.js

我的机器人无法从私人消息中获取角色!

有没有人知道如何搜索特定公会的消息传递成员的ID并查看他们是否有角色?

以下是在PM中不起作用的代码示例:

<a href="" target=

1 个答案:

答案 0 :(得分:1)

要执行此操作,您需要公会ID。您可以让用户提及公会ID或将其存储在某个地方。否则,您可以让用户提及公会的名称。

然后,使用Client.Guilds获取机器人与之关联的公会列表,它会返回Collection<Snowflake, Guilds>。您可以循环使用它,也可以使用find()方法 请注意,如果您根据公会的名称查找,则还需要一个额外的步骤来比较集合中的每个公会的名称。
(如果你循环使用它,如果你的机器人连接到很多公会,任务会更长。此外,你可以检查Client.Guilds属性here。)

获得公会后,只需获取所需人员的GuildMember属性即可。只做Guild.member(message.author)它会返回一个GuildMember,其中包含刚刚给你发消息的人的类似属性,这次也是与公会相关的属性。

从那里,您可以使用GuildMember.roles访问所有人的公会角色,或者如果您只是想检查他是否拥有特定权限,则存在GuildMember.hasPermission()方法。
(关于GuildMember的文档是here。)