Linux & Windows + Mirai:利用 Linux & Windows 搭建一个QQ机器人

最后更新: 2023.3.31


环境配置: CentOS 7.6Ubuntu 22.04Windows10 21H2

请打开你的 SSH ,之后都会在这里操作
什么?你还没有服务器?那就去这里白嫖一台 高校计划 - 免费学生云服务器

温馨提示:除了在 配置环境CentOSUbuntu 有细微差别,其他步骤都相同。(如果有些不同我会标注出来

配置环境

由于我们选择的是阿里云的镜像,并非纯净镜像,所以一些基本的工具比如 vimwget 就不用安装了(但是还有一些需要

安装 unzipscreen

# 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

  1. 下载 JDK17 安装包

     wget https://d6.injdk.cn/openjdk/openjdk/17/openjdk-17.0.1_linux-x64_bin.tar.gz
    
  2. 解压安装包,修改包名为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
    
  3. 移动文件夹到/usr/local下

     mv jdk-17 /usr/local/
    
  4. 将java添加到环境变量中

     vim /etc/profile
    

    在文件的末尾添加:

     export JAVA_HOME=/usr/local/jdk-17
     export PATH=/usr/local/php/bin:/usr/local/jdk-17/bin:$PATH
    
  5. 加载刚才修改的文件

     source /etc/profile
    
  6. 验证安装

     java -version
    
  7. 显示以下内容,则说明安装成功。

     [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虽然我没有Mac 上搭建你的机器人,搭建步骤大同小异。

下载 & 配置 MCL

  1. 创建一个文件夹并进入

     mkdir mcl
     cd mcl
    
  2. 下载 mcl

     wget https://ghproxy.com/https://github.com/iTXTech/mirai-console-loader/releases/download/v2.1.2/mcl-2.1.2.zip
    
  3. 将文件解压

     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                 
    
  4. 启动 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

1

如图所示,将下列配置覆盖到最底端的 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 的请求。

114514

你将会在 网络 -- cap_union_new_verify -- 预览 找到一个 ticket

1919

将鼠标移动到上面,右键 -- 复制值 ,将其粘贴到终端中,回车。
随后是一个验证码,输入 yes 即可。最后将你收到的验证码粘贴到终端中,回车。

Login successful.

权限节点讲解

权限节点说明文档:Mirai Console Backend - Permissions

img

就以 Grass-Pictures - Commands 的权限节点为例;

img

如果我想在一个群号为 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

所需权限:

名称 指令 指令功能 权限节点
生草
  • 来张草图
  • 生草
  • grass-pic
  • 来一张草图 cn.whitrayhb.grasspics:command.grass-pic
    草图信息
  • 草图信息
  • grass-pic-status
  • 获取草图当前状态 cn.whitrayhb.grasspics:command.grass-pic-status
    投稿草图
  • 草图投稿
  • 投稿草图
  • post-grass-pic
  • 向草图库投稿 cn.whitrayhb.grasspics:command.post-grass-pic

    注意:请不要在短时间内获取大量草图,否则会被 封禁IP 限流 (惨痛教训😭😭😭 但是可以通过加入他们的 QQ 群解除

    img

    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 点击下载。
    或者直接点击 此处 下载。

    下载完成后,双击运行。

    img

    点击 下一步

    img

    在这一步选择你的 JDK17 安装路径。
    点击 下一步 后,等待安装完毕。

    img
    img

    点击 关闭 ,JDK17安装完毕。
    随后验证安装。

    Win + R 唤出 运行,输入 cmd ,回车。

    img

    输入 java -version 验证安装。

    img
    img

    安装成功!

    下载 MCL

    打开 MCL-2.1.2,下载MCL。

    等待下载完毕后,右键解压。

    img

    打开文件夹,双击 mcl.cmd 启动mcl。

    img

    第一次启动会下载相关文件,等待即可。

    img

    剩下部分请查看 此处

    结束

    其他的无非是去 Mirai 论坛/Github 寻找你喜欢的插件,再将它们以 wget/ftp 的形式下载/上传到 /mcl/plugins 目录下。

    好了,去享受你的机器人吧 ( ̄︶ ̄*))

    有任何问题欢迎咨询我 Email:halo-402@outlook.com


    End.

    PS:后续可能会考虑加一个Windows用户的教程和一些插件的补充说明 已经加完力(喜

    posted @ 2023-03-23 10:33  QiuSYan  阅读(1941)  评论(0编辑  收藏  举报