OptiFabric

OptiFabric

9M Downloads

Trying and failing to use OptiFabric in a dev environment

james090500 opened this issue ยท 5 comments

commented

I am trying to use OptiFabric in my dev environment to fix some bugs.

I have tried specifying these two jars as well to no avail.

image

[00:38:49] [main/INFO] (FabricLoader/Mixin) SpongePowered MIXIN Subsystem Version=0.8.4 Source=file:/C:/Users/james/.gradle/caches/modules-2/files-2.1/net.fabricmc/sponge-mixin/0.10.7+mixin.0.8.4/7a4ca9d54d9ae564dea0363d668036a8420ed9b8/sponge-mixin-0.10.7+mixin.0.8.4.jar Service=Knot/Fabric Env=CLIENT
[00:38:49] [main/INFO] (FabricLoader/Mixin) Loaded Fabric development mappings for mixin remapper!
[00:38:49] [main/INFO] (FabricLoader/Mixin) Compatibility level set to JAVA_16
[00:38:49] [main/INFO] (FabricLoader/Mixin) Compatibility level set to JAVA_17
Setting up optifine for the first time, this may take a few seconds.
Failed to setup optifine:
java.lang.AssertionError: Unable to find Minecraft dev jar! Tried C:\Users\james\IdeaProjects\WorldEditCUI\.gradle\loom-cache\1.18.1\loom.mappings.1_18_1.layered+hash.2192-v2\minecraft-1.18.1-client.jar, C:\Users\james\IdeaProjects\WorldEditCUI\.gradle\loom-cache\1.18.1\minecraft-1.18.1-client.jar and C:\Users\james\IdeaProjects\WorldEditCUI\.gradle\loom-cache\1.18.1\minecraft-client.jar
Please supply it explicitly with -Doptifabric.mc-jar
	at me.modmuss50.optifabric.mod.OptifineSetup.getMinecraftJar(OptifineSetup.java:350)
	at me.modmuss50.optifabric.mod.OptifineSetup.getRuntime(OptifineSetup.java:98)
	at me.modmuss50.optifabric.mod.OptifabricSetup.run(OptifabricSetup.java:43)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at com.chocohead.mm.Plugin.getMixins(Plugin.java:340)
	at org.spongepowered.asm.mixin.transformer.PluginHandle.getMixins(PluginHandle.java:128)
	at org.spongepowered.asm.mixin.transformer.MixinConfig.postInitialise(MixinConfig.java:796)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:568)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:462)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:438)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:290)
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234)
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202)
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:247)
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:150)
	at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:155)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:467)
	at net.fabricmc.loader.impl.util.DefaultLanguageAdapter.create(DefaultLanguageAdapter.java:50)
	at net.fabricmc.loader.impl.entrypoint.EntrypointStorage$NewEntry.getOrCreate(EntrypointStorage.java:117)
	at net.fabricmc.loader.impl.entrypoint.EntrypointContainerImpl.getEntrypoint(EntrypointContainerImpl.java:53)
	at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:47)
	at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke(EntrypointUtils.java:35)
	at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:157)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:71)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)
commented

It's not the local project cached jars you want but the global Gradle cache ones, when there's access wideners it's hard to find them sometimes. I think in your case what you want is -Doptifabric.mc-jar=C:/Users/james/.gradle/caches/fabric-loom/1.18.1/minecraft-client.jar.

commented

This works, we got a little futher but now a crash.. Unsure if this is related to my dev environment

Found existing patched optifine jar, using that
[12:42:48] [main/ERROR] (FabricLoader) Minecraft has crashed!
 net.fabricmc.loader.impl.FormattedException: java.lang.ExceptionInInitializerError
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:604) ~[fabric-loader-0.12.11.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:77) [fabric-loader-0.12.11.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.12.11.jar:?]
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]
Caused by: java.lang.ExceptionInInitializerError
	at net.minecraft.CrashReport.getFriendlyReport(CrashReport.java:173) ~[[email protected]:?]
	at net.minecraft.CrashReport.preload(CrashReport.java:343) ~[[email protected]:?]
	at net.minecraft.client.main.Main.main(Main.java:145) ~[[email protected]:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:602) ~[fabric-loader-0.12.11.jar:?]
	... 3 more
Caused by: java.lang.RuntimeException: Mixin transformation of net.minecraft.client.KeyboardHandler failed
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:252) ~[fabric-loader-0.12.11.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:150) ~[fabric-loader-0.12.11.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:155) ~[fabric-loader-0.12.11.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
	at java.lang.Class.getDeclaredFields0(Native Method) ~[?:?]
	at java.lang.Class.privateGetDeclaredFields(Class.java:3297) ~[?:?]
	at java.lang.Class.getDeclaredFields(Class.java:2371) ~[?:?]
	at net.optifine.reflect.FieldLocatorTypes.<init>(FieldLocatorTypes.java:25) ~[Optifine-mapped.jar:?]
	at net.optifine.reflect.Reflector.<clinit>(Reflector.java:502) ~[Optifine-mapped.jar:?]
	at net.minecraft.CrashReport.getFriendlyReport(CrashReport.java:173) ~[[email protected]:?]
	at net.minecraft.CrashReport.preload(CrashReport.java:343) ~[[email protected]:?]
	at net.minecraft.client.main.Main.main(Main.java:145) ~[[email protected]:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:602) ~[fabric-loader-0.12.11.jar:?]
	... 3 more
Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:392) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:247) ~[fabric-loader-0.12.11.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:150) ~[fabric-loader-0.12.11.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:155) ~[fabric-loader-0.12.11.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
	at java.lang.Class.getDeclaredFields0(Native Method) ~[?:?]
	at java.lang.Class.privateGetDeclaredFields(Class.java:3297) ~[?:?]
	at java.lang.Class.getDeclaredFields(Class.java:2371) ~[?:?]
	at net.optifine.reflect.FieldLocatorTypes.<init>(FieldLocatorTypes.java:25) ~[Optifine-mapped.jar:?]
	at net.optifine.reflect.Reflector.<clinit>(Reflector.java:502) ~[Optifine-mapped.jar:?]
	at net.minecraft.CrashReport.getFriendlyReport(CrashReport.java:173) ~[[email protected]:?]
	at net.minecraft.CrashReport.preload(CrashReport.java:343) ~[[email protected]:?]
	at net.minecraft.client.main.Main.main(Main.java:145) ~[[email protected]:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:602) ~[fabric-loader-0.12.11.jar:?]
	... 3 more
Caused by: java.util.NoSuchElementException
	at com.google.common.collect.MoreCollectors$ToOptionalState.getElement(MoreCollectors.java:162) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.collect.MoreCollectors.lambda$static$1(MoreCollectors.java:74) ~[guava-31.0.1-jre.jar:?]
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:686) ~[?:?]
	at me.modmuss50.optifabric.patcher.fixes.KeyboardFix.fix(KeyboardFix.java:28) ~[OptiFabric-llama-SNAPSHOT.jar:?]
	at me.modmuss50.optifabric.mod.OptifineInjector.lambda$null$0(OptifineInjector.java:66) ~[OptiFabric-llama-SNAPSHOT.jar:?]
	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
	at me.modmuss50.optifabric.mod.OptifineInjector.lambda$setup$1(OptifineInjector.java:66) ~[OptiFabric-llama-SNAPSHOT.jar:?]
	at com.chocohead.mm.Extension.preApply(Extension.java:40) ~[Fabric-ASM-v2.3.jar:?]
	at org.spongepowered.asm.mixin.transformer.ext.Extensions.preApply(Extensions.java:156) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.TargetClassContext.preApply(TargetClassContext.java:413) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:401) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:247) ~[fabric-loader-0.12.11.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:150) ~[fabric-loader-0.12.11.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:155) ~[fabric-loader-0.12.11.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
	at java.lang.Class.getDeclaredFields0(Native Method) ~[?:?]
	at java.lang.Class.privateGetDeclaredFields(Class.java:3297) ~[?:?]
	at java.lang.Class.getDeclaredFields(Class.java:2371) ~[?:?]
	at net.optifine.reflect.FieldLocatorTypes.<init>(FieldLocatorTypes.java:25) ~[Optifine-mapped.jar:?]
	at net.optifine.reflect.Reflector.<clinit>(Reflector.java:502) ~[Optifine-mapped.jar:?]
	at net.minecraft.CrashReport.getFriendlyReport(CrashReport.java:173) ~[[email protected]:?]
	at net.minecraft.CrashReport.preload(CrashReport.java:343) ~[[email protected]:?]
	at net.minecraft.client.main.Main.main(Main.java:145) ~[[email protected]:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:602) ~[fabric-loader-0.12.11.jar:?]
	... 3 more
Disconnected from the target VM, address: '127.0.0.1:63443', transport: 'socket'

Process finished with exit code 1

commented

This is almost certainly from running with Mojang's mappings, I never tried that so could quite believe there'd be some undiscovered issues still. Should be easy enough to fix, but in the meantime if you're eager to make progress you should be able to add nameSyntheticMembers = false to the layered mappings to get past this (see FabricMC/fabric-loom#538). It sets the stack to avoid renaming lambdas and other synthetic methods which otherwise wouldn't have non-Intermediary names, which is the presumption OptiFabric is clearly making to cause that crash, and will be default behaviour come Loom 0.11.

commented

debug.log

Slightly different error this time.

commented

No response and I can't figure it out