|
|
本帖最后由 门捷列夫 于 2026-10-18 14:21 编辑
MinziAddon有外网交互的功能就这 4 处,都汇聚在 LicenseClient
整个 addon 的 HTTP 客户端只有 LicenseClient 一个(LicenseClient.java:46),全部请求走同一个后端 mc2.rhymc.com:26541,端点有 3
个(/api/verify、/api/gateway/scan、/api/stash/record)。除了它,代码里没有任何别的 HttpClient/Socket/URLConnection。真正"干活"的网络功能是这些:
1. HWID 授权验证(启动时 + 周期心跳)
- 触发:MinziAddon.onInitialize()(MinziAddon.java:29)和后台定时器 startPeriodicRecheck()(MinziAddon.java:116-120,每 heartbeatIntervalSeconds 秒调一次 hwid())
- 行为:把设备指纹(jarHash、runtimeHash、nonce、系统信息)POST 到 /api/verify(LicenseClient.java:70-74),验签通过才算"授权机器"
- 后果很硬:验不过直接 Runtime.getRuntime().halt(1) 杀进程;心跳失败也一样自毁(MinziAddon.java:185-194)。这是防盗版的强制门槛,不是可选功能
2. 折跃门扫描(就是我们聊的那个 end-gateway-finder)
- 触发:开启"End ReturnGateway Finder"时(EndGatewayFinderModule.java:296-303),带 seed+玩家坐标+半径请求 /api/gateway/scan
3. 仓库记录云上传(两个模块)
- StashRecordCloudModule(stash-record-plus-cloud,"Always-on cloud-backed"):addon 加载时就自动激活(MinziAddon.java:84-87 直接 onActivate()),然后每 200 tick
上传一次(StashRecordCloudModule.java:84-87),换服务器/换维度立刻触发上传。上传内容是"附近所有 ≥8
个储物方块的区块坐标+计数"(scanStorages,L96-120),并带服务器地址、维度、玩家名、时间戳。它只传坐标和数量。此功能无法关闭!
- StashRecordPlusModule(手动版):用户开启后按快照上传(StashRecordPlusModule.java:732)。
4. 所有其他模块不碰网络
ElytraFly/Xin、Printer、BaseFinder、TerminatorHudShader、AutoLogin 等全部只通过 LicensePhaseGate 本地开关(isLocked/isUnlocked)检查授权,不产生请求。网络全在 LicenseClient
一层收口。
|
|