Add more examples

This commit is contained in:
Him188 2020-02-13 09:54:11 +08:00
parent e2136b5c40
commit d78f8fc092

View File

@ -11,6 +11,7 @@
package demo.subscribe package demo.subscribe
import kotlinx.coroutines.CompletableJob
import net.mamoe.mirai.Bot import net.mamoe.mirai.Bot
import net.mamoe.mirai.BotAccount import net.mamoe.mirai.BotAccount
import net.mamoe.mirai.alsoLogin import net.mamoe.mirai.alsoLogin
@ -19,6 +20,7 @@ import net.mamoe.mirai.contact.sendMessage
import net.mamoe.mirai.event.* import net.mamoe.mirai.event.*
import net.mamoe.mirai.message.FriendMessage import net.mamoe.mirai.message.FriendMessage
import net.mamoe.mirai.message.GroupMessage import net.mamoe.mirai.message.GroupMessage
import net.mamoe.mirai.message.data.AtAll
import net.mamoe.mirai.message.data.Image import net.mamoe.mirai.message.data.Image
import net.mamoe.mirai.message.data.PlainText import net.mamoe.mirai.message.data.PlainText
import net.mamoe.mirai.message.data.firstOrNull import net.mamoe.mirai.message.data.firstOrNull
@ -97,7 +99,7 @@ fun Bot.messageDSL() {
// it: String (MessageChain.toString) // it: String (MessageChain.toString)
message[Image].download() // message[Image].download() // 还未支持 download
if (this is GroupMessage) { if (this is GroupMessage) {
//如果是群消息 //如果是群消息
// group: Group // group: Group
@ -119,6 +121,7 @@ fun Bot.messageDSL() {
// 当收到 "我的qq" 就执行 lambda 并回复 lambda 的返回值 String // 当收到 "我的qq" 就执行 lambda 并回复 lambda 的返回值 String
"我的qq" reply { sender.id } "我的qq" reply { sender.id }
"at all" reply AtAll // at 全体成员
// 如果是这个 QQ 号发送的消息(可以是好友消息也可以是群消息) // 如果是这个 QQ 号发送的消息(可以是好友消息也可以是群消息)
sentBy(123456789) { sentBy(123456789) {
@ -134,12 +137,27 @@ fun Bot.messageDSL() {
} }
// 当消息中包含 "复读" 时 // listener 管理
val listener = (contains("复读1") or contains("复读2")) {
reply(message) var repeaterListener: CompletableJob? = null
contains("开启复读") {
repeaterListener?.complete()
bot.subscribeGroupMessages {
repeaterListener = contains("复读") {
reply(message)
}
}
}
contains("关闭复读") {
if (repeaterListener?.complete() == null) {
reply("没有开启复读")
} else {
reply("成功关闭复读")
}
} }
listener.complete() // 停止监听
// 自定义的 filter, filter 中 it 为转为 String 的消息. // 自定义的 filter, filter 中 it 为转为 String 的消息.
// 也可以用任何能在处理时使用的变量, 如 subject, sender, message // 也可以用任何能在处理时使用的变量, 如 subject, sender, message