@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" }
}
timeoutMillis
- 超时. 单位为毫秒. -1
为不限制
See Also