Loom 能够半自动地升级 Java 代码库中使用的映射。因为 Yarn 经常改动,所以这个工具对于令代码库与最新的改动同步更新来讲非常有用。
注意:Mixin 和反射目前不能自动处理 ,需要手动更新。
假如你想要从 1.14.4 迁移到 19w46b。
gradlew migrateMappings --mappings "19w46b+build.1"
remappedSrc
,检验一下迁移生成的代码是否有效。remappedSrc
中的源代码复制到原本的文件夹。记得先备份原本的源代码,以防万一。--input path/to/source
指定从哪里获取 Java 源文件,默认是 src/main/java
。--output path/to/output
指定重新映射的源代码输出到哪,默认是 remappedSrc
。--mappings some_group:some_artifact:some_version:some_qualifier
自定义获取映射的位置,默认是 net.fabricmc:yarn:<version-you-inputted>:v2
。使用 net.minecraft:mappings:<minecraft-version>
来迁移到 Mojang 官方混淆映射。需要一点 assembly。
net.fabricmc:yarn:1.14.1 Pre-Release 2+build.2
。minecraft
和 mappings
的值改成新版本,再运行任意一个 Gradle 命令(gradle build
就行,即使它会报错),然后把这两项改回来。gradle migrateMappings -PtargetMappingsArtifact="net.fabricmc:yarn:1.14.1 Pre-Release 2+build.2" -PinputDir=src/main/java -PoutputDir=remappedSrc
,其中:targetMappingsArtifact
是指要迁移到的映射版本。运行这条命令时,必须把 build.gradle 设置为 mod 当前的映射版本!inputDir
是输入目录,包含 Java 源代码。outputDir
是输出目录,如果不存在会被创建。注意:如果报错说找不到文件,试试把完整路径放在引号里。
鉴于我们还没有大规模地破坏中介(Intermediary)或者做类似的傻事(一般来说),以上方法应该在所有的 Minecraft 版本上都通用。