【发布时间】:2019-09-07 16:02:24
【问题描述】:
如何检查message.author 是否具有admin 角色?
或者有什么方法可以检查一个成员是否比另一个成员具有更高的角色?
【问题讨论】:
标签: bots discord discord.py-rewrite
如何检查message.author 是否具有admin 角色?
或者有什么方法可以检查一个成员是否比另一个成员具有更高的角色?
【问题讨论】:
标签: bots discord discord.py-rewrite
如果某个角色存在于Members 角色列表中,您可以使用discord.utils.get 获取该角色。
from discord.utils import get
if get(member.roles, name="admin"):
# has role
else:
# does not have role
要确定在层次结构中的位置,可以比较Members 的最高角色
if member1.top_role > member2.top_role:
# member 1 is higher than member 2
【讨论】:
您可以与角色名称进行比较
message.member.roles 是一个集合。这意味着您只需直接在集合中查找角色。像这样:
if(message.member.roles.find(r => r.name === "Admin") || message.member.roles.find(r => rname === "AnotherRole"))
或者你可以通过Map.has方法直接检查成员是否具有特定的角色。这将检查键,而不是值,因此您必须使用角色的 ID。
message.member.roles.has(adminRole.id)
message.member.roles.has(modRole.id)
你可以简单地使用这种代码(在官方文档中有描述)
if(role_of_author > role_of_user_to_be_banned)
但请注意,一个用户可以拥有多个角色,因此请根据您的用例调整此条件。
您可以参考documentation了解更多信息。
【讨论】: