1个不稳定版本
0.1.1 | 2022年12月2日 |
---|
#874 in 游戏
18KB
323 行
mod-compatibility-checker
一个简单的Rust程序,用于检查模组兼容性。目前只支持1.12.2。
用法
执行 mod-compatibility-checker <你的模组目录>
或者直接将其放置在你的模组目录中并执行。
帮助信息
USAGE:
mod-compatibility-checker [OPTIONS] [PATH]
ARGS:
<PATH>
OPTIONS:
-d, --dirty Write a .sha or .strict-sha file in target directory
-h, --help Print help information
--strict Hash JAR file instead of modid:version lines
-v, --verbose List all the client-side mods or mods that accept all remote versions while
parsing
-V, --version Print version information
如果两个或多个模组目录输出相同的校验和,则它们是兼容的,可以自由组合。
原理
1.12.2:读取 META-INF/fml_cache_annotation.json
并获取注释值,标记所有仅客户端和 acceptableRemoteVersions = "*"
模组。
1.13+ Forge:读取 META-INF/mods.toml
并筛选具有 [[dependencies.modid]] side="CLIENT"
Fabric:读取 fabric.mod.json
并筛选具有 environment: client
的模组。
如果开启严格模式,则读取 modid:version
行或JAR文件。
待办事项
- 进一步优化性能
- 支持1.7.10
- 支持1.13+
- 支持Fabric
基准测试
模组包 | 平均时间 | 严格模式下的平均时间 |
---|---|---|
Nomifactory | 194.1 ms | 245.3 ms |
Enigmatica 2 Expert Skyblock | 270.7 ms | 402.4 ms |
FTB Revelation | 304.5 ms | 493.5 ms |
FTB University 1.12 | 338.5 ms | 478.0 ms |
致谢
BLAKE3 为快速散列。
hyperfine 为基准测试。
依赖项
~53MB
~336K SLoC