Discord bot编辑消息太慢

时间:2019-04-21 10:36:43

标签: javascript node.js discord discord.js

我希望我的discordbot发送发送带有附件和文本的消息。然后,机器人必须编辑此文本几次,但问题是,当机器人eddits消息5次后,它会等待一段时间,然后再次编辑5次,依此类推。如何使它编辑消息而不停止?

if(msg.content.includes("letter")){                                       


msg.channel.send("alphabet", { files: ["/Users/48602/Videos/discordbot/aaa.png"]})}
      if(msg.content === 'alphabet'){


        msg.edit("**a**")
        msg.edit("**b**")
        msg.edit("**c**")
        msg.edit("**d**") // Here bot stop for a 2 seconds and i dont know why
        msg.edit("**e**")
        msg.edit("**f**")
        msg.edit("**g**")
        msg.edit("**h**")
        msg.edit("**i**")
        msg.edit("**j**")// Here bot stop for a 2 seconds and i dont know why
        msg.edit("**k**")
        msg.edit("**l**")
        msg.edit("**m**")
        msg.edit("**n**")
        msg.edit("**o**") // Here bot stop for a 2 seconds and i dont know why

      msg.delete()
      }

1 个答案:

答案 0 :(得分:0)

Discord有一个rate limit of 5 in each request。尝试绕过此操作将被视为API滥用(以后的解决方案不是API滥用)。

超过此限制将暂停其他请求,直到经过一定秒数为止。在研究过程中,我遇到了以下simple explanation5 anything per 5 seconds per server(如果您不明白我上面所说的话)。

Discord's Developer guide on rate limits上,它告诉您:

  

关于共享相同速率限制的不同HTTP方法的上述规则[速率限制]当前只有一个例外,那就是删除消息。删除邮件受到单独的更高速率限制,因此漫游器可以更快地从频道中删除内容(这对于审核漫游器很有用)。

在不滥用API的情况下,一种解决方法是发送消息并删除以前的消息,因为删除消息的上限更高。

另一种解决方法是向动画添加中间超时。 一个简单的方法,例如:

function async wait = { require("util").promisify(setTimeout); };
//syntax: await wait(1000); to "pause" for 1 second

您将需要按照时机进行操作,以使其符合您预期的动画速度,并且不会因速率限制而暂停。