Discord.py真密钥权限

Discord.py真密钥权限,discord,discord.py,Discord,Discord.py,我试图生成一个roleinfo命令来过滤角色的true密钥权限,但响应似乎是空的。我没有错 发生这种情况是因为角色.权限返回一个权限对象,而不是列表[权限]对象。您可以通过迭代角色的权限来获取每个权限的值 @commands.command() @commands.cooldown(1, 3, commands.BucketType.user) async def roleinfo(self,ctx,*,role:discord.Role): guild = ctx.gu

我试图生成一个roleinfo命令来过滤角色的
true
密钥权限,但响应似乎是空的。我没有错


发生这种情况是因为
角色.权限
返回一个
权限
对象,而不是
列表[权限]
对象。您可以通过迭代角色的权限来获取每个权限的值

  @commands.command()
  @commands.cooldown(1, 3, commands.BucketType.user)
  async def roleinfo(self,ctx,*,role:discord.Role):
      guild = ctx.guild
      perms = ", ".join(str(permission) for permission in role.permissions if true_false == 'true')
      embed = discord.Embed(description=f'''
>〉 **Role Created On:** {role.created_at.strftime("%d/%m/%Y")}
>〉 **Roles ID:** {role.id}
>〉 **Roles Color:** {role.color}
>〉 **Mentionable:** {role.mentionable}
>〉 **Position:** {role.position}
>〉 **Hoist:** {role.hoist}
>〉 **Permissions:** {perms}
''', color=discord.Color.orange(),timestamp=ctx.message.created_at)
      embed.set_author(name=f"{role.name}s Information", icon_url=guild.icon_url)
      embed.set_footer(text=f"Requested by {ctx.author}.", icon_url=ctx.author.avatar_url)
      await ctx.reply(embed=embed, mention_author=False)
下面的代码将打印包含每个权限信息的元组

for permission in iter(role.permissions):
    print(permission)
这可以应用于您的代码,如下所示:

(str(permission), bool(value))

什么是“真”\u“假”??你在哪里定义的?
perms = ", ".join(list(filter(lambda x: x[0] if x[1] else "", iter(role.permissions))))