#mod #兼容性 #目录 #jar #路径 #文件 #客户端

app mod-compatibility-checker

检查Minecraft服务器-客户端模组兼容性

1个不稳定版本

0.1.1 2022年12月2日

#874 in 游戏

MIT 许可证

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