我是靠谱客的博主 难过大树,最近开发中收集的这篇文章主要介绍(超详细)mirai机器人(Java)0、github地址1、安装idea2、安装mirai插件3、创建你的第一个插件5、让机器人“动”起来,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文适用1.x版本。目前已过时
2.0.0版本:https://blog.csdn.net/Ghasta/article/details/112762037

用Java编写一个mirai机器人

  • 0、github地址
  • 1、安装idea
  • 2、安装mirai插件
  • 3、创建你的第一个插件
    • 3.1 新建Mirai项目
    • 3.2 导入gradle(写给没用过的人)
    • 3.3 修改配置文件
    • 3.4 开始写代码
    • 3.5 把插件打包
  • 5、让机器人“动”起来

注意:本文可能只适用于Windows平台,并且使用Java作为编程语言。
另外如果你要问什么是Mirai机器人。。。你猜呢

0、github地址

地址在这Mirai,有 (完全不详细的) 官方文档,可以自行阅读

1、安装idea

自己百度去,要求版本2020.1及以前,高版本不支持
本文使用的版本是2020.1

2、安装mirai插件

在IDEA中按快捷键ctrl+alt+s或者点击File->Setting
在侧边栏里找到Plugins,然后在Marketplace里面搜索Mirai和Kotlin安装
如果搜索不到的话,这里有两个插件的下载github,下载好的jar直接拖到idea里,安装完重启idea即可。
如果安装好但是没有启用插件的话,还是打开Plugins,在installed里找到对应插件打勾然后apply在这里插入图片描述

3、创建你的第一个插件

3.1 新建Mirai项目

选择File->New->Project
在左侧选择Mirai Console Plugin
插件名称、开发者姓名、主类名看着改改就行(不要填中文)
语言请选择Java,然后点击next
在这里插入图片描述

groupid和artifactid没啥用,都填0001好了
包管理器选择gradle,后面选择Groovy DSL
在这里插入图片描述
最后项目名随便填,反正不填中文就不会有问题。

3.2 导入gradle(写给没用过的人)

在这里插入图片描述新建完项目,右下角会有弹窗让你导入gradle,点击import gradle project等待进度条走完。
如果gradle wrapper下载速度太慢,先终止build,去gradle手动下载对应的版本,然后找到C:/Users/你自己的用户名/.gradle/wrapper/dists,打开对应的文件夹(这个文件夹是idea自动创建的),然后打开那个名字乱七八糟(名字是随机生成的,肯定跟我不一样)的文件夹,把里面的东西删掉,把下载的zip扔里面,重新build。
在这里插入图片描述

如果是依赖库下载速度太慢,参见https://blog.csdn.net/weixin_38610651/article/details/97930969

3.3 修改配置文件

现在假设你已经成功的完成了build,如图:
在这里插入图片描述
但是现在还不能开始写代码(Mirai用起来是真麻烦)
在左侧展开项目内容,找到build.gradle,把miraiConsoleVersion改成0.5.2,这是因为最新版还在开发,缺少很多东西。
然后顺手把qqandroid的依赖给注释掉(因为用不到)
然后点击长得像刷新的按钮重新build(点哪个都行)
在这里插入图片描述

3.4 开始写代码

好啦,现在终于可以开始写插件了,找到src/main/java/com.example.plugin(你的包名)/ExamplePluginMain(主类名)
里面应该有自动写好的代码,而且有一大片error,不要慌张,直接全删了就行。
我会教你从头开始写起。
总之先全都删掉,只剩下

package com.example.plugin;

import net.mamoe.mirai.console.plugins.PluginBase;

class ExamplePluginMain extends PluginBase {

    public void onLoad() {

    }

    public void onEnable() {

    }

} 

就好了,当然记得把里面的包名和类名换成你自己的。

这里面有onLoad()和onEnable()两个方法,Mirai的插件加载过程是,先把所有插件load一遍,然后再enable,因为插件之间可以有相互依赖关系(不过我还没学会插件相互依赖的用法,如果有人会的话希望能教教我)。
一般来说呢,就是在onload()方法里初始化一些变量,然后onEnable()里面再写具体插件要做的事。
现在我们写一个插件,插件内容是:当机器人的好友给他发消息时,回一个“喵”
首先添加一个接受消息的侦听器。

this.getEventListener().subscribeAlways(FriendMessageEvent.class, (FriendMessageEvent event) -> {
//干好事
});

这里面this.getEventListener().subscribeAlways()即添加一个事件侦听器,并且是“always”侦听的。

subscribeAlways()方法的两个参数分别是一个类型,即你要监听的事件类型;另一个参数是一个lambda函数,为监听到该事件时运行的函数,并且传递了参数event。

可以监听的事件类型有很多,你在idea里输个Event,就会有各种相关的事件,也有比较详细的说明,可以自己看说明挑选使用。
对于接受到消息的事件,都是MessageEvent类,并且该类有若干子类:FriendMessageEvent(好友消息),GroupMessageEvent(群消息),TempMessageEvent(临时会话消息)等。第一个参数用MessageEvent.class,将接受所有来源的消息,如果用FriendMessageEvent.class,则只接收好友消息,其他两个同理。

后面的lambda函数呢,就是你要写具体功能的地方了。该函数里接受了一个event参数,你在idea里面打出“event.”它就会给你列出来对应的方法,并且也有比较详细的说明,所以你也可以自己边读文档边试。
这里我们需要的功能是给消息来源发送一条消息,所以写如下语句:

event.getSubject().sendMessage("喵");

这里因为event是FriendMessageEvent类型,所以无论是用getSubject、getSender、getFriend都可以找到消息发送者,然后,使用sendMessage方法给他发送一条消息 喵~
整体代码:

package com.example.plugin;

import net.mamoe.mirai.console.plugins.PluginBase;
        import net.mamoe.mirai.message.FriendMessageEvent;

class ExamplePluginMain extends PluginBase {
    public void onLoad() {}
    public void onEnable() {
        this.getEventListener().subscribeAlways(FriendMessageEvent.class, (FriendMessageEvent event) -> {
            event.getSubject().sendMessage("喵");
        });
    }
}

如果出现乱码,请自行百度中文乱码解决方法。

3.5 把插件打包

在右侧找到gradle工具栏,点开你的项目,找到Tasks/build/jar,双击,等打包完成。打包好的jar文件在左侧build/libs里。

5、让机器人“动”起来

直接运行test/java/mirai/RunMirai是可以运行mirai程序,但是每次运行机器人都要打开idea是不是太不方便了?
所以我们去下载一个MiraiOk[github],选择Windows-amd64。
下载完成后先找个文件夹把下载下来的exe文件放起来,因为它是安装在当前目录里的。然后双击exe,mirai控制台就启动了~

不过暂时先把它关上,打开config.txt,在最后一行加入
login qq号 密码
然后记得在最后加一个回车
在这里插入图片描述
然后,把刚才打包好的jar文件复制到plugins文件夹下,再次双击exe,等待登录以及插件加载——恭喜你,成功了——吗?
给你的机器人发条消息试试,如果正常回复了“喵”,那最好不过。如果出现了乱码,那真是太棒了,不是只有我一个人百度怎么解决乱码问题半天了。(此乱码与mirai无关,就是idea的编码格式问题,自己百度去吧)

好啦,这样一个简单的机器人就完成了。
想要更进一步的功能,可以借助代码内文档,或者github上的帮助文档,再或者看一下新建项目时的默认代码(虽然有bug,但是去掉bug还是有很多值得借鉴的东西的),或者等我继续更新(咕咕咕)。

最后

以上就是难过大树为你收集整理的(超详细)mirai机器人(Java)0、github地址1、安装idea2、安装mirai插件3、创建你的第一个插件5、让机器人“动”起来的全部内容,希望文章能够帮你解决(超详细)mirai机器人(Java)0、github地址1、安装idea2、安装mirai插件3、创建你的第一个插件5、让机器人“动”起来所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部