# Mirai Native 搭建教程 - CQDLL 插件使用教程

- URL: https://blog.xiaoxian.org/articles/mirainative%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B-cqdll%E6%8F%92%E4%BB%B6%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B
- Author: Darf
- Published: 2023-05-15
- Tags: Mirai, QQ机器人, Java, 教程

> 全面讲解 MiraiNative 和 AnotherMiraiNative 的搭建过程，以及如何加载和使用 CQDLL 插件

---

## 一些废话（已归档）
这也算是比较老的一个教程了，但目前还有第三方维护
这里简单讲述一下，CQ（酷Q）是之前很火的一个QQ机器人框架，社区广大，开发者人数上万
但因为腾讯的严查，导致了CQ的消失，让这些开发者所编写的插件无从去处
此时Mirai框架站了出来，成为了主流的一个QQ机器人框架
但因为编写语言问题，Mirai只能加载Java编写的插件，而CQ是兼容大部分语言的DLL动态链接库
就诞生出了一个新的CQ兼容程序--Mirai-Native
此文章会讲述两个主流Native（一个Mirai原生插件，一个第三方HTTP程序）的使用教程，当然可能写的有点烂，但对于小白来说应该能看懂

----------

## 第一步-搭建Mirai框架环境
从Github下载Mirai程序（如果无法访问需要进行科学上网）
MiraiGithub: https://github.com/mamoe/mirai
Mirai论坛: https://mirai.mamoe.net
官方论坛和Github也有提供相关使用教程，具体不会的可以去参考

----------

**Mirai分为两个启动版本:**<br>
**控制台版本（纯命令行操作，同时兼容Linux和Windows等多个系统，官方源，稳定）**
https://github.com/iTXTech/mirai-console-loader<br>
**GUI版本（图形化，利于小白使用，只兼容Windows系统，处于测试，不稳定）**
https://github.com/sonder-joker/mirai-compose

----------

这里只提供控制台版本使用说明:<br>

**注意！这一步将会考虑到后面Native的使用问题，因为CQ插件是32位，所以如果使用原生Native这里需要安装32位的Java**
32位Java并不难找，这里我推荐到清华大学镜像站下载（版本为Java17_x86）:
https://mirrors.tuna.tsinghua.edu.cn/Adoptium/17/jdk/x32/windows/OpenJDK17U-jdk_x86-32_windows_hotspot_17.0.5_8.zip<br>

**官方提供的一键安装程序:**
https://github.com/iTXTech/mcl-installer
找到需要的版本，简单易用，可自动下载MCL（控制台程序）所有的依赖，Java等程序（推荐小白使用）
如果是新手，并且没有特殊需求，可以选择一路回车实现一键安装
但要注意的是，安装程序默认只提供64位Java安装，如果要用到原生Native则需要自行下载上方32位Java并替换<br>
**使用MCL自行配置Java等环境启动**
https://github.com/iTXTech/mirai-console-loader
需要自行安装Java，注意Java版本必须 >= 11（这里推荐Java 17）上面有下载链接<br>
**使用教程:**
从https://github.com/iTXTech/mirai-console-loader/releases/
找到最新版本下载并解压，会有mcl.jar mcl.cmd mcl三个文件<br>
**Windows启动:**
如果要用到native，则需要修改java启动目录
使用记事本等程序编辑 **mcl.cmd** 启动脚本
在 **set JAVA_BINARY=java** 这一行
把 **java** 替换成你的32位Java目录即可
双击 **mcl.cmd** 启动<br>
**Linux启动:**
**注意！Native不兼容Linux系统！**
控制台输入 **./mcl** 启动<br>

----------

## 第二步-安装Native（原生Native）
**原生Native Github:**
https://github.com/iTXTech/mirai-native<br>

**这里是官方的两条主要说明:**
**与大部分酷Q插件兼容，不支持CPK和解包的DLL，需获取DLL和JSON原文件，JSON文件不支持注释。**
**Mirai Native 仅支持 Windows 32位 Java<br>**

**第一种方法（使用MCL自动安装Mirai Native）**
在Mirai根目录 **Shift+右键** (Windows),选择 **在此处打开cmd窗口** ，输入以下命令

    .\mcl --update-package org.itxtech:mirai-native --channel stable --type plugin

**第二种方法（手动下载Mirai Native安装）**
到https://github.com/iTXTech/mirai-native/releases
下载最新版本，复制到 **plugins** 文件夹，启动即可

----------

## 第二步-安装Native（第三方-AnotherMiraiNative）
**AnotherMiraiNative Github:**
https://github.com/debumori-osc/Another-Mirai-Native<br>

**AnotherMiraiNative简称AMN，通过Mirai-api-http进行传输，只有GUI版本，UI模仿CQ制作**<br>

**使用教程:**
安装Mirai-api-Http插件
https://github.com/project-mirai/mirai-api-http<br>

**第一种方法（使用MCL自动安装Mirai-api-Http）**
在Mirai根目录 **Shift+右键** (Windows),选择 **在此处打开cmd窗口** ，输入以下命令

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

**第二种方法（手动下载Mirai-api-Http安装）**
到https://github.com/project-mirai/mirai-api-http/releases
下载最新版本，复制到 **plugins** 文件夹，启动即可<br>

编辑 **config/net.mamoe.mirai-api-http/setting.yml** 文件
复制以下模板粘贴即可

    ## 配置文件中的值，全为默认值

    ## 启用的 adapter, 内置有 http, ws, reverse-ws, webhook
    adapters:
      - ws

    ## 是否开启认证流程, 若为 true 则建立连接时需要验证 verifyKey
    ## 建议公网连接时开启
    enableVerify: true
    verifyKey: 1234567890

    ## 开启一些调式信息
    debug: false

    ## 是否开启单 session 模式, 若为 true，则自动创建 session 绑定 console 中登录的 bot
    ## 开启后，接口中任何 sessionKey 不需要传递参数
    ## 若 console 中有多个 bot 登录，则行为未定义
    ## 确保 console 中只有一个 bot 登陆时启用
    singleMode: false

    ## 历史消息的缓存大小
    ## 同时，也是 http adapter 的消息队列容量
    cacheSize: 4096

    ## adapter 的单独配置，键名与 adapters 项配置相同
    adapterSettings:
  
      ## 详情看 websocket adapter 使用说明 配置
      ws:
        host: localhost
        port: 8080
        reservedSyncId: -1
**配置文件里的verifyKey就是你的验证密钥，可自行修改**<br>

到https://github.com/debumori-osc/Another-Mirai-Native/releases
下载最新版本的 **AnotherMiraiNative.exe** 和 **CQP.dll** 文件
到https://github.com/debumori-osc/Another-Mirai-Native/releases/download/1.5.0/Release.zip
下载 **Release.zip** 环境库

在Mirai根目录创建一个 **AMN** 的文件夹
把最新版本的 **AnotherMiraiNative.exe** 和 **CQP.dll** 解压进去
环境库 **Release.zip** 里的 **SQLite.Interop.dll**;**libiconv.dll**;**libcharset.dll** 解压进去<br>

解压后，在 **AMN** 文件夹里会有以下文件

    SQLite.Interop.dll
    libiconv.dll
    libcharset.dll
    CQP.dll
    AnotherMiraiNative.exe

双击 **AnotherMiraiNative.exe**启动即可

----------

## 第三步-Mirai登录QQ号
**Mirai的一些主要命令**
    help    查看命令列表
    login [QQ号] [密码] {协议}    登录QQ，协议为可选，默认为 ANDROID_PHONE
    autologin add [QQ号] [密码] {密码加密方式}    添加自动登录QQ，加密方式可选 PLAIN（无加密） 或 MD5
    logout [QQ号]    退出登录指定的QQ号
    status    查看Mirai状态
    stop    关闭Mirai<br>

**支持的协议列表**
**"ANDROID_PHONE" - 安卓手机**
**"ANDROID_PAD" - 安卓平板**
**"ANDROID_WATCH" - 安卓手表**
**"MACOS" - MAC系统**
**"IPAD" - IPAD系统**
<br>
**登录后可能会提示进行新设备验证等，一般很简单就能操作通过，如果实在过不去可以去Mirai论坛找解决方法**
**有些会提示QQ版本过低等，请尝试更换协议和更换QQ密码**

## 到这一步Mirai+Native基本上算是搭建完成了，下面讲如何加载插件

----------

## 第四步-加载DLL插件（原生Native）
下载所需要加载的插件 **DLL** 和 **JSON** 文件
<br>
下载后将两个文件放置在 **data\org.itxtech.mirainative\plugins** 目录里面
重启Mirai程序，输入以下命令即可（假设插件名为ATBot）
    npm load ATBot.dll

<br>
**原生Native命令列表**
    npm load <DLL文件名>   加载指定DLL文件
    npm list    列出所有 Mirai Native 插件
    npm disable <插件Id>   停用指定 Mirai Native 插件
    npm enable <插件Id>   启用指定 Mirai Native 插件
    npm reload <插件Id>   重新载入指定 Mirai Native 插件
    npm unload <插件Id>   卸载指定 Mirai Native 插件

**具体操作可以找到任务栏的猫猫头图标右键查看选项**

----------

## 第四步-加载DLL插件（第三方-AnotherMiraiNative）
双击 **AnotherMiraiNative.exe** 启动后会看到有三个待填框
<br>
**QQ:** 你Mirai所登录的QQ号
**ws:** Mirai-api-http里面所配置的WebSocket地址（默认填写 **ws://localhost:8080** 即可）
**AuthKey:** Mirai-api-http里面所配置的验证密钥
<br>
点击 **连接**
然后会有一个以QQ头像的悬浮窗，右键-插件管理-添加插件-选择你插件的DLL文件即可
第三方的UI操作更利于新人使用，后面基本上自己研究研究就知道了，这都研究不明白还开什么机器人（

----------

## 完结
没什么可说的（，教程已经写的很详细了，自己不会请百度谷歌等操作，实在不行进群问或者去论坛问
