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的子类,以便在它们失败时可选地进行处理.

上一篇:c#-筛选Excel数据:.Net与SSIS


下一篇:javascript – Discord.js回复消息然后等待回复