目录

  • 0. 前置操作
    • I. 安装MCL
    • II. MCL自动登录配置
    • III. 安装IDEA插件
  • 1. 新建Mirai项目
  • 2. 编写主类
  • 3. 添加外部依赖
  • 4. IDEA运行
  • 5. 插件打包
  • 6. MCL运行

0. 前置操作

I. 安装MCL

对于怎么安装MCL,网上一堆教程,我就不赘述了,推荐看「基于MIRAI的QQ机器人」的前两点。

II. MCL自动登录配置

找到./config/Console/AutoLogin.yml文件,在编译器打开,内容如下:

accounts: - # 账号, 现只支持 QQ 数字账号account: 123456password: # 密码种类, 可选 PLAIN 或 MD5kind: PLAIN# 密码内容, PLAIN 时为密码文本, MD5 时为 16 进制value: password# 账号配置. 可用配置列表 (注意大小写):# "protocol": "ANDROID_PHONE" / "ANDROID_PAD" / "ANDROID_WATCH" /"MAC" / "IPAD"# "device": "device.json"# "enable": trueconfiguration: protocol: ANDROID_PHONEdevice: device.jsonenable: true

将其中的accountvalue的值改成机器人QQ账密,保存即可。
另外,强烈推荐将下面protocol的值也改了,防止登录冲突。由于我平时用的是ANDROID_PHONE,所以我改成ANDROID_PAD,这样运行的时候就不会把我手机上登录的机器人账号强制下线。

关于滑块验证和设备锁的问题,可参考官方文档「手动完成滑动验证」。

III. 安装IDEA插件

在IDEA中打开插件界面(文件/设置/Plugins),搜索miraikotlin,点击Install安装。

1. 新建Mirai项目

在IDEA新建项目(文件/新建/项目),如图,选择Mirai:

选择你自己要用的JDK版本,然后Next

GroupId是包名,默认是org.example,不用改;
ArtifactId是主类名,可自拟;
Version是你这个插件的版本,可以不改;
语言选择Java,然后Next


看不懂,不改,直接Next


改成你自拟的项目名,Finish

PS:如果IDEA右下角提示问你要不要构建索引,一定要选择总是,我就是因为没理它导致没有代码补全,就这样折磨了自己几天……呜呜呜呜呜呜~

这样最困难的一步就完成了~。万事开头难(bushi)

2. 编写主类

创建好项目后,我们可以在./src/main/java/org/example/目录下找到我们的主类自拟的主类名.java

里面的代码是自动生成的,代码结构不要改
未来编写的代码主要通过onEnable方法执行。

@Override
public void onEnable(){// 这是重载的方法,可以在这里编写你的代码// 先放一段测试应答的代码进行测试,主要逻辑是收到好友的消息就给好友发送"理你一下"GlobalEventChannel.INSTANCE.subscribeAlways(FriendMessageEvent.class, event ->{event.getSender().sendMessage("理你一下");});
}

有关主类的各种方法的介绍,详见「Java」基于Mirai的qq机器人开发踩坑笔记(其二)

3. 添加外部依赖

在我写的项目里面,需要引用JSON的外部依赖包,在普通项目中能用,但是在Mirai项目中一直飘红……
我查了好多资料才知道还要在./build.gradle.kts中添加依赖,添加代码如下:

dependencies {implementation("org.json:json:20220320")
}

具体的依赖链接要到你下载依赖包的地方查找,以我自己用的JSON包举例:「JSON依赖包下载」


选择自己用的版本,点击版本号(如:20220320);


往下拉,找到Gradle Kotlin DSL的代码,Ctrl + CCtrl + V即可。

4. IDEA运行

编写好主类后,打开./src/test/kotlin/RunTerminal.kt,有一行代码如下所示:

val bot = MiraiConsole.addBot(123456, "").alsoLogin() // 登录一个测试环境的 Bot

123456""换成机器人的账密,然后运行RunTerminal.kt,即可在IDEA中测试运行。

PS:建议准备两个小号,一个测试,一个正常使用,我的机器人账号可能因为测试太频繁被打异常tag了,呜呜呜呜呜呜~

from:帮我测试的朋友

5. 插件打包

打开IDEA右边的Gradle栏。有外部依赖的话,可以用./Tasks/mirai/buildPlugin进行打包,没有外部依赖可以用./Tasks/build/jar打包:

打包完成后导出的jar包在项目路径./build/对应文件夹里(如:./build/mirai/Bot-1.0.mirai.jar)。

6. MCL运行

将刚刚打包的jar文件复制到MCL安装路径的./plugins/文件夹中,运行mcl.cmd,然后跟你的机器人互动吧!

「Java」基于Mirai的qq机器人开发踩坑笔记(其一)相关推荐

  1. 「Java」基于Mirai的qq机器人开发踩坑笔记(其二)

    目录 0. 配置机器人 1. onLoad方法 2. onEnable方法 3. 消息属性 4. 消息监听 I. 好友消息 II. 群聊消息 III. 无差别消息 5. 发送消息 I. 文本消息 II ...

  2. 基于Mirai搭建QQ机器人监控B站直播

    搭建自定义Mirai机器人 周末本来想继续学Vue来着,这不又搞这个了,唉,这计划赶不上变化啊. 参考文档 mamoe/mirai: 高效率 QQ 机器人支持库 Gradle 下载的依赖jar包在哪? ...

  3. PHP开发基于Mirai的QQ机器人

    博客和更新地址:PHP开发基于Mirai的QQ机器人 前言 在完成配置开源安卓QQ协议库Mirai后,便可使用已有开源项目来部署自己的QQ机器人,但自行开发显然更符合需求.借助mirai-api-ht ...

  4. 【0基础QQ机器人开发】基于go-cqhttp的QQ机器人开发教程,仅供自学

    文章目录 一.本文目的: 二.实现历程: 三.开发过程 1.准备工作 1.cq-http的下载地址:[Releases · Mrs4s/go-cqhttp (github.com)](https:// ...

  5. PHP开发基于Mirai的QQ机器人(一)

    基础环境的搭建 (一) 本文简介 本文讲解高效率QQ机器人框架Mirai. 本文发布于 Mirai V2 由于QQ机器人常被部署在服务器,所以我只讲解 Linux 的部署方式. 本文针对PHP开发者. ...

  6. ECShop 商城小程序「weeshop 」- 基于 ECShop 3.6 版本开发的完整版商城小程序

    weeshop ECShop 微信小程序商城,基于3.6版本 appserver 接口,100% 兼容原有程序. 注意:本项目开发基本完善,如用于商业用途,请务必去往博客文章留言备注. 项目内容基于 ...

  7. 基于Nonebot2搭建QQ机器人(一)机器人环境配置

    目录 一.Nonebot2介绍 二.Nonebot2安装 1.bot.py文件的配置 2..env文件的配置 3.env.dev文件配置 4.env.pord配置 三.go-cqhttp介绍 四.go ...

  8. Mirai框架qq机器人教程

    Mirai框架qq机器人教程 0.前言 1. 安装Java 2.安装Mirai启动器 3.下载IDEA或其他编译器 4.创建mirai-console插件项目 4.1 通过git创建 4.2 通过插件 ...

  9. android string拼接字符串_「JAVA」细述合理创建字符串,分析字符串的底层存储,你不该错过...

    Java基础之字符串操作--String 字符串 什么是字符串?如果直接按照字面意思来理解就是多个字符连接起来组合成的字符序列.为了更好的理解以上的理论,我们先来解释下字符序列,字符序列:把多个字符按 ...

最新文章

  1. ​HOG特征也可以作为图像重建的目标!FAIRJHU提出新的one-stage自监督预训练模型MaskFeat!...
  2. VC++创建个性的对话框之MFC篇
  3. python 例子生成随机数,读文件
  4. javascript函数,值得参考!
  5. BZOJ4997 [Usaco2017 Feb]Why Did the Cow Cross the Road III
  6. 印度将推出太阳能光伏制造政策
  7. hpasmcli查看HP服务器内存状态
  8. 程序员应该收藏哪些资讯类网站
  9. Jar包顺序引起编译错误一例
  10. 基于SSM的图书馆管理系统,高质量毕业论文范例(可直接使用),项目导入视频,附送源码和数据库脚本,论文撰写教程
  11. 原创|批处理实现安卓设备自动重启压力测试(自动生成日志和计算重启时间)
  12. SkipList算法原理分析
  13. 2012北京地区Java程序员的平均工资调查数据分析
  14. 抗衡微软,三款国产软件接力金山WPS,身体力行,不愧是国产之光
  15. ACM/ICPC 大赛常见英语词汇
  16. Ubuntu 备份系统为ISO镜像 解决ISO限制4GB大小 Clone当前系统到其他电脑
  17. 关于物流管理的软件测试项目经验,物流软件自动化测试用例管理和执行调度的设计与实现...
  18. 智能硬件产品经理跟纯APP产品经理的主要区别在哪里?
  19. 网线传输速度测试_如何测验网线的好坏,传输速度等
  20. matlab 产生每次都一样的随机数

热门文章

  1. 速达软件开发版使用技巧-销售开单单据打印格式设计
  2. 比亚迪第三季净利57亿:拟向王传福表哥公司采购11亿锂电设备
  3. 关于推特开发者账号申请的问题和经验
  4. 第七版《计算机网络》知识点+王道习题(物理层+链路层)
  5. ORACLE忘记某个用户密码,但是密码已经过期了怎么办?
  6. php转义前端被编译单双引号
  7. linux 添加repository,Ubuntu 18.04/16.04/Debian 9上安装add-apt-repository的方法
  8. 新一轮零食竞争开启:三只松鼠向左,良品铺子向右
  9. 数字1-7转换成星期一到星期天
  10. 《杜拉拉升职记》职场36计总结