mirai/mirai-demos/mirai-demo-1/src/main/java/demo1/Main.kt

102 lines
3.2 KiB
Kotlin
Raw Normal View History

2019-09-27 22:44:00 +08:00
package demo1
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
import net.mamoe.mirai.event.subscribeUntilFalse
2019-10-03 13:56:01 +08:00
import net.mamoe.mirai.login
2019-09-27 22:44:00 +08:00
import net.mamoe.mirai.message.defaults.Image
import net.mamoe.mirai.message.defaults.PlainText
2019-09-30 03:08:29 +08:00
import net.mamoe.mirai.network.protocol.tim.packet.login.LoginState
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
/**
* @author Him188moe
*/
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-07 13:11:28 +08:00
qqNumber = 1994701121,
2019-10-07 12:44:44 +08:00
password = "xiaoqqq"
2019-09-29 21:58:17 +08:00
), Console())
2019-09-27 22:44:00 +08:00
2019-10-03 19:07:03 +08:00
bot.login().let {
2019-10-03 19:32:58 +08:00
if(it != LoginState.SUCCESS) {
MiraiLogger.error("Login failed: " + it.name)
exitProcess(0)
}
2019-09-27 22:44:00 +08:00
}
2019-10-02 19:13:09 +08:00
//DSL 监听
FriendMessageEvent.subscribeAll {
always {
//获取第一个纯文本消息
val firstText = it.message[PlainText]
}
}
2019-09-27 22:44:00 +08:00
//监听事件:
2019-10-02 19:13:09 +08:00
FriendMessageEvent.subscribeAlways {
2019-09-27 22:44:00 +08:00
//获取第一个纯文本消息
val firstText = it.message[PlainText]
//获取第一个图片
val firstImage = it.message[Image]
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-09-28 00:11:59 +08:00
it.message.list.toMutableList().let { messages ->
2019-09-27 22:44:00 +08:00
messages.removeAt(0)
Group(bot, 580266363).sendMessage(messages)
}
}
/*it.message 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"))
/* it.message 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-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-02 19:13:09 +08:00
}
/**
* 实现功能:
* 对机器人说 "记笔记", 机器人记录之后的所有消息.
* 对机器人说 "停止", 机器人停止
*/
fun demo2() {
FriendMessageEvent.subscribeAlways { event ->
if (event.message eq "记笔记") {
FriendMessageEvent.subscribeUntilFalse {
it.reply("你发送了 ${it.message}")
it.message eq "停止"
}
}
}
2019-09-27 22:44:00 +08:00
}