Fabrication

Fabrication

305k Downloads

Fabrication 1.17.1 3.4.18 contains a library that incorrectly states that it requires Java 17

TigerWalts opened this issue ยท 3 comments

commented

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))
commented
commented

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.

commented