赞
踩
语言是Kotlin,其实什么语言并不重要,会调用API就够了
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大概长什么样子?截个图吧,反正都是高级语言,会调接口就行了。
从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<>{}表示开启监听
大致了解的差不多了。
把/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())
}
}
去测试一下
搞定~ 收工
查阅相关API完成功能
监听和事件参考文档
https://github.com/mamoe/mirai/blob/dev/docs/Events.md
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。