Skip to content

NeoForge crash due to missing manifest attribute #27

@Lucraft

Description

@Lucraft

Hey, I've been trying to integrate Mocha into a multi-loader project. However when it's jar-jar'ed it causes a crash on NeoForge when used outside of dev:

java.util.concurrent.CompletionException: java.lang.IllegalAccessError: superinterface check failed: class team.unnamed.mocha.runtime.MolangFunctionImpl_ModifyIntFunction_modify_1989fe5dc32_5da (in module mocha) cannot access class net.threetag.palladium.client.variable.IntegerPathVariable$ModifyIntFunction (in module palladium) because module mocha does not read module palladium
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source) ~[?:?]
	at TRANSFORMER/minecraft@1.21.8/net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$prepareTasks$0(SimpleReloadInstance.java:65) ~[client-1.21.8-20250717.133445-srg.jar%23218!/:?]
	at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:?]
Caused by: java.lang.IllegalAccessError: superinterface check failed: class team.unnamed.mocha.runtime.MolangFunctionImpl_ModifyIntFunction_modify_1989fe5dc32_5da (in module mocha) cannot access class net.threetag.palladium.client.variable.IntegerPathVariable$ModifyIntFunction (in module palladium) because module mocha does not read module palladium
	at java.base/java.lang.ClassLoader.defineClass0(Native Method) ~[?:?]
	at java.base/java.lang.System$2.defineClass(Unknown Source) ~[?:?]
	at java.base/java.lang.invoke.MethodHandles$Lookup$ClassDefiner.defineClass(Unknown Source) ~[?:?]
	at java.base/java.lang.invoke.MethodHandles$Lookup$ClassDefiner.defineClass(Unknown Source) ~[?:?]
	at java.base/java.lang.invoke.MethodHandles$Lookup.defineClass(Unknown Source) ~[?:?]
	at LAYER PLUGIN/org.javassist@3.30.2-GA/javassist.util.proxy.DefineClassHelper.toClass(DefineClassHelper.java:295) ~[javassist-3.30.2-GA.jar%23242!/:?]
	at LAYER PLUGIN/org.javassist@3.30.2-GA/javassist.util.proxy.DefineClassHelper$Java11.defineClass(DefineClassHelper.java:48) ~[javassist-3.30.2-GA.jar%23242!/:?]
	at LAYER PLUGIN/org.javassist@3.30.2-GA/javassist.util.proxy.DefineClassHelper.toClass(DefineClassHelper.java:260) ~[javassist-3.30.2-GA.jar%23242!/:?]
	at LAYER PLUGIN/org.javassist@3.30.2-GA/javassist.ClassPool.toClass(ClassPool.java:1240) ~[javassist-3.30.2-GA.jar%23242!/:?]
	at LAYER PLUGIN/mocha@3.0.1/team.unnamed.mocha.runtime.MolangCompiler.compile(MolangCompiler.java:291) ~[mocha-3.0.1.jar%23239!/:?]
	at LAYER PLUGIN/mocha@3.0.1/team.unnamed.mocha.MochaEngineImpl.compile(MochaEngineImpl.java:186) ~[mocha-3.0.1.jar%23239!/:?]
	at LAYER PLUGIN/mocha@3.0.1/team.unnamed.mocha.MochaEngine.compile(MochaEngine.java:254) ~[mocha-3.0.1.jar%23239!/:?]
	at TRANSFORMER/palladium@5.0.0/net.threetag.palladium.client.variable.IntegerPathVariable.<init>(IntegerPathVariable.java:22) ~[palladium-neoforge-1.21.8.jar%23224!/:?]
	at TRANSFORMER/palladium@5.0.0/net.threetag.palladium.client.variable.EntityTickCountVariable.<init>(EntityTickCountVariable.java:16) ~[palladium-neoforge-1.21.8.jar%23224!/:?]

Did some digging and experimenting, and the problem is fixed when the following is added to Mocha's MANIFEST.MF:
FMLModType: GAMELIBRARY

Would it be possible to get built in?
Thanks in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions