python - 在 discord.py ratelimit 上做点什么
问题描述
我希望你们都有一个美好的白天/夜晚。
我有一个在云上运行的 Discord 机器人,当我的共享 IP 达到每秒 50 个请求的速率限制时,我的机器人会被阻塞一段时间(我知道,这是一个糟糕的系统,但它就是我所在的位置)。如果发生这种情况,我希望它在另一个站点上向我发送消息。我有一种方法可以发送有效的消息(使用 Twitter 的 Tweepy 模块),但是当我使用以下代码时没有任何反应:
@client.event
async def on_error(ctx, error):
if isinstance(error, discord.errors.HTTPException):
#do something
难道我做错了什么?谢谢!
解决方案
由于您的速率限制只能由某些命令触发,并且之后您只能在控制台中收到消息,因此使用该on_command_error
事件是有意义的。
看下面的代码:
@client.event
async def on_command_error(ctx, error):
if isinstance(error, discord.HTTPException):
await ctx.send("You are ratelimited") # Send whatever you want.
推荐阅读
- react-native - 设置borderRadious时图像消失
- excel-formula - 如何在 Excel 中编写双向查找值的公式
- ios - Safari 中的 iOS 深层链接未自动打开
- c# - 如何使用 Json.Net 在永久打开的套接字上传递 Json?
- javascript - 如何在 Chart.js 中将 NaN 值更改为 0?
- regex - 正则表达式 [a-z_]+ 但必须至少包含一个下划线?
- angular - Angular http.post() 给出:“错误 415 不受支持的 MIME 类型”
- c++ - 无法访问存储在单个 UBO OpenGL 中的一组剪切平面?
- javascript - MySQL + Sequelize:无法添加或更新子行:外键约束失败
- c# - 如何在 MVC 框架中使用 MQTT 连接到代理?