我正在写下面的命令
@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的子类,以便在它们失败时可选地进行处理.