Discord.py进行踢球命令

时间:2020-09-13 05:25:44

标签: python discord discord.py

我正在用python创建一个discord bot,到目前为止,我已经做了一些小命令,现在我正在尝试添加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.")

预先感谢

1 个答案:

答案 0 :(得分:0)

首先,您应该使用@commands.has_permissions而不是has_permissions

然后在@client.command()顶部添加async def kick(ctx, member: 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.")