随心玩玩(三)Mirai框架QQ机器人

语言是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任务配置

查看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())
            }
        }

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

4. 后续进阶

查阅相关API完成功能

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

  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值