MessageSelectBuilderUnit

selectMessagesUnitselectMessages 时的 DSL 构建器.

它是特殊化的消息监听 (EventChannel.subscribeMessages) DSL

See also

Inheritors

selectMessagesUnitselectMessages 时的 DSL 构建器.

它是特殊化的消息监听 (EventChannel.subscribeMessages) DSL

See also

Functions

Link copied to clipboard
Link copied to clipboard

消息内容包含目标为 BotAt

fun atBot(onEvent: suspend M.(String) -> R)

消息内容包含目标为 BotAt, 就执行 onEvent

消息内容包含目标为 BotAt

fun atBot(onEvent: suspend M.(String) -> R)

消息内容包含目标为 BotAt, 就执行 onEvent

Link copied to clipboard
fun case(equals: String, ignoreCase: Boolean = false, trim: Boolean = true): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
fun case(equals: String, ignoreCase: Boolean = false, trim: Boolean = true, onEvent: MessageListener<M, R>)
fun case(equals: String, ignoreCase: Boolean = false, trim: Boolean = true): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
fun case(equals: String, ignoreCase: Boolean = false, trim: Boolean = true, onEvent: MessageListener<M, R>)
Link copied to clipboard
fun contains(sub: String, ignoreCase: Boolean = false, trim: Boolean = true, onEvent: MessageListener<M, R>)

消息内容包含 sub 中的任意一个元素

fun contains(sub: String, ignoreCase: Boolean = false, trim: Boolean = true, onEvent: MessageListener<M, R>)

消息内容包含 sub 中的任意一个元素

Link copied to clipboard
fun containsAll(vararg sub: String, ignoreCase: Boolean = false, trim: Boolean = true): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
fun containsAll(vararg sub: String, ignoreCase: Boolean = false, trim: Boolean = true): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Link copied to clipboard
fun containsAny(vararg sub: String, ignoreCase: Boolean = false, trim: Boolean = true): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
fun containsAny(vararg sub: String, ignoreCase: Boolean = false, trim: Boolean = true): MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>
Link copied to clipboard
open infix fun String.containsReply(reply: String)

消息内容包含 this 则回复 reply

open infix fun String.containsReply(replier: suspend M.(String) -> Any?)

消息内容包含 this 则执行 replier 并将其返回值回复给发信对象.

open infix fun String.containsReply(reply: String)

消息内容包含 this 则回复 reply

open infix fun String.containsReply(replier: suspend M.(String) -> Any?)

消息内容包含 this 则执行 replier 并将其返回值回复给发信对象.

Link copied to clipboard
Link copied to clipboard
abstract fun default(onEvent: MessageListener<M, R>)

当其他条件都不满足时的默认处理.

abstract fun default(onEvent: MessageListener<M, R>)

当其他条件都不满足时的默认处理.

Link copied to clipboard
fun defaultQuoteReply(block: suspend () -> Any?)

当其他条件都不满足时引用回复原消息.

fun defaultQuoteReply(block: suspend () -> Any?)

当其他条件都不满足时引用回复原消息.

Link copied to clipboard
fun defaultReply(block: suspend () -> Any?)

当其他条件都不满足时回复原消息.

fun defaultReply(block: suspend () -> Any?)

当其他条件都不满足时回复原消息.

Link copied to clipboard

如果消息的结尾是 suffix

fun endsWith(suffix: String, removeSuffix: Boolean = true, trim: Boolean = true, onEvent: suspend M.(String) -> R)

如果消息的结尾是 suffix

如果消息的结尾是 suffix

fun endsWith(suffix: String, removeSuffix: Boolean = true, trim: Boolean = true, onEvent: suspend M.(String) -> R)

如果消息的结尾是 suffix

Link copied to clipboard
open infix fun String.endsWithReply(replier: suspend M.(String) -> Any?)

不考虑空格, 消息内容this 结尾则执行 replier 并将其返回值回复给发信对象.

open infix fun String.endsWithReply(replier: suspend M.(String) -> Any?)

不考虑空格, 消息内容this 结尾则执行 replier 并将其返回值回复给发信对象.

Link copied to clipboard

消息内容可由正则表达式查找(Regex.find)

fun finding(regex: Regex, onEvent: suspend M.(MatchResult) -> Unit)

消息内容可由正则表达式查找(Regex.find), 就执行 onEvent

消息内容可由正则表达式查找(Regex.find)

fun finding(regex: Regex, onEvent: suspend M.(MatchResult) -> Unit)

消息内容可由正则表达式查找(Regex.find), 就执行 onEvent

Link copied to clipboard
@JvmName(name = "findingExtension")
infix fun Regex.finding(block: suspend M.(MatchResult) -> R)

如果消息内容 Regex.find 不为空

@JvmName(name = "findingExtension")
infix fun Regex.finding(block: suspend M.(MatchResult) -> R)

如果消息内容 Regex.find 不为空

Link copied to clipboard
open infix fun Regex.findingReply(replier: suspend M.(MatchResult) -> Any?)

消息内容可由正则表达式查找(Regex.find), 则执行 replier 并将其返回值回复给发信对象.

open infix fun Regex.findingReply(replier: suspend M.(MatchResult) -> Any?)

消息内容可由正则表达式查找(Regex.find), 则执行 replier 并将其返回值回复给发信对象.

Link copied to clipboard

消息内容包含 N 类型的 Message

inline fun <N : SingleMessage> has(noinline onEvent: suspend M.(N) -> R)

消息内容包含 N 类型的 Message

inline fun <N : SingleMessage> has(noinline onEvent: suspend M.(N) -> R)
Link copied to clipboard
fun MessageSelectionTimeoutChecker.invoke(block: suspend () -> R)

返回一个限制本次 select 的最长等待时间的 Deferred

operator fun String.invoke(block: MessageListener<M, R>)
fun MessageSelectionTimeoutChecker.invoke(block: suspend () -> R)

返回一个限制本次 select 的最长等待时间的 Deferred

operator fun String.invoke(block: MessageListener<M, R>)
Link copied to clipboard
open fun <N : Any> mapping(mapper: M.(String) -> N?, onEvent: suspend M.(N) -> R)

如果 mapper 返回值非空, 就执行 onEvent

open fun <N : Any> mapping(mapper: M.(String) -> N?, onEvent: suspend M.(N) -> R)

如果 mapper 返回值非空, 就执行 onEvent

Link copied to clipboard

消息内容可由正则表达式匹配(Regex.matchEntire)

fun matching(regex: Regex, onEvent: suspend M.(MatchResult) -> Unit)

消息内容可由正则表达式匹配(Regex.matchEntire), 就执行 onEvent

消息内容可由正则表达式匹配(Regex.matchEntire)

fun matching(regex: Regex, onEvent: suspend M.(MatchResult) -> Unit)

消息内容可由正则表达式匹配(Regex.matchEntire), 就执行 onEvent

Link copied to clipboard
@JvmName(name = "matchingExtension")
infix fun Regex.matching(block: MessageListener<M, R>)
@JvmName(name = "matchingExtension")
infix fun Regex.matching(block: MessageListener<M, R>)
Link copied to clipboard
open infix fun Regex.matchingReply(replier: suspend M.(MatchResult) -> Any?)

消息内容可由正则表达式匹配(Regex.matchEntire), 则执行 replier 并将其返回值回复给发信对象.

open infix fun Regex.matchingReply(replier: suspend M.(MatchResult) -> Any?)

消息内容可由正则表达式匹配(Regex.matchEntire), 则执行 replier 并将其返回值回复给发信对象.

Link copied to clipboard

open infix fun MessageSelectionTimeoutChecker.quoteReply(block: suspend () -> Any?)

在超时后引用回复原消息

启动监听器, 在 Bot 未被禁言且消息满足条件 this 时引用回复原消息

open infix fun MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>.quoteReply(replier: suspend M.(String) -> Any?)

启动监听器, 在 Bot 未被禁言且消息满足条件 this 时执行 replier 并以其返回值回复原消息 返回值 Unit 将被忽略, Message 将被直接回复, 其他内容将会 Any.toString 后发送


open infix fun MessageSelectionTimeoutChecker.quoteReply(block: suspend () -> Any?)

在超时后引用回复原消息

启动监听器, 在 Bot 未被禁言且消息满足条件 this 时引用回复原消息

open infix fun MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>.quoteReply(replier: suspend M.(String) -> Any?)

启动监听器, 在 Bot 未被禁言且消息满足条件 this 时执行 replier 并以其返回值回复原消息 返回值 Unit 将被忽略, Message 将被直接回复, 其他内容将会 Any.toString 后发送

Link copied to clipboard

open infix fun MessageSelectionTimeoutChecker.reply(block: suspend () -> Any?)

在超时后回复原消息

open infix fun String.reply(reply: String)
open infix fun String.reply(reply: Message)

当发送的消息内容为 this 就回复 reply

open infix fun String.reply(replier: suspend M.(String) -> Any?)

当发送的消息内容为 this 就执行并回复 replier 的返回值

启动监听器, 在 Bot 未被禁言且消息满足条件 this 时回复原消息

open infix fun MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>.reply(replier: suspend M.(String) -> Any?)

启动监听器, 在 Bot 未被禁言且消息满足条件 this 时执行 replier 并以其返回值回复. 返回值 Unit 将被忽略, Message 将被直接回复, 其他内容将会 Any.toString 后发送.


open infix fun MessageSelectionTimeoutChecker.reply(block: suspend () -> Any?)

在超时后回复原消息

open infix fun String.reply(reply: String)

当发送的消息内容为 this 就回复 reply

open infix fun String.reply(replier: suspend M.(String) -> Any?)

当发送的消息内容为 this 就执行并回复 replier 的返回值

open infix fun String.reply(reply: Message)

当发送的消息内容为 this 就回复 reply

启动监听器, 在 Bot 未被禁言且消息满足条件 this 时回复原消息

open infix fun MessageSubscribersBuilder.ListeningFilter<M, Unit, R, Any?>.reply(replier: suspend M.(String) -> Any?)

启动监听器, 在 Bot 未被禁言且消息满足条件 this 时执行 replier 并以其返回值回复. 返回值 Unit 将被忽略, Message 将被直接回复, 其他内容将会 Any.toString 后发送.

Link copied to clipboard
fun sentBy(qq: Long, onEvent: MessageListener<M, R>)

如果是这个人发的消息. 消息可以是好友消息也可以是群消息

如果是这个人发的消息. 消息目前只会是群消息

fun sentBy(qq: Long, onEvent: MessageListener<M, R>)

如果是这个人发的消息. 消息可以是好友消息也可以是群消息

如果是这个人发的消息. 消息目前只会是群消息

Link copied to clipboard

如果是管理员发的消息

如果是管理员发的消息

Link copied to clipboard
Link copied to clipboard

如果是群临时会话消息

如果是群临时会话消息

Link copied to clipboard

如果是管理员或群主发的消息

如果是管理员或群主发的消息

Link copied to clipboard

如果是群主发的消息

如果是群主发的消息

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

如果消息的前缀是 prefix

fun startsWith(prefix: String, removePrefix: Boolean = true, trim: Boolean = true, onEvent: suspend M.(String) -> R)

如果消息的前缀是 prefix

如果消息的前缀是 prefix

fun startsWith(prefix: String, removePrefix: Boolean = true, trim: Boolean = true, onEvent: suspend M.(String) -> R)

如果消息的前缀是 prefix

Link copied to clipboard

返回一个限制本次 select 的最长等待时间的 Deferred

fun timeout(timeoutMillis: Long, block: suspend () -> R)

限制本次 select 的最长等待时间, 当超时后执行 block 以完成 select

返回一个限制本次 select 的最长等待时间的 Deferred

fun timeout(timeoutMillis: Long, block: suspend () -> R)

限制本次 select 的最长等待时间, 当超时后执行 block 以完成 select

Link copied to clipboard
fun timeoutException(timeoutMillis: Long, exception: () -> Throwable)

限制本次 select 的最长等待时间, 当超时后抛出 TimeoutCancellationException

fun timeoutException(timeoutMillis: Long, exception: () -> Throwable)

限制本次 select 的最长等待时间, 当超时后抛出 TimeoutCancellationException

Properties

Link copied to clipboard

invoke 这个 lambda 时, 它将会把 消息事件的处理器 注册给事件, 并返回注册完成返回的监听器.

invoke 这个 lambda 时, 它将会把 消息事件的处理器 注册给事件, 并返回注册完成返回的监听器.