前置的条件
机器人是基于mirai框架实现的。根据官方的文档,建议使用openjdk11。
我这里使用的编辑工具是idea2023
在idea中新建一个maven项目,虽然可以使用gradle进行构建,不过我这里由于网络问题没有跑通。
pom.xml
<dependency>
<groupId>net.mamoe</groupId>
<artifactId>mirai-core-jvm</artifactId>
<version>2.15.0</version>
</dependency>
机器人的启动
这里我们写一个启动类(用junit也行,用main方法也行),来启动我们的机器人。这里我推荐使用二维码登录,使用账号密码登录容易被风控,而且目前qq还有安全监测,用账号密码不是很方便
// 在 2.15.0 中加入, 使用二维码登录Bot bot = BotFactory.INSTANCE.newBot(qq, BotAuthorization.byQRCode(), configuration -> {
configuration.setProtocol(BotConfiguration.MiraiProtocol.ANDROID_WATCH);
});
bot.login();
登录后,qq里发送消息看到如图的信息,说明启动成功,可以正常接收数据。
文字的收发
如上面所说,可以收到信息了,理论上就可以发送信息。
GlobalEventChannel.INSTANCE.subscribeAlways(GroupMessageEvent.class, event->{
event.getSubject().sendMessage("hello world");
});
机器人启动后,写入这一段。这段代码会自己监听不同的QQ会话(群聊、私聊),并根据编写的内容做处理,sendMessage,发送的是mirai机器人封装的一个数据包,可以是文字,可以是图片。鉴于这篇文章是一个大概,后续我会把图片的信息、at的信息做一个整理。(也是我目前已经打通的部分。)