mirai-core / net.mamoe.mirai.event / selectMessages

selectMessages

@SinceMirai("0.29.0") suspend inline fun <reified T : ContactMessage, R> T.selectMessages(timeoutMillis: Long = -1, filterContext: Boolean = true, crossinline selectBuilder: MessageSelectBuilder<T, R>.() -> Unit): R

挂起当前协程, 等待任意一个事件监听器触发后返回其返回值.

创建的所有事件监听器都会判断发送人信息 (isContextIdenticalWith), 监听之后的所有消息.

selectBuilder DSL 类似于 subscribeMessages 的 DSL, 屏蔽了一些 reply DSL 以确保类型安全

val value: String = selectMessages {
  "hello" { "111" }
  "hi" { "222" }
  startsWith("/") { it }
  default { "default" }
}

Parameters

timeoutMillis - 超时. 单位为毫秒. -1 为不限制

See Also

nextMessage