【问题标题】:Discord Bot (JDA) Rate LimitDiscord Bot (JDA) 速率限制
【发布时间】:2020-11-15 03:15:48
【问题描述】:
我在某处读到,您每 10 分钟只能修改 2 个频道,但您发送的消息也是这种情况,还是只能每 10 分钟执行两次更改/发送/创建等操作?
.queue();.complete();和.submit();有什么区别
提前致谢:D
【问题讨论】:
标签:
java
discord
rate-limiting
discord-jda
ratelimit
【解决方案1】:
速率限制通常是指更改频道的名称/主题,或创建/删除频道。
但是限制也可以应用于添加反应甚至发送消息,以防止滥用/垃圾邮件(如果您在自己的不和谐服务器中发送垃圾邮件,您也可以注意到)。
来自 Discord 文档:“用于控制表情符号的路由不遵循正常的速率限制约定。这些路由在每个公会的基础上受到特别限制,以防止滥用。这意味着我们的 API 返回的配额可能不准确,您可以遇到429s。”
如果您正在创建一个定期添加表情的机器人,您可能希望在这些操作之间设置一个小的超时,否则该机器人将受到速率限制,并且只会在相当长的一段时间后恢复。
为了解决这个问题,我添加了一个布尔值,只有在添加最后一个表情符号的队列操作完成后才会重置。这是一个 hacky 解决方案,但确实有效。
【解决方案2】:
速率限制会根据您正在执行的操作而变化。 Rate Limits
对于.queue()、.complete()、.submit(),请查看文档here(第 7 点)。