如何允许命令进行一次 discord.py 检查?

How to allow command with one discord.py check?

我在 discord.py 中有一个命令,我想在其中使用 @has_permissions(administrator=True),但我希望能够 运行 使用一个命令自定义检查,检查它是否是某个用户,以便 user/role/whatever 可以 运行 命令,无论他们是否有权限。所以我想我的问题是:如果用户至少通过 1 次检查,有没有办法允许命令?提前致谢!

是的,您可以按照此处文档中的说明编写自己的支票:https://discordpy.readthedocs.io/en/master/ext/commands/api.html?highlight=has%20permissions#discord.ext.commands.check

def check_if_it_is_me(ctx):
    return ctx.message.author.id == 85309593344815104

@bot.command()
@commands.check(check_if_it_is_me)
async def only_for_me(ctx):
    await ctx.send('I know you!')

我找到答案了!查看文档后,我找到了 @commands.check_any() 装饰器。您可以输入检查以供其检查,如果任何输入的检查将通过,它会添加该检查。

documentation 中阅读有关此装饰器的更多信息。