假设你有一个聊天室,人们正在使用命令:
[userA]: !ping (3sec ago)
[BOT]: Pong.
[userB]: !ping (2sec ago)
[BOT]: Pong.
[userA]: !ping (1sec ago)
//do not respond, 10 second cooldown not over
我将如何创建一个不同的冷却时间?对于不同的人使用命令后?我这样做是为了lastUser
总是等于使用命令的人的最后一个用户名,这样你就可以在命令响应中对用户做些什么。
我想到了这样的事情:
if(chtBox.command = "!ping"){
>>check if timer with the name/value "lastUser" is active/exists
>>>>if not,
>>>>>>start new 10sec timer with the name/value "lastUser"
>>>>if yes,
>>>>>>ignore command
}
请指导我正确的方向
答案 0 :(得分:0)
这比Java更像是一个设计问题。
管理一堆计时器并不是可扩展的。
有一个跟踪您上次听到任何客户的时间的集合。
每隔n秒,让一个线程醒来,通过收集,然后开始"冷却"任何在n秒内没有听说过的客户。