在 discordgo 中是否有等待用户响应消息的选项?我正在寻找类似于 discord.js awaitMessages 的东西。
2 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
不,但您可以创建一个集合来保存消息和事件信息并检查新闻消息。
简单地
制作一个集合/数组
添加消息信息
检查消息事件处理程序中的传入消息是否在集合中
处理事件
从集合中删除
不要忘记设置超时并从集合中清除过期数据。
一只甜甜圈
TA贡献1836条经验 获得超5个赞
根据文档:awaitMessages
time:收集器应该运行的时间量(以毫秒为单位)
max:成功通过过滤器的消息数
在 Go 中,只需一个关键字就可以轻松使用一个例程go
,因此实现 asynchronous( async
) 非常简单。
解决思路:
创建消息存储中心:具有以下特点:
有一个垃圾收集机制:由于我们不断地收集消息,所以我们需要一种机制来淘汰旧消息。
Need a mutex : 考虑到消息可能会产生竞争条件,所以加了这个锁来保证安全
它可以生成过滤器:要与每个过滤器进行通信,我们需要为每个过滤器提供一个chan。
每当创建新消息时,我们将消息添加到消息中心,它还会通知每个过滤器。
完整代码
我把完整的代码放在replit和gist上。如果你想运行它,你可以从replit中复制代码并在环境变量中设置你的token和channel ID(或用户ID)来测试它。
- 2 回答
- 0 关注
- 77 浏览
添加回答
举报
0/150
提交
取消