限制同时发送消息
Posted
技术标签:
【中文标题】限制同时发送消息【英文标题】:Limit the sending of messages at the same time 【发布时间】:2019-10-27 23:19:03 【问题描述】:我想知道是否有办法阻止频道不和谐中不同人同时发送多条消息。不管他的丝绸是用discord.js还是discord.py。就其本身而言,我希望机器人考虑发送的第一条消息并忽略同时发送的其他消息
诚挚的,
昆汀 S.
【问题讨论】:
您可以使用不和谐的慢速模式来实现这一点。 support.discordapp.com/hc/en-us/articles/…。您可以直接通过 discord UI 进行配置。您似乎也可以通过 discord.js API 使用TextChannel
setRateLimitPerUser
方法(discord.js.org/#/docs/main/stable/class/…)对其进行配置。
@Gruntzy 这不是他在说的。慢速模式仅限制同一用户发送的消息。即慢速模式设置为 5 秒,如果我发送消息,我必须等待 5 秒才能再次发送,但另一个用户可以在这 5 秒内发送消息,然后必须等待他的 OWN 5 秒。
@Timesis 没错,我想做的是让我的机器人考虑发送的第一条消息,而不是不同用户同时收到的其他消息。
你不能阻止用户发送这样的消息。但是,您可以让机器人忽略或删除在收到第一条消息后发送的其他消息。不完全确定您的用例是什么。无论哪种方式,一条消息都必须在频道中实际发布,以便机器人对其采取行动。无法抢占消息的实际发送/发布。
【参考方案1】:
一种解决方案是跟踪最后收听的消息的时间戳,然后忽略在设定的时间量过去之前发送的任何消息。看这个例子...
let lastMessageTime;
const sec = 2; // Seconds to wait between messages.
client.on('message', message =>
if (!message.guild || message.author.bot) return;
if (lastMessageTime && message.createdTimestamp - (sec * 1000) < lastMessageTime) return;
else lastMessageTime = message.createdTimestamp;
// Continue with 'message' event.
);
【讨论】:
以上是关于限制同时发送消息的主要内容,如果未能解决你的问题,请参考以下文章