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

(discord.py) How can I get a list of how many permissions a user has

我目前正在为我的 bot 创建一个“userinfo”命令,其中 returns 一般信息,例如用户 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> returns 无论用户是否有权限,但我想知道是否有办法只获取一个包含多少权限的列表用户不必检查每个权限。

那么有办法吗?

你实际上可以使用 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 returns 元组列表(例如 (manage_permissions, True))。您可以浏览此列表并将权限添加到另一个列表,如果它是 True