Fabrication 1.17.1 3.4.18 contains a library that incorrectly states that it requires Java 17
TigerWalts opened this issue ยท 3 comments
Fabric and Mods
- Minecraft: 1.17.1
- Loader: 0.15.11
- API: 0.46.1
- Fabrication: 3.4.18 (Seen as early as 3.1.3)
Description
Fabric fails to start due to the lib93-deferral
library containing a lib39-deferral.mixins.json
file that declares that it needs Java 17.
{
"required": true,
"minVersion": "0.8",
"package": "com.unascribed.lib39.deferral.mixin",
"compatibilityLevel": "JAVA_17",
"refmap": "lib39-deferral-refmap.json",
"client": [
"AccessorRenderSystem",
"MixinWindow"
],
"injectors": {
"defaultRequire": 1
}
}
The library is packaged inside the Fabrication mod at META-INF/jars/lib39-deferral-1.3.2+j16.jar
.
Editing the lib39-deferral.mixins.json
file inside and setting compatibilityLevel
to JAVA_16
will let Fabric start.
latest.log
java.lang.RuntimeException: Error creating Mixin config lib39-deferral.mixins.json for mod lib39-deferral
...
Caused by: org.spongepowered.asm.launch.MixinInitialisationError: Error initialising mixin config lib39-deferral.mixins.json
...
Caused by: java.lang.IllegalArgumentException: The requested compatibility level JAVA_17 could not be set. Level is not supported by the active JRE or ASM version (Java 16.0, ASM 9.6 (ASM10_EXPERIMENTAL))
Unfortunately this is not possible with all launchers.
The CurseForge App sets up the Fabric version in the Minecraft launcher by having the fabric-loader-0.15.11-1.17.1.json
inherit settings from the 1.17.1.json
and not overriding the Java version.
There's no way in the CurseForge UI to set an override. The file is overwritten each time CurseForge launches a modpack so any manual edits are lost. Setting the file to read-only after making the change will make CurseForge prevent the launch. So users have to make the change every time they launch.