我目前正在为我的机器人执行“ 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>
来返回用户是否具有权限,但是我想知道是否有一种方法可以仅获取用户具有多少权限的列表,而不必检查所有权限。
那么有办法吗?
答案 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
。