【问题标题】:discord.py - Command to modify roles that cannot be used if role has got permissions the user don't havediscord.py - 如果角色获得了用户没有的权限,则修改无法使用的角色的命令
【发布时间】:2019-04-30 20:06:13
【问题描述】:

我正在使用 discord.py-rewrite 库制作 Discord BOT,但遇到了问题。 事实上,我正在制作一个可以从我们指定的角色中删除所有权限的命令。但我希望这个命令只能由具有Manage Roles 权限的成员使用,但成员还必须拥有他们正在修改的角色的所有权限。 例如,成员具有 Manage Roles 权限但没有 View Audit Log 权限无法对角色执行此命令具有 View Audit Log 权限。 任何人现在请我如何管理这个?

【问题讨论】:

    标签: python discord.py discord.py-rewrite


    【解决方案1】:

    获取角色和作者的Permissions,然后确认角色权限是作者权限的子集:

    @bot.command()
    @has_permissions(manage_roles=True)
    async def remove_role(ctx, *, role: Role):
        if role.permissions <= ctx.author.permissions_in(ctx.message.channel):
            ...
        else:
            await ctx.send("You are missing permissions")
    

    【讨论】:

    • 非常感谢您的回答 Patrick Haugh,但它不起作用:(
    • 我们是否需要循环每个角色的权限,看看作者是否拥有这些权限?
    • 不,Permissions 对象为我们提供了子集功能。当你说它不起作用时,你是什么意思?您是否看到错误,是允许没有正确权限的人进入,还是限制了拥有正确权限的人?
    • 好吧,我已经在我拥有的服务器上测试了这个,但它不允许我使用命令
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 2021-02-07
    • 2017-08-06
    • 2020-10-16
    • 2021-07-29
    • 1970-01-01
    相关资源
    最近更新 更多