Main.kt 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package demo1
  2. import net.mamoe.mirai.Bot
  3. import net.mamoe.mirai.contact.Group
  4. import net.mamoe.mirai.event.events.group.GroupMessageEvent
  5. import net.mamoe.mirai.event.events.qq.FriendMessageEvent
  6. import net.mamoe.mirai.event.subscribeAll
  7. import net.mamoe.mirai.event.subscribeAlways
  8. import net.mamoe.mirai.event.subscribeUntilFalse
  9. import net.mamoe.mirai.login
  10. import net.mamoe.mirai.message.defaults.Image
  11. import net.mamoe.mirai.message.defaults.PlainText
  12. import net.mamoe.mirai.network.protocol.tim.packet.login.LoginState
  13. import net.mamoe.mirai.utils.BotAccount
  14. import net.mamoe.mirai.utils.Console
  15. /**
  16. * @author Him188moe
  17. */
  18. suspend fun main() {
  19. val bot = Bot(BotAccount(
  20. qqNumber = 1683921395,
  21. password = "bb22222"
  22. ), Console())
  23. bot.login().let {
  24. check(it == LoginState.SUCCESS) { "Login failed: " + it.name }
  25. }
  26. //DSL 监听
  27. FriendMessageEvent.subscribeAll {
  28. always {
  29. //获取第一个纯文本消息
  30. val firstText = it.message[PlainText]
  31. }
  32. }
  33. //监听事件:
  34. FriendMessageEvent.subscribeAlways {
  35. //获取第一个纯文本消息
  36. val firstText = it.message[PlainText]
  37. //获取第一个图片
  38. val firstImage = it.message[Image]
  39. when {
  40. it.message eq "你好" -> it.reply("你好!")
  41. "复读" in it.message -> it.sender.sendMessage(it.message)
  42. "发群" in it.message -> {
  43. it.message.list.toMutableList().let { messages ->
  44. messages.removeAt(0)
  45. Group(bot, 580266363).sendMessage(messages)
  46. }
  47. }
  48. /*it.message eq "发图片群" -> sendGroupMessage(Group(session.bot, 580266363), PlainText("test") + UnsolvedImage(File("C:\\Users\\Him18\\Desktop\\faceImage_1559564477775.jpg")).also { image ->
  49. image.upload(session, Group(session.bot, 580266363)).of()
  50. })*/
  51. it.message eq "发图片群2" -> Group(bot, 580266363).sendMessage(Image("{7AA4B3AA-8C3C-0F45-2D9B-7F302A0ACEAA}.jpg"))
  52. /* it.message eq "发图片" -> sendFriendMessage(it.sender, PlainText("test") + UnsolvedImage(File("C:\\Users\\Him18\\Desktop\\faceImage_1559564477775.jpg")).also { image ->
  53. image.upload(session, it.sender).of()
  54. })*/
  55. it.message eq "发图片2" -> it.reply(PlainText("test") + Image("{7AA4B3AA-8C3C-0F45-2D9B-7F302A0ACEAA}.jpg"))
  56. }
  57. }
  58. GroupMessageEvent::class.subscribeAlways {
  59. when {
  60. it.message.contains("复读") -> it.reply(it.message)
  61. }
  62. }
  63. }
  64. /**
  65. * 实现功能:
  66. * 对机器人说 "记笔记", 机器人记录之后的所有消息.
  67. * 对机器人说 "停止", 机器人停止
  68. */
  69. fun demo2() {
  70. FriendMessageEvent.subscribeAlways { event ->
  71. if (event.message eq "记笔记") {
  72. FriendMessageEvent.subscribeUntilFalse {
  73. it.reply("你发送了 ${it.message}")
  74. it.message eq "停止"
  75. }
  76. }
  77. }
  78. }