Linux & Windows + Mirai:利用 Linux & Windows 搭建一个QQ机器人
最后更新: 2023.3.31
环境配置:
CentOS 7.6
、Ubuntu 22.04
、Windows10 21H2
请打开你的
SSH
,之后都会在这里操作
什么?你还没有服务器?那就去这里白嫖一台 高校计划 - 免费学生云服务器
温馨提示:除了在 配置环境 时
CentOS
与Ubuntu
有细微差别,其他步骤都相同。(如果有些不同我会标注出来
配置环境
由于我们选择的是阿里云的镜像,并非纯净镜像,所以一些基本的工具比如 vim
、 wget
就不用安装了(但是还有一些需要
安装 unzip
和 screen
:
# CentOS用户
yum install unzip
yum install screen
# Ubuntu用户
apt-get update # 获取最新软件源
apt-get upgrade #更新软件包
apt install unzip
apt install screen
如果你是用的是纯净 CentOS 镜像,那请你看看我的这一篇文章,这里讲述了网卡、SSH连接、基本工具的安装等的配置,本教程不再赘述
接下来安装 JDK17
安装 JDK17
CentOS
-
下载 JDK17 安装包
wget https://d6.injdk.cn/openjdk/openjdk/17/openjdk-17.0.1_linux-x64_bin.tar.gz
-
解压安装包,修改包名为jdk-17
tar zxf openjdk-17.0.1_linux-x64_bin.tar.gz rm -rf openjdk-17.0.1_linux-x64_bin.tar.gz mv jdk-17.0.1 jdk-17
-
移动文件夹到/usr/local下
mv jdk-17 /usr/local/
-
将java添加到环境变量中
vim /etc/profile
在文件的末尾添加:
export JAVA_HOME=/usr/local/jdk-17 export PATH=/usr/local/php/bin:/usr/local/jdk-17/bin:$PATH
-
加载刚才修改的文件
source /etc/profile
-
验证安装
java -version
-
显示以下内容,则说明安装成功。
[root@iZf8zgclasehk957la5s70Z ~]# java -version openjdk version "17.0.1" 2021-10-19 OpenJDK Runtime Environment (build 17.0.1+12-39) OpenJDK 64-Bit Server VM (build 17.0.1+12-39, mixed mode, sharing)
Ubuntu
Ubuntu 上安装 JDK17 非常简单。
安装 JDK-17:
apt install openjdk-17-jre
Mirai 相关
Mirai是一个免费开源高效率、支持全平台的qq机器人框架。
这也意味着你可以按照我的步骤在 Windows/Linux/Mac
上搭建你的机器人,搭建步骤大同小异。
下载 & 配置 MCL
-
创建一个文件夹并进入
mkdir mcl cd mcl
-
下载 mcl
wget https://ghproxy.com/https://github.com/iTXTech/mirai-console-loader/releases/download/v2.1.2/mcl-2.1.2.zip
-
将文件解压
unzip mcl-2.1.2.zip
可以看到,一共是五个文件:
[root@iZf8zgclasehk957la5s70Z mcl]# unzip mcl-2.1.2.zip Archive: mcl-2.1.2.zip inflating: LICENSE inflating: mcl inflating: mcl.cmd inflating: README.md inflating: mcl.jar
-
启动 mcl
java -jar mcl.jar
如果你是 Windows用户 ,请启动
mcl.cmd
初次启动会下载相关文件,等待即可。
2023-03-23 12:07:34 I/main: Backend: version 2.14.0, built on 2023-02-06 14:25:21. 2023-03-23 12:07:34 I/main: Frontend Terminal: version 2.14.0, provided by Mamoe Technologies 2023-03-23 12:07:34 I/main: Welcome to visit https://mirai.mamoe.net/ 2023-03-23 12:07:53 I/plugin: Successfully loaded plugin MCL Addon v2.1.1 2023-03-23 12:07:53 I/main: Prepared built-in commands: autoLogin, help, login, logout, permission, status, stop 2023-03-23 12:07:53 I/MCL Addon: iTXTech MCL Version: 2.1.2-61c8bd8 2023-03-23 12:07:53 W/MCL Addon: iTXTech Soyuz 未安装,Soyuz MCL Handler 特性已禁用 2023-03-23 12:07:53 I/main: 1 plugin(s) enabled. 2023-03-23 12:07:53 I/main: mirai-console started successfully.
当出现
mirai-console started successfully.
时,启动成功。
账号相关
登录前
在 「>」
后输入你的账号密码,格式为:
/autoLogin add <account> <password>
当输出 已成功添加xxxxxxxx
时,输入 stop
停止mcl。
随后进入 config/Console
,修改配置文件
cd config/Console
vim AutoLogin.yml
如图所示,将下列配置覆盖到最底端的 configuration: {}
处:
configuration:
protocol: MACOS
device: device.json
enable: true
heartbeatStrategy: STAT_HB
最后 按 Esc
,输入 :wq
保存并退出。
还要加一个 MACOS
协议修复插件。进入到 /mcl/plugins
目录中,输入wget命令下载 fix-protocol-version
。
wget https://ghproxy.com/https://github.com/cssxsh/fix-protocol-version/releases/download/v1.5.0/fix-protocol-version-1.5.0.mirai2.jar
至此,登录前的准备已经做完了。
滑块验证
我们回到 /mcl
目录。输入启动指令。
java -jar mcl.jar
启动后,你会得到这样一串信息:
2023-03-23 18:34:41 I/Bot.XXXXXXXXXX: [SliderCaptcha] 需要滑动验证码, 请按照以下链接的步骤完成滑动验证码, 然后输入获取到的 ticket
2023-03-23 18:34:41 I/Bot.XXXXXXXXXX: [SliderCaptcha] Slider captcha required. Please solve the captcha with following link. Type ticket here after completion.
2023-03-23 18:34:41 I/Bot.XXXXXXXXXX: [SliderCaptcha] @see https://github.com/project-mirai/mirai-login-solver-selenium
2023-03-23 18:34:41 I/Bot.XXXXXXXXXX: [SliderCaptcha] @see https://docs.mirai.mamoe.net/mirai-login-solver-selenium/
2023-03-23 18:34:41 I/Bot.XXXXXXXXXX: [SliderCaptcha] 或者输入 TxCaptchaHelper 来使用 TxCaptchaHelper 完成滑动验证码
2023-03-23 18:34:41 I/Bot.XXXXXXXXXX: [SliderCaptcha] Or type `TxCaptchaHelper` to resolve slider captcha with TxCaptchaHelper.apk
2023-03-23 18:34:41 I/Bot.XXXXXXXXXX: [SliderCaptcha] Captcha link: https://ssl.captcha.qq.com/template/wireless_mqq_captcha.html?style=simple&aid=16&uin=XXXXXXXXXX&sid=3441086262606048065&cap_cd=LuV-T_iP24eU_j0vJNb9mufTbQFF0UJtGt7ykjyqdIUdtGrI4gojDw**&clientype=1&apptype=2
请打开你的 Edge/Google Chrome
,将 Captcha link
复制至浏览器,打开。
打开后先不要滑动,按 F12
键打开开发者工具
选定 网络
。随后完成滑块验证。
验证完毕后你将其滑到底端,找到一个叫 cap_union_new_verify
的请求。
你将会在 网络
-- cap_union_new_verify
-- 预览
找到一个 ticket
。
将鼠标移动到上面,右键 -- 复制值
,将其粘贴到终端中,回车。
随后是一个验证码,输入 yes 即可。最后将你收到的验证码粘贴到终端中,回车。
Login successful.
权限节点讲解
权限节点说明文档:Mirai Console Backend - Permissions
就以 Grass-Pictures - Commands 的权限节点为例;
如果我想在一个群号为 114514
的群中给予本群的所有群员 获取草图 的权限,那你需要在 控制台 中输入:
/perm add m114514.* cn.whitrayhb.grasspics:command.grass-pic
以此类推,如果你需要给一个 QQ号为 1919810
的人 获取草图当前状态 的权限,那你需要在 控制台 中输入:
/perm add u1919810 cn.whitrayhb.grasspics:command.grass-pic-status
插件推荐
Chat-Command
允许在聊天环境下执行指令。
项目地址:project-mirai/chat-command: Chat command executor for mirai-console
最新版(0.6.0) Release 下载地址:0.6.0
请先通过 /perm 为用户设置指定指令的权限. 详见 Mirai Console 的 权限文档 .
Grass-Pic
在 QQ 群聊中接入草图的服务。
项目地址:NLR-DevTeam/GrassPictures: 在 QQ 群聊中接入草图的服务
最新版(1.20) Release 下载地址:1.2.0 - Fix shit & Reload command
所需权限:
名称 | 指令 | 指令功能 | 权限节点 |
---|---|---|---|
生草 | 来一张草图 | cn.whitrayhb.grasspics:command.grass-pic |
|
草图信息 | 获取草图当前状态 | cn.whitrayhb.grasspics:command.grass-pic-status |
|
投稿草图 | 向草图库投稿 | cn.whitrayhb.grasspics:command.post-grass-pic |
注意:请不要在短时间内获取大量草图,否则会被 封禁IP 限流 (惨痛教训😭😭😭 但是可以通过加入他们的 QQ 群解除
DouDiZhu
一个能在QQ上斗地主的mirai插件。
项目地址:kono-dada/doudizhu: 一个能在QQ上斗地主的mirai插件
最新版(1.12) Release 下载地址:斗地主1.12
规则介绍:
斗地主规则介绍:
在游戏群内发送“创建游戏”,即可创建一个游戏。
发送“上桌”参与游戏
当上桌人数达3人后,任意玩家发送“开始游戏”即可开始斗地主
出牌阶段,发送“/<你要出的牌>”在与bot的私聊或者群聊中即可出牌。如“/10jqka”就表示出了一个顺子。
抢地主时,请在群内说 “抢/不抢”
如果要不起,发送“要不起”或者“不要”
当管理员发送“结束游戏”时,游戏会被强制结束。
破产时申请补助:在群内输入“/d beg”
查询自己的point数量与胜率:在群内输入“/d me”
权限相关:
添加群为游戏群:在 控制台 输入指令"/dc addgroup <群号>"即可。如"/dc addgroup 123456789"。
添加管理员:在 控制台 输入指令"/dc addadmin <QQ号>"即可。如"/dc addadmin 123456789"
NiuZi
NiuZi 牛子系统 —— 在 QQ 群内耍牛子吧!
项目地址:Micalhl/NiuZi: 牛子系统。
Release 下载地址:Download
原帖 & 项目介绍地址:NiuZi 牛子系统 —— 在 QQ 群内耍牛子吧!
命令列表:
牛子养成系统(未开发完成)
命令:改牛子名 [要改的名字] 改你的牛子的名字,支持空格,最长10个字
命令:搞对象 [@对方] 和别人搞对象
命令:贴贴! 和对象贴贴!
命令:我的对象 查看你的对象的牛子信息
命令:变女性 转变为女性,扣除50厘米
命令:处理请求 [搞对象/分手] [同意/不同意] 管理你的请求
命令:我的牛子 查看你的牛子
命令:我要分手 和你的对象分手
命令:比划比划 [@对方] 比划一下,赢加长度输减长度,断掉双方都减长度
命令:群牛子排行 查看牛子排行榜
命令:领养牛子 领养一只牛子
命令:牛子榜 查看牛子排行榜
注:使用此插件你需要安装 MySQL
并创建一个数据库,数据库具体配置如下
配置文件(地址:config/NiuZi/settings.yml
):
# 是否为第一次启动,是检测数据库的配置。
# 一定要设置成 false,否则无法使用!
firstEnable: false
# 功能「比划比划」的冷却时长,单位为秒,默认为一小时。
pkCd: 3600
# MySQL 数据库地址
databaseAddress: localhost
# MySQL 数据库端口
databasePort: 3306
# MySQL 数据库名
databaseName: laoshu
# MySQL 数据库用户名
databaseUser: laoshu
# MySQL 数据库用户密码
databasePassword: password # 你的数据库密码
WeiboHelper
基于 Mirai Console 的 微博 转发插件
使用前请确保已安装插件 Chat-Command
插件基于PC网页版微博API,使用插件需要登录一个微博账号
插件初始化时,如果恢复登录状态失败,则会尝试模拟游客
项目地址:cssxsh/weibo-helper: Mirai Console 插件开发计划
最新版 (1.6.1) Release 下载地址:v1.6.1
具体指令请移步 Github项目地�� ,此处不再赘述。
Lolicon
涩图插件喜加一!
项目地址:Samarium150/mirai-console-lolicon: 基于LoliconAPI的mirai-console插件
最新版(6.0.8) Release 下载地址:6.0.8
如何食用?WiKi
Skia
注意:如果想要使用此插件,你需要安装Mirai Console Skiko/Skia 图像库前置插件
GLIBC-2.27
然而安装过程及其麻烦 (指 CentOS 7
,建议选择系统为 Ubuntu 22.04
的服务器搭载 Mirai
Ubuntu 22.04 自带 GLIBC-2.35,无需额外安装。
你可以通过在命令行输入:
ldd --version
来验证你的 GLIBC
版本。(如果版本为x.xx那么意味着它包含了x.xx及以下的 GLIBC
项目地址: cssxsh/mirai-skia-plugin: Mirai Console Skiko/Skia 图像库前置插件
最新版 (1.3.1) Release 下载地址: v1.3.1
Meme Helper
基于 Mirai Console 的 MEME 生成插件
注意:该插件需要前置插件 —— Skia
项目地址: cssxsh/meme-helper: Mirai Console 表情包生成插件
最新版 (1.2.0) Release 下载地址:v1.2.0
权限ID:xyz.cssxsh.mirai.plugin.meme-helper:*
食用方法:Readme.md
对于 Windows 用户
安装 JDK17
打开 Java Downloads,选择 x64 Installer
点击下载。
或者直接点击 此处 下载。
下载完成后,双击运行。
点击 下一步
。
在这一步选择你的 JDK17 安装路径。
点击 下一步
后,等待安装完毕。
点击 关闭
,JDK17安装完毕。
随后验证安装。
按 Win + R
唤出 运行
,输入 cmd
,回车。
输入 java -version
验证安装。
安装成功!
下载 MCL
打开 MCL-2.1.2,下载MCL。
等待下载完毕后,右键解压。
打开文件夹,双击 mcl.cmd
启动mcl。
第一次启动会下载相关文件,等待即可。
剩下部分请查看 此处
结束
其他的无非是去 Mirai 论坛/Github 寻找你喜欢的插件,再将它们以 wget/ftp 的形式下载/上传到 /mcl/plugins
目录下。
好了,去享受你的机器人吧 ( ̄︶ ̄*))
有任何问题欢迎咨询我 Email:halo-402@outlook.com
End.
PS:后续可能会考虑加一个Windows用户的教程和一些插件的补充说明 已经加完力(喜