猜测是因为qsign侧面支持了主动添加好友等高风险协议
StageGuard 发布的帖子
-
为测试 mirai 添加外置 EncryptService
我们为 mirai 添加了新的协议内容,需要登录测试但被风控登不上时,就需要配置外置 EncryptService 辅助登录。
关闭 android target
PC 测试运行需要关闭 android target,在 mirai 项目根目录下创建
local.properties
,添加以下属性:projects.mirai-core.targets=jvm;!android
添加完后重新加载 gradle 项目即可。
配置程序运行入口
在
mirai-core/src/jvmTest/kotlin
sourceSet 中创建一个新的文件RunMirai.kt
作为程序入口。fun main() { prepareEnvironmentForDebugRun() val bot = DebugRunHelper.newBot(123456789L, BotAuthorization { session, info -> session.authByPassword("password") }) { protocol = BotConfiguration.MiraiProtocol.ANDROID_PHONE fileBasedDeviceInfo() } runBlocking { bot.login() bot.join() } }
prepareEnvironmentForDebugRun()
和DebugRunHelper.newBot()
是位于jvmTest
的工具函数。为测试模块添加依赖
以 fix-protocol-version 为例,从 release 下载 jar,放在
mirai-core/src/jvmTest/lib
中。编辑
mirai-core/build.gradle.kts
,找到以下配置代码:findByName("jvmTest")?.apply { dependencies { // ... } }
在
dependencies
里添加:implementation(files("src/jvmTest/lib/fix-protocol-version-1.9.6.mirai2.jar")) implementation("org.asynchttpclient:async-http-client:2.12.3") // fix-protocol-version 的依赖项
配置 EncryptService
编辑
RunMirai.kt
,在DebugRunHelper.newBot()
之前手动注册 EncryptService。import net.mamoe.mirai.utils.Services import xyz.cssxsh.mirai.tool.KFCFactory fun main() { prepareEnvironmentForDebugRun() Services.register( EncryptService.Factory::class.qualifiedName!!, KFCFactory::class.qualifiedName!!, ) { KFCFactory(File("...")) } val bot = DebugRunHelper.newBot(...) }
添加运行配置
IDEA 点击 Edit Configurations,添加运行配置
注意 classpath of module 选择
mirai.mirai-core.jvmTest
,main class 为RunMirai.kt
的类名。保存之后直接运行即可。
注意:若准备提交 Pull Request,请注意不要提交
mirai-core/build.gradle.kts
的修改,我们只是临时修改构建配置,目的是登录测试。 -
RE: 无法连接到 mirai。请检查 mirai-api-http 是否启动,地址与端口是否正确。
你没有看到 mirai console 的 1 plugins enabled 吗,你根本没有安装 mirai-api-http 插件
-
console 插件接单
如题,接收小型中型插件定制需求,大型项目需要经本人评估后决定是否接单。
我写过的插件有 SuperCourseTimetableBot 和 OsuMapSuggester,都是长期维护的大型插件项目。
你可以自己决定完成后是否提供长期技术支持,需要额外支付长期维护费用。
如果有需求可以在论坛中私聊我或者发邮箱 beamiscool@qq.com。