机器人剩余电量java_(超详细)mirai机器人(Java)

(超详细)mirai机器人(Java)

(超详细)mirai机器人(Java)

用Java编写一个mirai机器人

0、github地址

1、安装idea

2、安装mirai插件

3、创建你的第一个插件

3.1 新建Mirai项目

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

3.3 修改配置文件

3.4 开始写代码

3.5 把插件打包

5、让机器人“动”起来

注意:本文可能只适用于Windows平台,并且使用Java作为编程语言。在阅读本文之前,请确认自己熟悉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、创建你的第一个插件

选择File->New->Project

在左侧选择Mirai Console Plugin

插件名称、开发者姓名、主类名看着改改就行(不要填中文)

语言请选择Java,然后点击next

7b942eb6fd795d600e568778910b1b1d.png

groupid和artifactid没啥用,都填0001好了

包管理器选择gradle,后面选择Groovy DSL

7ae8ae55bd7f500f082662c72bae717f.png

最后项目名随便填,反正不填中文就不会有问题。

5bad01acd228c2d62d37767707750bb7.png新建完项目,右下角会有弹窗让你导入gradle,点击import gradle project等待进度条走完。

如果gradle wrapper下载速度太慢,先终止build,去gradle手动下载对应的版本,然后找到C:/Users/你自己的用户名/.gradle/wrapper/dists,打开对应的文件夹(这个文件夹是idea自动创建的),然后打开那个名字乱七八糟(名字是随机生成的,肯定跟我不一样)的文件夹,把里面的东西删掉,把下载的zip扔里面,重新build。

10c375ff7460e663303c30fdcb650ce5.png

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

现在假设你已经成功的完成了build,如图:

3e3746005b2ce83d8aba1c8a332781e6.png

但是现在还不能开始写代码(Mirai用起来是真麻烦)

在左侧展开项目内容,找到build.gradle,把miraiConsoleVersion改成0.5.2,这是因为最新版还在开发,缺少很多东西。

然后顺手把qqandroid的依赖给注释掉(因为用不到)

然后点击长得像刷新的按钮重新build(点哪个都行)

978340701c064be5c8e365c2cd81f1d9.png

好啦,现在终于可以开始写插件了,找到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("喵");

});

}

}

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

在右侧找到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号 密码

然后记得在最后加一个回车

08ede4c72da3e5e50e476ffa3a045696.png

然后,把刚才打包好的jar文件复制到plugins文件夹下,再次双击exe,等待登录以及插件加载——恭喜你,成功了——吗?

给你的机器人发条消息试试,如果正常回复了“喵”,那最好不过。如果出现了乱码,那真是太棒了,不是只有我一个人百度怎么解决乱码问题半天了。(此乱码与mirai无关,就是idea的编码格式问题,自己百度去吧)

好啦,这样一个简单的机器人就完成了。

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

(超详细)mirai机器人(Java)相关教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值