(discord.py) 如何获取用户拥有多少权限的列表
Posted
技术标签:
【中文标题】(discord.py) 如何获取用户拥有多少权限的列表【英文标题】:(discord.py) How can I get a list of how many permissions a user has 【发布时间】:2020-11-15 10:18:51 【问题描述】:我目前正在为我的机器人创建一个“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】:你实际上可以使用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
,您可以浏览此列表并将权限添加到另一个列表。
【讨论】:
以上是关于(discord.py) 如何获取用户拥有多少权限的列表的主要内容,如果未能解决你的问题,请参考以下文章