python - 聊天清除无权限复出消息不起作用
问题描述
我编写了一个机器人,机器人有一个 !clear 功能,代码是
@client.command()
@commands.has_permissions(manage_messages=True)
async def clear(ctx, amount=5):
await ctx.channel.purge(limit=amount)
print(f'5 Messages has been deleted!')
@clear.error
async def clear_error(error, ctx):
if isinstance(error, CheckFailure):
time.sleep(0.5)
print("No Permission!")
await ctx.send(f'You have no permission!')
问题是,当用户无权执行此操作时,等待 ctx.send 将无法说您没有权限!在这个地方等待 ctx.send 是错误的还是其他什么?
解决方案
你只需要交换参数的位置。第一个参数必须是ctx
,第二个参数是error
。
@clear.error
async def clear_error(ctx, error):
if isinstance(error, CheckFailure):
time.sleep(0.5)
print("No Permission!")
await ctx.send(f'You have no permission!')
推荐阅读
- javascript - 将 onClick 传递给 material-ui 按钮 - 仅工作一次
- mysql - 根据时间戳获取数据库中的数据
- html - 我尝试使用悬停
- ,但它不起作用
- python - 无法打开 ftps 目录,ftplib.error_perm: 534 Policy requires SSL
- ios - Swift:将 UICollectionViewCell 转换为私有类类型?
- javascript - 动态设置清单时的 PWA 安装提示
- kivy - kivy 或 kivymd 是否具有类似于 ios 带点的页面指示器?
- java - 无法使用 POST 方法和 HTTPS 将 JSON 数据发送到使用 Java 的 Web 服务器
- ios - 架构 x86_64 的未定义符号:“_OBJC_CLASS_$_MobilePayManager”
- python - 写入 JSON 文件,然后读取同一文件并获取“JSONDecodeError:额外数据”