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

MessageSelectBuilder

@SinceMirai("0.29.0") abstract class MessageSelectBuilder<M : ContactMessage, R> : MessageSelectBuilderUnit<M, R>

selectMessages 时的 DSL 构建器.

它是特殊化的消息监听 (subscribeMessages) DSL, 屏蔽了一些 reply DSL 以确保作用域安全性

See Also

MessageSelectBuilderUnit

Functions

->

open infix fun MessageSelectionTimeoutChecker.->(message: String): Nothing
open infix fun MessageSelectionTimeoutChecker.->(message: Message): Nothing

启动这个监听器, 在满足条件时回复原消息

open fun ListeningFilter<M, Unit, R, Any?>.->(toReply: String): Nothing
open fun ListeningFilter<M, Unit, R, Any?>.->(message: Message): Nothing

always

无任何触发条件, 每次收到消息都执行 onEvent

open fun always(onEvent: MessageListener<M, Any?>): Nothing

containsReply

消息内容包含 this 则回复 reply

open fun String.containsReply(reply: String): Nothing

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

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

endsWithReply

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

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

findingReply

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

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

mapping

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

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

matchingReply

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

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

quoteReply

在超时后引用回复原消息

open infix fun MessageSelectionTimeoutChecker.quoteReply(block: suspend () -> Any?): Nothingopen infix fun MessageSelectionTimeoutChecker.quoteReply(message: String): Nothing
open infix fun MessageSelectionTimeoutChecker.quoteReply(message: Message): Nothing

启动这个监听器, 在满足条件时引用回复原消息

open fun ListeningFilter<M, Unit, R, Any?>.quoteReply(toReply: String): Nothing
open fun ListeningFilter<M, Unit, R, Any?>.quoteReply(toReply: Message): Nothing

启动这个监听器, 在满足条件时执行 replier 并引用回复原消息

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

reply

在超时后回复原消息

open infix fun MessageSelectionTimeoutChecker.reply(block: suspend () -> Any?): Nothingopen infix fun MessageSelectionTimeoutChecker.reply(message: String): Nothing
open infix fun MessageSelectionTimeoutChecker.reply(message: Message): Nothing

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

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

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

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

启动这个监听器, 在满足条件时回复原消息

open fun ListeningFilter<M, Unit, R, Any?>.reply(toReply: String): Nothing
open fun ListeningFilter<M, Unit, R, Any?>.reply(message: Message): Nothing
open fun ListeningFilter<M, Unit, R, Any?>.reply(replier: suspend M.(String) -> Any?): Nothing

startsWithReply

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

open fun String.startsWithReply(replier: suspend M.(String) -> Any?): Nothing