MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    如何实现"问答"功能的计时器("超时"判断)?

    开发交流
    3
    5
    396
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • D
      drsalieri 最后由 编辑

      我想做一个问答功能的插件,给出一个问题,如果超时就会做一些事情,有正确答案就会做另一些事情之类的。
      现在的问题就是如何实现超时这方面的判断
      实在没有什么思路,想问一下各位是否会弄,或是有没有这方面的例子拿来参考,先谢谢大家了

      1 条回复 最后回复 回复 引用 0
      • cssxsh
        cssxsh 最后由 编辑

        你可以看看我的

            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) }
                }
            }
        
        D Orisland 3 条回复 最后回复 回复 引用 0
        • D
          drsalieri @cssxsh 最后由 drsalieri 编辑

          此回复已被删除!
          1 条回复 最后回复 回复 引用 0
          • Orisland
            Orisland 摸鱼 @cssxsh 最后由 编辑

            @cssxsh 要是我能看懂就好了😭

            1 条回复 最后回复 回复 引用 0
            • D
              drsalieri @cssxsh 最后由 编辑

              @cssxsh 谢谢您的帮助,虽然以我的能力还不足以看懂这段代码哈哈哈
              我最终找到了mirai库里关于事件监听的一个函数,能够实现我的需求
              d0b1ddb5-79c8-4ea5-a982-67435da28dcb-image.png

              1 条回复 最后回复 回复 引用 0
              • 1 / 1
              • First post
                Last post
              Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact