如何实现"问答"功能的计时器("超时"判断)?
-
我想做一个问答功能的插件,给出一个问题,如果超时就会做一些事情,有正确答案就会做另一些事情之类的。
现在的问题就是如何实现超时这方面的判断
实在没有什么思路,想问一下各位是否会弄,或是有没有这方面的例子拿来参考,先谢谢大家了 -
你可以看看我的
suspend inline fun <reified P : MessageEvent> P.nextAnswerOrNull( timeoutMillis: Long, priority: EventPriority = EventPriority.MONITOR, noinline filter: suspend P.(P) -> Boolean = { true } ): P? { require(timeoutMillis > 0) { "timeoutMillis must be > 0" } return syncFromEventOrNull<P, P>(timeoutMillis, priority) { takeIf { subject == this@nextAnswerOrNull.subject && filter(it, it) } } }
-
此回复已被删除! -
@cssxsh 要是我能看懂就好了😭
-
@cssxsh 谢谢您的帮助,虽然以我的能力还不足以看懂这段代码哈哈哈
我最终找到了mirai库里关于事件监听的一个函数,能够实现我的需求