有许多自动化的需求,想用 qq 机器人来实现,奈何时间不够,这次折腾一下,机器人核心 core 选择了 Mirai 机器人

Mirai 机器人的安装

mirai 的架构主要是 mirai core(核心及后端),Mirai Console(前端控制面板及插件)

mirai console

仔细思考自己的需求,还是依靠 mirai console 来完成工作

https://github.com/mamoe/mirai/blob/dev/docs/UserManual.md
mirai 仓库及用户文档如上

启动器的下载地址如下,根据自己的机器选择系统及 cpu 位数

https://github.com/iTXTech/mcl-installer/releases

这里我们依据文档,下载对应的脚本,脚本会自动帮我们完成 mcl 以及相关依赖的安装。
image.png
安装好的文件目录主要是这些
image.png

mcl 的启动

  1. cd 进入刚刚的目录下
  2. 运行 ./mcl
  3. mirai console 将会启动
    image.png

当出现以下提示时,代表启动成功,这其中有可能会遇到报错,我遇到的报错有下面几种

启动报错

NoSuchMethod….

这种情况在 config.json 中将 mirai.Console 版本改成 2.5.0 就好了
不得不说 Mirai 的生态系统是真的混乱,好多文档找不到。卡了我几天

{
  "js_optimization_level": -1,
  "mirai_repo": "https://gitee.com/peratx/mirai-repo/raw/master",
  "maven_repo": ["https://maven.aliyun.com/repository/public"],
  "packages": [
    {
      "id": "org.bouncycastle:bcprov-jdk15on",
      "channel": "stable",
      "version": "1.64",
      "type": "libs",
      "versionLocked": false
    },
    {
      "id": "net.mamoe:mirai-console",
      "channel": "stable",
      "version": "2.5.0",
      "type": "libs",
      "versionLocked": false
    },
    {
      "id": "net.mamoe:mirai-console-terminal",
      "channel": "beta",
      "version": "2.8.0-M1",
      "type": "libs",
      "versionLocked": false
    },
    {
      "id": "net.mamoe:mirai-core-all",
      "channel": "beta",
      "version": "2.8.0-M1",
      "type": "libs",
      "versionLocked": false
    },
    {
      "id": "org.itxtech:mcl-addon",
      "channel": "c122",
      "version": "1.2.2",
      "type": "plugins",
      "versionLocked": false
    },
    {
      "id": "net.mamoe:chat-command",
      "channel": "stable",
      "version": "0.5.1",
      "type": "plugins",
      "versionLocked": false
    },
    {
      "id": "net.mamoe:mirai-api-http",
      "channel": "stable",
      "version": "1.1.0",
      "type": "plugins",
      "versionLocked": false
    }
  ],
  "disabled_scripts": [],
  "proxy": "",
  "log_level": 1,
  "script_props": {}
}
Address already use

端口被占用,看看是否有其他应用占用相关端口,默认是 8080 端口。

mirai console 的使用

插件的安装

安装 http 插件

提供 HTTP 支持,允许使用其他编程语言的插件

./mcl --update-package net.mamoe:mirai-api-http --type plugin --channel stable

安装 Command 插件

允许在聊天环境通过以 “/“ 起始的消息执行指令

./mcl --update-package net.mamoe:chat-command --type plugin --channel stable

相关命令

Mirai Console 内置一些指令,输入 ? 并回车可以查看指令列表。

/mcl

mcl 命令面板

/login

/login qq password [Kind]

[kind]有三种 ANDROID_PHONE ,ANDROID_WATCH,ANDROID_PAD
各个 kind 之间权限有区别

/autoLogin

添加自动登录
/autoLogin add [passwordKind] # 添加自动登录

passwordKind 有 PLAIN,MD5

/permission

设置权限

: The root permission
console:command.stop 关闭 Mirai Console
net.mamoe.mirai.console.chat-command:_ The base permission
org.itxtech.mcl.addon:command.mcl 用于调用 MCL 的高级命令
console:command.status 获取 Mirai Console 运行状态
net.mamoe.mirai-api-http:_ The base permission
console:command.help 查看指令帮助
console:command.autoLogin 自动登录设置
console:command.permission 管理权限
console:command.login 登录一个账号
org.itxtech.mcl.addon:command.mclc 调用 MCL 命令行
org.example.plugin:_ The base permission
console:_ The parent of any built-in commands
org.itxtech.mcl.addon:* The base permission