Home

Awesome

临时性协议修复插件

Downloads

目前对于 code=45 的处理:

1.7.0+ 中加入了 TLV544Provider, 但实际效果有限

1.9.0+ 中加入了 KFCFactory, 以对接第三方签名服务

本插件不内置签名服务,你需要修改配置,根据版本指定第三方签名服务

目前已知的签名服务已经全部跑路,本插件项目停止维护
本项目不提供任何代替方案,请自行解决
请勿在 Issues 和 Discussions 宣泄情绪

1.13.0+ 中正式将 JDK 版本提升至 11

第三方签名服务

KFCFactory

ANDROID_PHONE / ANDROID_PAD

KFCFactory.json

UnidbgFetchQsign(fuqiuluo/unidbg-fetch-qsign) / ViVo50(kiliokuara/magic-signer-guide)

KFCFactory 会根据登录协议版本从配置文件(KFCFactory.json)获取签名服务的配置信息

请确保第三方签名服务可用!!!
请确保第三方签名服务可用!!!
请确保第三方签名服务可用!!!

目前支持的第三方签名服务有 (你需要准备至少一个可用的服务)

请确认第三方签名服务 支持的协议版本 和 登录的协议版本 匹配

下面是配置文件 KFCFactory.json 示例,你可以根据实际情况调整

{
    "8.9.63": {
        "base_url": "http://127.0.0.1:8080",
        "type": "fuqiuluo/unidbg-fetch-qsign",
        "key": "114514"
    },
    "8.9.58": {
        "base_url": "http://127.0.0.1:8888",
        "type": "kiliokuara/magic-signer-guide",
        "server_identity_key": "vivo50",
        "authorization_key": "kfc"
    }
}

修改配置文件 KFCFactory.json 无需重启 Mirai

JVM 参数

propertydefaultdesc
xyz.cssxsh.mirai.tool.KFCFactory.configKFCFactory.jsonKFCFactory config file path
xyz.cssxsh.mirai.tool.ViVo50.Session.timeout60000Session except timeout (ms)
xyz.cssxsh.mirai.tool.UnidbgFetchQsign.token.interval2400000RequestToken interval, 0 is stop
xyz.cssxsh.mirai.tool.FixProtocolVersion.sourceRomiChanprotocol versions

Mirai Console 使用方法

下载 mirai2.jar 放到 plugins ,重启 Mirai Console 即可
出现 协议版本检查更新... 就表示插件开始工作

命令

since 1.6.0

since 1.8.0

since 1.9.6

Mirai Core 使用方法

since 1.1.0

下载 mirai2.jar, 然后作为 lib 引用
1.9.0+ 中加入了 async-http-client 作为依赖,请自行补全

然后在代码中调用 FixProtocolVersion 的静态方法
java示例:

import xyz.cssxsh.mirai.tool.FixProtocolVersion;
import net.mamoe.mirai.utils.BotConfiguration.MiraiProtocol;

import java.io.FileNotFoundException;
import java.util.Map;

public class Example {
    // 获取指定协议版本
    public static void fetch() {
        // 获取最新版本协议
        FixProtocolVersion.fetch(BotConfiguration.MiraiProtocol.ANDROID_PAD, "latest");
        // 获取 8.9.63 版本协议
        FixProtocolVersion.fetch(BotConfiguration.MiraiProtocol.ANDROID_PHONE, "8.9.63");
    }

    // 从本地文件加载协议版本
    public static void load() {
        try {
            FixProtocolVersion.load(BotConfiguration.MiraiProtocol.ANDROID_PAD);
        } catch (FileNotFoundException ignored) {
            FixProtocolVersion.fetch(BotConfiguration.MiraiProtocol.ANDROID_PAD, "8.9.63");
        }
    }

    // 获取协议版本信息
    public static Map<BotConfiguration.MiraiProtocol, String> info() {
        return FixProtocolVersion.info();
    }
}

since 1.9.0

关于 KFCFactory, 正常来说
它会根据 SPI 机制被自动加载
如果项目结构特殊,也可用使用 KFCFactory.install() 手动注册

相关项目