(discord.py)如何获取用户拥有多少权限的列表

时间:2020-07-25 19:01:43

标签: python list discord discord.py discord.py-rewrite

我目前正在为我的机器人执行“ userinfo”命令,该命令返回常规信息,例如用户的ID,角色,个人资料图片等。我还希望它显示所提及用户具有多少权限的列表。这是我为上下文定义member的代码部分:

@client.command(aliases=["whois"])
async def userinfo(ctx, member: discord.Member = None):
    if not member:  # if member is no mentioned
        member = ctx.message.author  # set member as the author
    ...

我知道您可以执行member.guild_permissions.<permission>来返回用户是否具有权限,但是我想知道是否有一种方法可以仅获取用户具有多少权限的列表,而不必检查所有权限。

那么有办法吗?

1 个答案:

答案 0 :(得分:1)

您实际上可以使用Member.guild_permissions

@client.command(aliases=["whois"])
async def userinfo(ctx, member: discord.Member = None):
    if not member:
        member = ctx.message.author
    perm_list = [perm[0] for perm in member.guild_permissions if perm[1]]

Member.guild_permission返回一个元组列表(例如(manage_permissions, True))。您可以浏览此列表,并将权限添加到其他列表(如果为True

)。