Python Discord.py发出踢腿命令

Python Discord.py发出踢腿命令,python,discord,discord.py,Python,Discord,Discord.py,我正在用python制作一个discord机器人,到目前为止我已经制作了一些小命令,现在我正在尝试添加kick和ban之类的命令,我已经阅读了git hub的文档,并尝试执行该命令,但出现了一些错误,但我已经修复了这些错误,但是现在kick命令的代码既没有给出错误,也没有在discord通道中发送消息,只有在非管理员尝试执行该命令时才会发生这种情况。我正在使用has_premissions来完成这项任务,因为我的机器人将安装在3到4台服务器中 代码如下: @has_permissions(adm

我正在用python制作一个discord机器人,到目前为止我已经制作了一些小命令,现在我正在尝试添加kick和ban之类的命令,我已经阅读了git hub的文档,并尝试执行该命令,但出现了一些错误,但我已经修复了这些错误,但是现在kick命令的代码既没有给出错误,也没有在discord通道中发送消息,只有在非管理员尝试执行该命令时才会发生这种情况。我正在使用
has_premissions
来完成这项任务,因为我的机器人将安装在3到4台服务器中

代码如下:

@has_permissions(administrator=True)
async def kick(ctx, member: discord.Member, *, why=None):
    await member.kick(reason=why)
    await ctx.channel.send(f"**{member} has been kicked from this server by {ctx.author}**")


@kick.error
async def kick_error(error, ctx):
    if isinstance(error, MissingPermissions):
        await ctx.channel.send("Looks like you don't have the perm.")

提前感谢

首先,您应该使用
@命令。拥有\u权限
而不是
拥有\u权限

然后将
@client.command()
添加到
async def kick的顶部(ctx,成员:discord.member,*,why=None):

编辑

如果您在错误处理方面有问题,请使用

@client.event
async def on_command_error(ctx, error):
而不是
@kick.error
。所以你可以这样做

@client.event
async def on_command_error(ctx, error):
    if isinstance(error, MissingPermissions):
        await ctx.channel.send("Looks like you don't have the perm.")

顶部有
@bot.command()
?并在错误处理程序的末尾添加
raise(error)
,这样您就可以看到errortryit,但它不起作用,而且我在顶部添加了
@bot.command
。我的问题实际上是,当
非管理员使用该命令时,该命令起作用,但它不发送消息,代码中没有错误,我还添加了所有的
装饰程序。
我直接从discord.py导入了
@has_permissions
,我之前还添加了@client.commands,但仍然不起作用。你可以踢成员,但如果有人没有管理员权限,则不会显示错误,我说的对吗?是的,我写的代码是这样的,如果一些人没有做prems,那么它应该发送
看起来你没有烫发。
但它没有这样做。