Discord.py 在命令方法上使用多个权限检查装饰器
Posted
技术标签:
【中文标题】Discord.py 在命令方法上使用多个权限检查装饰器【英文标题】:Discord.py using multiple permission check decorators on command methods 【发布时间】:2021-07-15 01:37:29 【问题描述】:我正在发出命令test
。
我只希望用户能够使用该命令;
manage_channels
权限
目前我正在做
@client.command()
@commands.has_permissions(manage_channels=True)
@commands.check(commands.is_owner())
async def test(ctx):
await ctx.reply("Success!")
但是一旦我 - 机器人所有者 - 尝试在没有 manage_channels
许可的情况下使用它,它就不起作用。我假设它一看到我没有权限就被@commands.has_permissions() 阻止了?
我知道我总是可以只检查方法本身,但我知道使用装饰器是更好的方法?
提前致谢。
【问题讨论】:
【参考方案1】:你可以使用commands.check_any
装饰器
@client.command()
@commands.check_any(commands.is_owner(), commands.has_permissions(manage_channels=True))
async def ...
参考:
commands.check_any
【讨论】:
以上是关于Discord.py 在命令方法上使用多个权限检查装饰器的主要内容,如果未能解决你的问题,请参考以下文章