- Conventions and Terminology
- Development Tools
Last updated 2020-05-20 by 2Xsaiko.
gradlew mergeJars downloadMcLibs. This will create A-merged.jar and .gradle/minecraft/libraries. You will need these for Matcher.
gradlew mergeJars downloadMcLibsagain. This will create B-merged.jar and grab new libraries (if there is any)
View -> Sort by Matched Status.
Auto Match Allto perform the initial matches.
You can grab a
mergedv2 distribution of yarn from the latest build for the A version from https://jenkins.modmuss50.me/job/FabricMC/job/yarn/ and then import these mappings (official → named) for easy understanding of the functionalities of old code, which enables easier matching.
Matching is a process that cannot be easily described. Essentially, there are three states:
Your goal is to make as many red entries yellow or green as possible. Matcher will generally get most things auto-matched, but occasional false positives (in the single digit) can happen.
The way asie did it is as follows, roughly:
Auto Match Allagain.
To not have to read obfuscated names, you can follow the initial parts of the “Updating Yarn” phase - that is, loading A Yarn mappings into Matcher - early.
matches/A-B.matchin the Intermediary repository.
java -Dstitch.counter=counter.txt -jar <path to stitch jar> updateIntermediary <path to A-merged.jar> <path to B-merged.jar> mappings/A.tiny mappings/B.tiny matches/A-B.match. This will use the match information to update the intermediary mappings, preserving mod call compatibility where possible, and will use the global counter so when two versions branching off the same version won't have intermediary conflicts (e.g. 20w14infinite and 20w14a)
Note: after the intermediary update, this step is no longer necessary, but you still need to remove outdated mappings.
mappings_official, with Type: Names, Target: A (left) and “Replace” checked.
gradlew importMappingsOfficialto import the mappings from
gradlew yarn. If Enigma works correctly, save the mappings in Enigma, then close Enigma.
Essentially, instead of stitch's updateIntermediary command, use generateIntermediary.