在 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 關注
- 122 瀏覽
添加回答
舉報
0/150
提交
取消