MessageSelectBuilder
abstract class MessageSelectBuilder<M : MessageEvent, R> : MessageSelectBuilderUnit<M, R>
Content copied to clipboard
selectMessages 时的 DSL 构建器.
它是特殊化的消息监听 (EventChannel.subscribeMessages) DSL, 屏蔽了一些 reply
DSL 以确保作用域安全性
See also
Functions
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun containsAll( vararg sub: String, ignoreCase: Boolean = false, trim: Boolean = true): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
Link copied to clipboard
fun containsAny( vararg sub: String, ignoreCase: Boolean = false, trim: Boolean = true): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
Link copied to clipboard
当其他条件都不满足时的默认处理.
Link copied to clipboard
当其他条件都不满足时引用回复原消息.
Link copied to clipboard
当其他条件都不满足时回复原消息.
Link copied to clipboard
fun endsWith(suffix: String, trim: Boolean = true): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
如果消息的结尾是 suffix
fun endsWith( suffix: String, removeSuffix: Boolean = true, trim: Boolean = true, onEvent: suspend M.(String) -> R)
Content copied to clipboard
如果消息的结尾是 suffix
Link copied to clipboard
fun finding(regex: Regex): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
消息内容可由正则表达式查找(Regex.find)
如果消息内容Regex.find 不为空
消息内容可由正则表达式查找(Regex.find), 就执行 onEvent
Link copied to clipboard
fun matching(regex: Regex): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
消息内容可由正则表达式匹配(Regex.matchEntire)
消息内容可由正则表达式匹配(Regex.matchEntire), 就执行 onEvent
Link copied to clipboard
open fun newListeningFilter(filter: M.(String) -> Boolean): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
Link copied to clipboard
fun sentBy(qq: Long): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
fun sentBy(friend: User): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
如果是这个人发的消息. 消息可以是好友消息也可以是群消息
fun sentBy(name: String): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
如果是这个人发的消息. 消息目前只会是群消息
Link copied to clipboard
fun sentByAdministrator(): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
如果是管理员发的消息
Link copied to clipboard
fun sentByFriend(): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
如果是好友发来的消息
Link copied to clipboard
fun sentByGroupTemp(): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
如果是群临时会话消息
Link copied to clipboard
fun sentByOperator(): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
如果是管理员或群主发的消息
Link copied to clipboard
fun sentByOwner(): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
如果是群主发的消息
Link copied to clipboard
fun sentByStranger(): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
如果是陌生人发来的消息
Link copied to clipboard
fun startsWith(prefix: String, trim: Boolean = true): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Content copied to clipboard
如果消息的前缀是 prefix
fun startsWith( prefix: String, removePrefix: Boolean = true, trim: Boolean = true, onEvent: suspend M.(String) -> R)
Content copied to clipboard
如果消息的前缀是 prefix
Link copied to clipboard
限制本次 select 的最长等待时间, 当超时后抛出 TimeoutCancellationException
Properties
Link copied to clipboard
val subscriber: (M.(String) -> Boolean, MessageListener<M, Any?>) -> Unit
Content copied to clipboard
invoke 这个 lambda 时, 它将会把 消息事件的处理器 注册给事件, 并返回注册完成返回的监听器.