我的机器人无法从私人消息中获取角色!
有没有人知道如何搜索特定公会的消息传递成员的ID并查看他们是否有角色?
以下是在PM中不起作用的代码示例:
<a href="" target=
答案 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。)