Mirai-QQ机器人折腾小记
有许多自动化的需求,想用 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 位数
这里我们依据文档,下载对应的脚本,脚本会自动帮我们完成 mcl 以及相关依赖的安装。
安装好的文件目录主要是这些
mcl 的启动
- cd 进入刚刚的目录下
- 运行 ./mcl
- mirai console 将会启动
当出现以下提示时,代表启动成功,这其中有可能会遇到报错,我遇到的报错有下面几种
启动报错
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 有 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