![CompleteConfig](https://media.forgecdn.net/avatars/thumbnails/327/448/256/256/637449477940450528.png)
Incompatibility with Fabric Loader 0.15.0
arvitus opened this issue · 15 comments
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
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?
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!
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.
Can you compile a 1.19.2 version for this fix please? We have the problem too in combination with CustomPortals.
sorry, @dakiba I completely forgot it. Do you still need the 1.19.2 version?
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)
@Cataratas what keeps you from using v2.5.2 which fixes the issue?
That supports 1.20.1? It's not listed on curseforge that it does. I'll try that.
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
Fixed in v2.5.2, thank you for reporting.
Can you please also fix it for 1.19(.2)
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