python - (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 版
解决方案
@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)
这应该有效。
推荐阅读
- python - 满足条件时如何求第一行与该行的时间差?
- python - 如何使用 if 条件捕获函数返回值
- ruby - Parse Recursive Collect Deep Nested Category XML children with parents Ids
- ruby - 如何将 Ruby 数组导出到单个 csv 行中?
- php - 如何使用 PHP 格式化数字以提高性能?
- java - ComboBox onAction 方法导致由 ClassCastException 引起的 InvocationTargetException
- python - DynamoDB 是否有默认/无操作 FilterExpression?
- c# - 当有多个测试类时,XUnit 在 Azure DevOps 上永远运行,但在本地运行正常
- swift - ARSceneView 中使用哪个图像作为参考?
- r - 在函数中设置时,数据帧行/列的重新排序不起作用