2019-09-27 22:44:00 +08:00
|
|
|
package demo1
|
|
|
|
|
2019-10-13 20:19:54 +08:00
|
|
|
import kotlinx.coroutines.delay
|
2019-09-27 22:44:00 +08:00
|
|
|
import net.mamoe.mirai.Bot
|
|
|
|
import net.mamoe.mirai.contact.Group
|
2019-10-09 16:42:37 +08:00
|
|
|
import net.mamoe.mirai.event.events.FriendMessageEvent
|
|
|
|
import net.mamoe.mirai.event.events.GroupMessageEvent
|
2019-10-02 19:13:09 +08:00
|
|
|
import net.mamoe.mirai.event.subscribeAll
|
|
|
|
import net.mamoe.mirai.event.subscribeAlways
|
2019-10-13 20:19:54 +08:00
|
|
|
import net.mamoe.mirai.event.subscribeOnce
|
2019-10-02 19:13:09 +08:00
|
|
|
import net.mamoe.mirai.event.subscribeUntilFalse
|
2019-10-03 13:56:01 +08:00
|
|
|
import net.mamoe.mirai.login
|
2019-10-09 20:22:53 +08:00
|
|
|
import net.mamoe.mirai.message.Image
|
|
|
|
import net.mamoe.mirai.message.PlainText
|
2019-10-13 20:19:54 +08:00
|
|
|
import net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
|
2019-09-27 22:44:00 +08:00
|
|
|
import net.mamoe.mirai.utils.BotAccount
|
2019-09-29 21:58:17 +08:00
|
|
|
import net.mamoe.mirai.utils.Console
|
2019-10-03 19:32:58 +08:00
|
|
|
import net.mamoe.mirai.utils.MiraiLogger
|
|
|
|
import kotlin.system.exitProcess
|
2019-09-27 22:44:00 +08:00
|
|
|
|
2019-10-02 19:13:09 +08:00
|
|
|
suspend fun main() {
|
2019-10-07 12:44:44 +08:00
|
|
|
val bot = Bot(BotAccount(//填写你的账号
|
2019-10-13 20:19:54 +08:00
|
|
|
qqNumber = 1994701021,
|
|
|
|
password = "asdhim188666"
|
2019-09-29 21:58:17 +08:00
|
|
|
), Console())
|
2019-09-27 22:44:00 +08:00
|
|
|
|
2019-10-13 20:19:54 +08:00
|
|
|
bot.login {
|
|
|
|
touchTimeoutMillis = 2000
|
|
|
|
randomDeviceName = true
|
|
|
|
}.let {
|
|
|
|
if (it != LoginResult.SUCCESS) {
|
|
|
|
MiraiLogger.logError("Login failed: " + it.name)
|
2019-10-03 19:32:58 +08:00
|
|
|
exitProcess(0)
|
|
|
|
}
|
2019-09-27 22:44:00 +08:00
|
|
|
}
|
|
|
|
|
2019-10-02 19:13:09 +08:00
|
|
|
|
2019-10-09 17:40:39 +08:00
|
|
|
//提供泛型以监听事件
|
2019-10-13 20:19:54 +08:00
|
|
|
subscribeOnce<FriendMessageEvent> {
|
|
|
|
//获取第一个纯文本消息, 获取不到会抛出 NoSuchElementException
|
2019-10-09 20:22:53 +08:00
|
|
|
val firstText = it.message.first<PlainText>()
|
2019-09-27 22:44:00 +08:00
|
|
|
|
|
|
|
//获取第一个图片
|
2019-10-13 20:19:54 +08:00
|
|
|
val firstImage = it.message.firstOrNull<Image>()
|
2019-09-27 22:44:00 +08:00
|
|
|
|
|
|
|
when {
|
2019-09-28 00:17:52 +08:00
|
|
|
it.message eq "你好" -> it.reply("你好!")
|
2019-09-27 22:44:00 +08:00
|
|
|
|
2019-09-28 00:11:59 +08:00
|
|
|
"复读" in it.message -> it.sender.sendMessage(it.message)
|
2019-09-27 22:44:00 +08:00
|
|
|
|
|
|
|
"发群" in it.message -> {
|
2019-10-14 14:19:45 +08:00
|
|
|
|
2019-09-27 22:44:00 +08:00
|
|
|
}
|
|
|
|
|
2019-10-13 20:19:54 +08:00
|
|
|
/*it.event eq "发图片群" -> sendGroupMessage(Group(session.bot, 580266363), PlainText("test") + UnsolvedImage(File("C:\\Users\\Him18\\Desktop\\faceImage_1559564477775.jpg")).also { image ->
|
2019-09-30 03:08:29 +08:00
|
|
|
image.upload(session, Group(session.bot, 580266363)).of()
|
2019-09-27 22:44:00 +08:00
|
|
|
})*/
|
|
|
|
|
|
|
|
it.message eq "发图片群2" -> Group(bot, 580266363).sendMessage(Image("{7AA4B3AA-8C3C-0F45-2D9B-7F302A0ACEAA}.jpg"))
|
|
|
|
|
2019-10-13 20:19:54 +08:00
|
|
|
/* it.event eq "发图片" -> sendFriendMessage(it.sender, PlainText("test") + UnsolvedImage(File("C:\\Users\\Him18\\Desktop\\faceImage_1559564477775.jpg")).also { image ->
|
2019-09-30 03:08:29 +08:00
|
|
|
image.upload(session, it.sender).of()
|
2019-09-27 22:44:00 +08:00
|
|
|
})*/
|
2019-09-28 00:11:59 +08:00
|
|
|
it.message eq "发图片2" -> it.reply(PlainText("test") + Image("{7AA4B3AA-8C3C-0F45-2D9B-7F302A0ACEAA}.jpg"))
|
2019-09-27 22:44:00 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-10-09 17:40:39 +08:00
|
|
|
//通过 KClass 扩展方式监听事件
|
2019-10-02 19:13:09 +08:00
|
|
|
GroupMessageEvent::class.subscribeAlways {
|
2019-09-27 22:44:00 +08:00
|
|
|
when {
|
2019-09-28 00:11:59 +08:00
|
|
|
it.message.contains("复读") -> it.reply(it.message)
|
2019-09-27 22:44:00 +08:00
|
|
|
}
|
|
|
|
}
|
2019-10-09 17:40:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
//DSL 监听
|
|
|
|
FriendMessageEvent::class.subscribeAll {
|
|
|
|
always {
|
|
|
|
//获取第一个纯文本消息
|
2019-10-09 20:22:53 +08:00
|
|
|
val firstText = it.message.first<PlainText>()
|
2019-10-09 17:40:39 +08:00
|
|
|
|
|
|
|
}
|
|
|
|
}
|
2019-10-13 20:19:54 +08:00
|
|
|
|
|
|
|
//由于使用的是协程, main函数执行完后就会结束程序.
|
|
|
|
delay(Long.MAX_VALUE)//永远等待, 以测试事件
|
2019-10-02 19:13:09 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 实现功能:
|
|
|
|
* 对机器人说 "记笔记", 机器人记录之后的所有消息.
|
|
|
|
* 对机器人说 "停止", 机器人停止
|
|
|
|
*/
|
|
|
|
fun demo2() {
|
2019-10-09 17:40:39 +08:00
|
|
|
subscribeAlways<FriendMessageEvent> { event ->
|
2019-10-02 19:13:09 +08:00
|
|
|
if (event.message eq "记笔记") {
|
2019-10-09 17:40:39 +08:00
|
|
|
FriendMessageEvent::class.subscribeUntilFalse {
|
2019-10-02 19:13:09 +08:00
|
|
|
it.reply("你发送了 ${it.message}")
|
|
|
|
|
|
|
|
it.message eq "停止"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-09-27 22:44:00 +08:00
|
|
|
}
|