尝试使has:permission出错

时间:2019-10-04 09:32:43

标签: python discord.py-rewrite

所以我试图对我的discord.py重写bot发出一个say命令。但是我不知道该怎么做,所以当用户没有正确的权限时它会发送文本

@client.command()
@commands.has_permissions(manage_messages = True)
async def say (ctx, *, msg2:str):
        await ctx.send(msg2)

@say.error
async def say_error(error, ctx):
    if isinstance(error, CheckFailure):
        await ctx.send('You need the **Manage messages** permission to use this command')

如果用户具有“管理邮件”或“管理员”权限。我希望它运行say命令。如果他们没有任何这些权限。我希望它发送:“您需要具有此命令的管理消息权限”

1 个答案:

答案 0 :(得分:0)

您对say_error的参数是向后的。您还可以检查更具体的MissingPermissions错误。

@say.error
async def say_error(ctx, error):
    if isinstance(error, MissingPermissions):
        await ctx.send('You need the **Manage messages** permission to use this command')
    else:
        raise error

您可能可以使用

之类的方法来对此进行概括
@say.error
async def say_error(ctx, error):
    if isinstance(error, MissingPermissions):
        await ctx.send(f'You need the **{", ".join(error.missing_perms)}** permission to use this command')
    else:
        raise error