当前位置:   article > 正文

随心玩玩(三)Mirai框架QQ机器人_mirai属于机器人架构吗

mirai属于机器人架构吗

语言是Kotlin,其实什么语言并不重要,会调用API就够了



1. 什么是Mirai框架

mirai 是一个在全平台下运行,提供 QQ Android 协议支持的高效率机器人库.

这个项目的名字来源于:

京都动画作品《境界的彼方》的栗山未来(Kuriyama mirai)

CRYPTON以初音未来为代表的创作与活动(Magical mirai)

图标以及形象由画师DazeCake绘制

可以看出这个项目的upper是个老二刺螈了(笑)

项目地址:https://github.com/mamoe/mirai

这个项目用的语言是Kotlin。

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。

Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。

Kotlin大概长什么样子?截个图吧,反正都是高级语言,会调接口就行了。
在这里插入图片描述

2. 创建项目

github上下载,然后用IDE打开mirai_kotlin_example文件夹就好了

https://github.com/Nambers/mirai_kotlin_example

用mirai_kotlin_example - 新版框架

IDEA打开项目进去要下载gradle(Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。)
在这里插入图片描述
不出意外是下载失败的。
在这里插入图片描述

网不好怎么办,那就手动下载啊,下载地址:https://services.gradle.org/distributions ,访问这个地址就可以选择你需要下载的版本了。

我下的6.7.1-all.zip
在这里插入图片描述
打开项目里面的 gradle 目录,下面有个 wrapper 文件夹,里面有个 gradle-wrapper.properties 文件,打开这个文件就可以看到需要下载的 gradle 版本及下载地址了,如果我们本地有其他版本的 gradle,可以修改这里的版本号和本地一致,这时候再刷新 build 就可以不用下载了。

在这里插入图片描述
默认 gradle 文件的存放在当前用户目录下面的一个叫 .gradle 文件夹里面,因为文件夹前面是点(.)开头的,所以是隐藏文件,一般找不到。

在这里插入图片描述

在 Idea 开始下载对应版本的 gradle 的时候,会在你设定的 gradle-home 目录下生成一系列文件夹及文件,我们可以找到对应的 dist 文件夹下面的随机目录文件夹。
在这里插入图片描述

然后里面有 Idea 生成的 *.lck 和 *.part 文件。
在这里插入图片描述

我们需要将我们自己下载好的 *.zip 压缩包复制到此目录中并解压。
在这里插入图片描述
然后改个名字,把6.7.1改成6.7改成一致
在这里插入图片描述

然后到 Idea 项目中刷新 gradle 构建即可。
在这里插入图片描述
然后又是欢乐的下载超时。

下载文件还是超时

Could not resolve org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.20.
Required by:
project : > org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.4.20
Could not resolve org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.20.
Could not get resource ‘https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.4.20/kotlin-gradle-plugin-1.4.20.pom’.
Could not HEAD ‘https://plugins-artifacts.gradle.org/org.jetbrains.kotlin/kotlin-gradle-plugin/1.4.20/f79af7dcff9a5609171a4e5704577ac99403c62f67e5fba358277a8f83bbd38f/kotlin-gradle-plugin-1.4.20.pom’.
Connect to plugins-artifacts.gradle.org:443 [plugins-artifacts.gradle.org/104.18.190.9, plugins-artifacts.gradle.org/104.18.191.9] failed: Read timed out

经过十分漫长的等待后终于下完gradle-plugin还有一大堆kotlin库
在这里插入图片描述

项目文件结构

│  build.gradle.kts gradle依赖列表
│  settings.gradle.kts gradle设置
│
├─.gradle gradle缓存目录
├─.idea idea项目配置缓存位置
├─.run
│      RunMiraiKt.run.xml IDE中运行任务配置,即RunMiraiKt源文件
│
├─gradle grdle文件
│
├─run RunMiraiKt默认运行目录
│
└─src
    ├─main
    │  ├─kotlin
    │  │      PluginMain.kt 插件主类
    │  │
    │  └─resources
    │      │  plugin.yml 插件信息配置
    │
    └─test
        └─kotlin
                RunMirai.kt RunMiraiKt任务配置
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

查看PluginMain文件

我们需要了Kotlin解基础语法

因为我没有学过Kotlin只能 大致推测意思

import是导包

object PluginMain : KotlinPlugin应该是创建对象。这有点像java匿名类,创建了一个匿名类继承PluginMain类并重写了onEnable方法。

: KotlinPlugin不知道啥意思。

查阅资料后,:kotlinPlugin表示继承,JvmPluginDescription指声明插件消息和版本

然后是API,subscribeAlways<>{}表示开启监听
在这里插入图片描述
大致了解的差不多了。

3. Hello Mirai

把/src/test/kotlin/RunMirai.kt中的qq号和密码改成你自己的

运行,如果报错Error running ‘RunMiraiKt’:
在这里插入图片描述
在根目录下没有run文件夹,新建一个就好了

运行结果:
在这里插入图片描述
根据它的提示完成手机验证,完成登陆

在这里插入图片描述

然后我们就可以愉快的调戏自己的机器人了
在这里插入图片描述
后台显示
在这里插入图片描述

照猫画狗就可以自定义功能了。

比如我想添加一个骰子功能

给我一个1到100的随机数

globalEventChannel().subscribeAlways<FriendMessageEvent>{
            //好友信息
            //sender.sendMessage("hi")
            if (message.contentToString().startsWith(".r")) {
                val randoms = (1..100).random()
                sender.sendMessage(randoms.toString())
            }
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

去测试一下
在这里插入图片描述
搞定~ 收工

4. 后续进阶

查阅相关API完成功能

监听和事件参考文档
https://github.com/mamoe/mirai/blob/dev/docs/Events.md

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/524151
推荐阅读
相关标签
  

闽ICP备14008679号