编程语言
首页 > 编程语言> > python – 如何只允许管理员执行命令

python – 如何只允许管理员执行命令

作者:互联网

我正在写下面的命令

@bot.command(pass_context=True)
async def admins_only_command(ctx, *, args):
    '''do stuff

我怎样才能将此命令限制为仅限管理员?我试着查看ctx.author.roles.role,它说@everyone.如何检查给定用户是否是管理员?

解决方法:

有两种方法:使用has_any_role的角色白名单

@bot.command(pass_context=True)
@commands.has_any_role("Big Cheese", "Medium Cheese")
async def admins_only_command(ctx, *, args):
    '''do stuff'''

或使用has_permissions许可

@bot.command(pass_context=True)
@commands.has_permissions(administrator=True)
async def admins_only_command(ctx, *, args):
    '''do stuff'''

这两个装饰器都是Checks,并且会引发一些CommandError的子类,以便在它们失败时可选地进行处理.

标签:discord,python,discord-py,discord-py-rewrite
来源: https://codeday.me/bug/20191003/1845673.html