首页 > 解决方案 > (discord.py) 为什么我的踢命令不起作用?

问题描述

@client.command
@commands.has_permissions(kick_members=True)
async def kick(ctx, member: discord.Member, *, reason = None):
    await member.kick(reason=reason)
    await ctx.send(f'{member} Has been kicked')

我有我的on_command_error活动,

@kick.error
async def on_kick_error(ctx, error):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send('Please specify an user')
    elif isinstance(error, commands.CheckFailure):
        await ctx.send('You do not have a perms to do that!')
    else:
        await ctx.send('There is some error')

然后我收到了不和谐的错误消息

discord.py 1.5 版

标签: pythondiscorddiscord.py

解决方案


@client.command()
@commands.has_permissions(kick_members=True)
async def kick(ctx, member: typing.Optional[discord.Member], arg = None):
    if arg == None:
        await ctx.send("Kicked " + member.mention + ".")
    else:
        await ctx.send("Kicked " + member.mention + " for " + arg + ".")
    await ctx.guild.kick(member)

这应该有效。


推荐阅读