首页 > 解决方案 > 在 discord.py ratelimit 上做点什么

问题描述

我希望你们都有一个美好的白天/夜晚。

我有一个在云上运行的 Discord 机器人,当我的共享 IP 达到每秒 50 个请求的速率限制时,我的机器人会被阻塞一段时间(我知道,这是一个糟糕的系统,但它就是我所在的位置)。如果发生这种情况,我希望它在另一个站点上向我发送消息。我有一种方法可以发送有效的消息(使用 Twitter 的 Tweepy 模块),但是当我使用以下代码时没有任何反应:

@client.event
    async def on_error(ctx, error):
      if isinstance(error, discord.errors.HTTPException):
        #do something

难道我做错了什么?谢谢!

标签: pythondiscord.pylimitrateratelimit

解决方案


由于您的速率限制只能由某些命令触发,并且之后您只能在控制台中收到消息,因此使用该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.

推荐阅读