Bassebombecraft

Bassebombecraft

18.5k Downloads

Starting mod at server side fails due to attempt to load client side class: net/minecraft/client/MainWindow

Closed this issue · 4 comments

commented

Server-side stacktrace:

03May2020 12:20:05.228] [modloading-worker-2/ERROR] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Failed to register automatic subscribers. ModID: bassebombecraft, class bassebombecraft.BassebombeCraft
java.lang.NoClassDefFoundError: net/minecraft/client/MainWindow
	at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:1.8.0_211]
	at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) ~[?:1.8.0_211]
	at java.lang.Class.getConstructor0(Unknown Source) ~[?:1.8.0_211]
	at java.lang.Class.getConstructor(Unknown Source) ~[?:1.8.0_211]
	at net.minecraftforge.eventbus.api.EventListenerHelper.computeListenerList(EventListenerHelper.java:96) ~[eventbus-2.0.0-milestone.1-service.jar:?]
	at net.minecraftforge.eventbus.api.EventListenerHelper.getListenerListInternal(EventListenerHelper.java:63) ~[eventbus-2.0.0-milestone.1-service.jar:?]
	at net.minecraftforge.eventbus.api.EventListenerHelper.getListenerList(EventListenerHelper.java:48) ~[eventbus-2.0.0-milestone.1-service.jar:?]
	at net.minecraftforge.eventbus.EventBus.addToListeners(EventBus.java:228) ~[eventbus-2.0.0-milestone.1-service.jar:?]
	at net.minecraftforge.eventbus.EventBus.register(EventBus.java:221) ~[eventbus-2.0.0-milestone.1-service.jar:?]
	at net.minecraftforge.eventbus.EventBus.registerListener(EventBus.java:138) ~[eventbus-2.0.0-milestone.1-service.jar:?]
	at net.minecraftforge.eventbus.EventBus.lambda$registerClass$2(EventBus.java:72) ~[eventbus-2.0.0-milestone.1-service.jar:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[?:1.8.0_211]
	at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source) ~[?:1.8.0_211]
	at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source) ~[?:1.8.0_211]
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_211]
	at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_211]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_211]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[?:1.8.0_211]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[?:1.8.0_211]
	at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_211]
	at java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:1.8.0_211]
	at net.minecraftforge.eventbus.EventBus.registerClass(EventBus.java:72) ~[eventbus-2.0.0-milestone.1-service.jar:?]
	at net.minecraftforge.eventbus.EventBus.register(EventBus.java:112) ~[eventbus-2.0.0-milestone.1-service.jar:?]
	at net.minecraftforge.fml.AutomaticEventSubscriber.lambda$inject$3(AutomaticEventSubscriber.java:70) ~[?:?]
	at java.util.ArrayList.forEach(Unknown Source) ~[?:1.8.0_211]
	at net.minecraftforge.fml.AutomaticEventSubscriber.inject(AutomaticEventSubscriber.java:57) ~[?:?]
	at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:141) ~[?:31.1]
	at java.util.function.Consumer.lambda$andThen$0(Unknown Source) ~[?:1.8.0_211]
	at java.util.function.Consumer.lambda$andThen$0(Unknown Source) ~[?:1.8.0_211]
	at net.minecraftforge.fml.ModContainer.transitionState(ModContainer.java:112) ~[?:?]
	at net.minecraftforge.fml.ModList.lambda$null$10(ModList.java:134) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) [?:1.8.0_211]
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) [?:1.8.0_211]
	at java.util.stream.AbstractPipeline.copyInto(Unknown Source) [?:1.8.0_211]
	at java.util.stream.ForEachOps$ForEachTask.compute(Unknown Source) [?:1.8.0_211]
	at java.util.concurrent.CountedCompleter.exec(Unknown Source) [?:1.8.0_211]
	at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) [?:1.8.0_211]
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) [?:1.8.0_211]
	at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) [?:1.8.0_211]
	at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) [?:1.8.0_211]
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.MainWindow
	at java.lang.ClassLoader.findClass(Unknown Source) ~[?:1.8.0_211]
	at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_211]
	at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:101) ~[modlauncher-5.0.0-milestone.4.jar:?]
	at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_211]
	... 40 more
[03May2020 12:20:05.239] [Server thread/FATAL] [net.minecraftforge.fml.ModLoader/LOADING]: Failed to complete lifecycle event CONSTRUCT, 1 errors found
[03May2020 12:20:05.256] [Server thread/ERROR] [net.minecraft.server.MinecraftServer/]: Encountered an unexpected exception
net.minecraftforge.fml.LoadingFailedException: Loading errors encountered: [
	BasseBombeCraft Mod (bassebombecraft) has failed to load correctly
§7net/minecraft/client/MainWindow

commented

Debugging the class loading shows:

�[36m[13:02:55] [modloading-worker-2/DEBUG] [ne.mi.fm.AutomaticEventSubscriber/LOADING]: Auto-subscribing bassebombecraft.client.event.rendering.DecoyRenderer to FORGE
�[m[Loaded bassebombecraft.client.event.rendering.DecoyRenderer from __JVM_DefineClass__]
[Loaded net.minecraftforge.common.ForgeConfig from __JVM_DefineClass__]
[Loaded net.minecraftforge.common.ForgeConfig$Client from __JVM_DefineClass__]
[Loaded net.minecraftforge.common.ForgeConfig$$Lambda$2773/1287132591 from net.minecraftforge.common.ForgeConfig]
[Loaded net.minecraftforge.common.ForgeConfig$Server from __JVM_DefineClass__]
[Loaded net.minecraftforge.common.ForgeConfig$$Lambda$2774/1370288927 from net.minecraftforge.common.ForgeConfig]
�[36m[13:02:55] [modloading-worker-1/DEBUG] [ne.mi.fm.co.ConfigTracker/CONFIG]: Config file forge-client.toml for forge tracking
�[m�[36m[13:02:55] [modloading-worker-1/DEBUG] [ne.mi.fm.co.ConfigTracker/CONFIG]: Config file forge-server.toml for forge tracking
�[m[Loaded net.minecraftforge.eventbus.ASMEventHandler_7_ForgeConfig_onLoad_Loading from __JVM_DefineClass__]
[Loaded net.minecraftforge.eventbus.ASMEventHandler_8_ForgeConfig_onFileChange_Reloading from __JVM_DefineClass__]
[Loaded net.minecraftforge.common.ForgeMod$$Lambda$2775/744668502 from net.minecraftforge.common.ForgeMod]
[Loaded com.google.common.base.Ascii from file:/C:/Users/Thrane/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/21.0/3a3d111be1be1b745edfa7d91678a12d7ed38709/guava-21.0.jar]
[Loaded java.util.concurrent.CopyOnWriteArrayList$COWSubList from C:\Program Files\Java\jdk1.8.0_211\jre\lib\rt.jar]
�[36m[13:02:55] [modloading-worker-1/DEBUG] [ne.mi.fm.ja.FMLModContainer/LOADING]: Loaded mod instance forge of type net.minecraftforge.common.ForgeMod
�[m�[36m[13:02:55] [modloading-worker-1/DEBUG] [ne.mi.fm.ja.FMLModContainer/LOADING]: Injecting Automatic event subscribers for forge
�[m�[36m[13:02:55] [modloading-worker-1/DEBUG] [ne.mi.fm.AutomaticEventSubscriber/LOADING]: Attempting to inject @EventBusSubscriber classes into the eventbus for forge
�[m�[36m[13:02:55] [modloading-worker-1/DEBUG] [ne.mi.fm.ja.FMLModContainer/LOADING]: Completed Automatic event subscribers for forge
�[m[Loaded net.minecraftforge.client.event.RenderLivingEvent from __JVM_DefineClass__]
[Loaded net.minecraftforge.client.event.RenderLivingEvent$Pre from __JVM_DefineClass__]
[Loaded net.minecraftforge.client.event.RenderLivingEvent$Post from __JVM_DefineClass__]
�[36m[13:02:56] [modloading-worker-2/DEBUG] [ne.mi.fm.AutomaticEventSubscriber/LOADING]: Auto-subscribing bassebombecraft.client.event.rendering.DecreaseSizeEffectRenderer to FORGE
�[m[Loaded bassebombecraft.client.event.rendering.DecreaseSizeEffectRenderer from __JVM_DefineClass__]
�[36m[13:02:56] [modloading-worker-2/DEBUG] [ne.mi.fm.AutomaticEventSubscriber/LOADING]: Auto-subscribing bassebombecraft.client.event.rendering.IncreaseSizeEffectRenderer to FORGE
�[m[Loaded bassebombecraft.client.event.rendering.IncreaseSizeEffectRenderer from __JVM_DefineClass__]
�[36m[13:02:56] [modloading-worker-2/DEBUG] [ne.mi.fm.AutomaticEventSubscriber/LOADING]: Auto-subscribing bassebombecraft.client.event.rendering.RenderingEventHandler to FORGE
�[m[Loaded bassebombecraft.client.event.rendering.RenderingEventHandler from __JVM_DefineClass__]
[Loaded bassebombecraft.client.rendering.EntityRenderer from __JVM_DefineClass__]
[Loaded bassebombecraft.client.rendering.DefaultTeamRenderer from __JVM_DefineClass__]
[Loaded bassebombecraft.client.rendering.DefaultTargetEntityRenderer from __JVM_DefineClass__]
[Loaded bassebombecraft.client.rendering.DefaultBoundingBoxEntityRenderer from __JVM_DefineClass__]
[Loaded bassebombecraft.client.rendering.BoundingBoxRenderer from __JVM_DefineClass__]
[Loaded bassebombecraft.client.rendering.WireframeBoundingBoxRenderer from __JVM_DefineClass__]
[Loaded bassebombecraft.client.rendering.DefaultCharmedRenderer from __JVM_DefineClass__]
[Loaded bassebombecraft.client.rendering.DefaultLookAtBlockRenderer from __JVM_DefineClass__]
[Loaded bassebombecraft.client.rendering.DefaultBuildMineRenderer from __JVM_DefineClass__]
[Loaded bassebombecraft.client.rendering.HitByRayTraceBoundingBoxRenderer from __JVM_DefineClass__]
[Loaded net.minecraftforge.client.event.RenderGameOverlayEvent from __JVM_DefineClass__]
[Loaded net.minecraftforge.client.event.RenderWorldLastEvent from __JVM_DefineClass__]
[Loaded net.minecraftforge.client.event.DrawHighlightEvent from __JVM_DefineClass__]
[Loaded net.minecraftforge.client.event.DrawHighlightEvent$HighlightBlock from __JVM_DefineClass__]
[Loaded net.minecraftforge.eventbus.ASMEventHandler_9_RenderingEventHandler_handleRenderGameOverlayEvent_RenderGameOverlayEvent from __JVM_DefineClass__]
�[1;31m[13:02:56] [modloading-worker-2/FATAL] [ne.mi.fm.lo.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/MainWindow for invalid dist DEDICATED_SERVER
�[m�[1;31m[13:02:56] [modloading-worker-2/ERROR] [ne.mi.fm.ja.FMLModContainer/LOADING]: Failed to register automatic subscribers. ModID: bassebombecraft, class bassebombecraft.BassebombeCraft
java.lang.RuntimeException: Attempted to load class net/minecraft/client/MainWindow for invalid dist DEDICATED_SERVER

commented

It seems class loading of rendering class are triggered by the auto-subscription of bassebombecraft.client.event.rendering.DecoyRenderer.

Why is that class registered at server side?

The classes in the package bassebombecraft.client.event.rendering where the class DecoyRenderer resides should be registered manually by the method ClientProxy.setupClientSideRendering(..).

commented

Solution:

The class DecoyRenderer had the annotation @Mod.EventBusSubscriber which registered the class automatically also at server side. Instead of manually registering the renderer through the ClientProxy.setupClientSideRendering(..) method as intended. The annotation is removed.

commented

Resolved with commit c185dde.