To compile for all the modloaders Avoid supports, compromises have to be done. Either I suffer, or Avoid devs suffer.
Why?
Modern Non-Fabric loaders use mojmap - not intermediary or srg. Therefore, mods that build for fabric <=1.21.11, and use minecraft classes, will not work on other loaders.
Solution
- Set
productionNamespace as NAMED in Avoid-Mod-Template
- Remap Avoid addons' code on Fabric <=1.21.11
Remapping: before-mods
-
Get the version name with SharedConstants.getVersion().name()
-
Fetch, cache and parse https://raw.githubusercontent.com/FabricMC/intermediary/refs/heads/master/mappings/{$versionName}.tiny
-
- If mojang version mappings cached:
- If fresh:
- fetch & parse the Mojang versions manifest
- resolve, then fetch & parse the current version manifest
- resolve, then fetch, cache and parse the current version mojmaps
Remapping: mod-class-loader
- convert into OBFUSCATED (<- intermediary)
- convert into MOJMAP
To compile for all the modloaders Avoid supports, compromises have to be done. Either I suffer, or Avoid devs suffer.
Why?
Modern Non-Fabric loaders use mojmap - not intermediary or srg. Therefore, mods that build for fabric <=1.21.11, and use minecraft classes, will not work on other loaders.
Solution
productionNamespaceasNAMEDin Avoid-Mod-TemplateRemapping: before-mods
Get the version name with
SharedConstants.getVersion().name()Fetch, cache and parse
https://raw.githubusercontent.com/FabricMC/intermediary/refs/heads/master/mappings/{$versionName}.tinyRemapping: mod-class-loader