我正在用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.")
预先感谢
答案 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.")