我正在創建一個使用Pircbot的IRC機器人,它可以響應某些請求(例如「!time」提供本地時間)。我正在構建的功能之一是一個贈送系統,它從當前在線用戶中隨機選擇一個用戶並給予獎勵。輸入線程的時間限制
我想通過強制贏家在獲勝後的30分鐘內輸入「!accept」來提升系統,以獲得獎品。不過,我希望機器人仍能正常工作,這意味着我無法將整個線程凍結30分鐘等待消息。
我正在考慮這樣做的幾種方法,對我來說感覺有點過於哈哈。
我可以將獲勝者的名字存儲在一個變量或.properties文件中,並且不斷地在尋找「!accept」命令。如果獲勝者發送了「!accept」(變量中的名稱),並且發送消息的時間在30分鐘以內,請確認獲勝者。這樣做的缺點是,如果機器人在這30分鐘內重新啓動或暫時脫機,它可能會導致很多連續性問題,特別是使用.properties文件時。
創建一個可運行線程,休眠30分鐘,然後檢查!accept命令的所有新消息。這聽起來有點怪異,頂上有哈克醬。
將我的問題帶走。
馬克您選擇的獲獎者的時候,甚至還有一個'線程「或」定時器「事件在30分鐘後觸發以重置它。如果輸入是「!accept」並且來自正確的用戶並且「已標記」時間與現在之間的差異小於30分鐘,則愉快用戶 – MadProgrammer
您可以在30分鐘後回來以檢查用戶是否寫下''' !accept''',或者你有一個計時器線程來及時檢查這種情況,並在30分鐘後停止。這兩個選項都是有效的,取決於你想多久檢測一個潛在贏家寫了'''accept'''' –
@MadProgrammer不是一個壞主意......你會建議我在30分鐘內存儲贏家的名字? .properties文件或討厭的全局變量? –