CompleteConfig

CompleteConfig

487k Downloads

Incompatibility with Fabric Loader 0.15.0

arvitus opened this issue · 15 comments

commented

For some reason the Fabric Loader 0.15.0 breaks something which won't let the server start.
MC v1.20.2
completeconfig v2.5.1
Fabric Loader v0.15.0

Error:

[22:18:56] [main/ERROR]: Failed to start the minecraft server
java.lang.RuntimeException: Could not execute entrypoint stage 'main' due to errors, provided by 'f2d'!
        at net.fabricmc.loader.impl.FabricLoaderImpl.lambda$invokeEntrypoints$2(FabricLoaderImpl.java:388) ~[fabric-loader-0.15.0.jar:?]
        at net.fabricmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33) ~[fabric-loader-0.15.0.jar:?]
        at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:386) ~[fabric-loader-0.15.0.jar:?]
        at net.fabricmc.loader.impl.game.minecraft.Hooks.startServer(Hooks.java:63) ~[fabric-loader-0.15.0.jar:?]
        at net.minecraft.server.Main.main(Main.java:109) ~[server-intermediary.jar:?]
        at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.0.jar:?]
        at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.15.0.jar:?]
        at net.fabricmc.loader.impl.launch.knot.KnotServer.main(KnotServer.java:23) ~[fabric-loader-0.15.0.jar:?]
        at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:69) ~[fabric-loader-0.15.0.jar:?]
Caused by: java.lang.NoSuchFieldError: checkbox
        at me.lortseam.completeconfig.data.BooleanEntry.<init>(BooleanEntry.java:25) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.Entry.create(Entry.java:42) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.EntrySet.lambda$resolve$1(EntrySet.java:31) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
        at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
        at me.lortseam.completeconfig.data.EntrySet.resolve(EntrySet.java:32) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.Parent.resolveContainer(Parent.java:58) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.ClusterSet.resolve(ClusterSet.java:13) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.Parent.resolve(Parent.java:108) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.Parent.lambda$resolveContainer$6(Parent.java:97) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
        at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
        at me.lortseam.completeconfig.data.Parent.resolveContainer(Parent.java:97) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.ClusterSet.resolve(ClusterSet.java:13) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.Parent.resolve(Parent.java:108) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.Parent.lambda$resolveContainer$6(Parent.java:97) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
        at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
        at me.lortseam.completeconfig.data.Parent.resolveContainer(Parent.java:97) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.Parent.resolve(Parent.java:110) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.Config.lambda$new$0(Config.java:52) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.Config.deserialize(Config.java:94) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at me.lortseam.completeconfig.data.Config.load(Config.java:121) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]
        at space.ryzhenkov.fabric2discord.F2D.onInitialize(F2D.kt:20) ~[f2d-2.3.0+1.20.2.jar:?]
        at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:384) ~[fabric-loader-0.15.0.jar:?]
        ... 6 more

Note that this error was raised by the fabric2discord mod, but the error itself comes from completeconfig.
Caused by: java.lang.NoSuchFieldError: checkbox at me.lortseam.completeconfig.data.BooleanEntry.<init>(BooleanEntry.java:25) ~[completeconfig-base-2.5.1-3109ea5b852c6727.jar:?]

Fabric Loader 0.14.25 works just fine.
Changes in 0.15.0

commented

It does work on 1.20.1 and 1.20.2. It's just tagged wrongly to say it's for 1.20.4. as it's for a ton of versions

@Lortseam Any chance of this being fixed? You've just got to change that on CurseForge and Modrinth, right?

commented

Fixed in v2.5.2, thank you for reporting.

commented

Hi! Exactly the same problem! In my case, I use a different mod and CC version 2.5.0, but it doesn't change the essence, I can't start the server for the same reason! Hopefully this can be easily fixed soon!

commented

For the time being you can just use Fabric Loader 0.14.25

commented

I did some digging and found out that the error is probably related to the @Environment annotation on the checkbox constant in BooleanEntry.

The Javadoc of the @Environment annotation tells us

Use with caution, as Fabric-loader will remove the annotated element in a mismatched environment!
When the annotated element is removed, bytecode associated with the element will not be removed. For example, if a field is removed, its initializer code will not, and will cause an error on execution.

which is probably exactly what happened because it's a java.lang.NoSuchFieldError error.
I just don't know what exactly a mismatched environment means or how that could be solved differently, so I can't create a PR. Yet.
Hope that helps.

commented

Can you compile a 1.19.2 version for this fix please? We have the problem too in combination with CustomPortals.

commented

sorry, @dakiba I completely forgot it. Do you still need the 1.19.2 version?

commented

not directly. we use now a another portals mod. But the developer from customportals look into that too. I don't know if it is worth the effort? Palyon-dev/CustomPortals#19 (comment)

commented

Could you make a fix for 1.20.1? Ran into the same issue using 2.5.0.

commented

@Cataratas what keeps you from using v2.5.2 which fixes the issue?

commented

it should, yes

commented

That supports 1.20.1? It's not listed on curseforge that it does. I'll try that.

commented

It does work on 1.20.1 and 1.20.2. It's just tagged wrongly to say it's for 1.20.4. as it's for a ton of versions

commented

Fixed in v2.5.2, thank you for reporting.

Can you please also fix it for 1.19(.2)

commented

It does work on 1.20.1 and 1.20.2. It's just tagged wrongly to say it's for 1.20.4. as it's for a ton of versions

@Lortseam Any chance of this being fixed? You've just got to change that on CurseForge and Modrinth, right?

Done