如何检查会员是否有角色

时间:2019-04-17 11:54:03

标签: bots discord discord.py-rewrite

如何检查<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> <body class=""> <div class="body-content"> <div class="panel panel-body"> <ul class="nav nav-pills"> <li> <a href="/PartLibrary/Parts">Parts</a> </li> <li> <a href="/PartLibrary/Recipes">Recipes</a> </li> <li> <a href="/PartLibrary/RobotPrograms">Robot Programs</a> </li> </ul> </div> </div> </body>是否具有message.author角色?

还是有一种方法可以检查一个成员是否比另一个成员具有更高的作用?

2 个答案:

答案 0 :(得分:1)

获取用户角色

  • 您可以与角色名称进行比较

    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以获得更多信息。

答案 1 :(得分:1)

如果discord.utils.get角色列表中存在Member角色,则可以使用该角色。

from discord.utils import get

if get(member.roles, name="admin"):
    # has role
else:
    # does not have role

要确定层次结构中的位置,您可以比较Member的最高角色

if member1.top_role > member2.top_role:
    # member 1 is higher than member 2
相关问题