Discord.py真密钥权限
我试图生成一个roleinfo命令来过滤角色的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
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))))