Python Can';如果用户不';我没有踢的权限

Python Can';如果用户不';我没有踢的权限,python,python-3.x,discord.py,Python,Python 3.x,Discord.py,我正在尝试制作一个快速的机器人,如果它有权限踢人,并且用户有权限踢人,并且如果机器人没有权限或者用户没有权限,则在聊天中引发错误。然而,我目前的解决方案似乎不起作用。下面是处理它的代码,当您有权限时,该代码可以踢人,但如果bot或用户没有权限,则不会引发错误 @client.command(name = 'kick', pass_context = True) @has_permissions(kick_members = True) @bot_has_permissions(kick_memb

我正在尝试制作一个快速的机器人,如果它有权限踢人,并且用户有权限踢人,并且如果机器人没有权限或者用户没有权限,则在聊天中引发错误。然而,我目前的解决方案似乎不起作用。下面是处理它的代码,当您有权限时,该代码可以踢人,但如果bot或用户没有权限,则不会引发错误

@client.command(name = 'kick', pass_context = True)
@has_permissions(kick_members = True)
@bot_has_permissions(kick_members = True)
async def _kick(ctx, member : discord.Member, *, reason='No Reason Given'):
    await member.kick(reason = reason)
    await ctx.send(f'{member} was kicked for {reason}')


@_kick.error
async def kick_error(error, ctx):
    if isinstance(error, MissingPermissions):
        text = (f'Sorry {ctx.message.author}, you do not have permission to do that')
        await ctx.send(text)


试着这样做:

@client.event
命令上的异步定义错误(ctx,错误):
如果isinstance(错误,commands.MissingPermissions):
等待ctx.send(“您没有此命令所需的权限。”)
返回
提出错误

您的错误可能与参数的顺序有关。这工作对我很好

@\u kick.error
异步def踢_错误(ctx,错误):
如果isinstance(错误,commands.MissingRequiredArgument):
等待ctx.send(f'请传递所有要求{ctx.message.author.notice}:rolling_eyes:。)
如果isinstance(错误,commands.MissingPermissions):
等待ctx.send(f“你没有所有的要求{ctx.message.author.note}:生气:”)