Bassebombecraft

Bassebombecraft

18.5k Downloads

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

Closed this issue · 5 comments

commented

Server side stacktrace:

[20May2020 22:25:37.187] [modloading-worker-2/FATAL] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/renderer/WorldRenderer for invalid dist DEDICATED_SERVER
[20May2020 22:25:37.206] [modloading-worker-2/ERROR] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Failed to register automatic subscribers. ModID: bassebombecraft, class bassebombecraft.BassebombeCraft
java.lang.RuntimeException: Attempted to load class net/minecraft/client/renderer/WorldRenderer for invalid dist DEDICATED_SERVER
	at net.minecraftforge.fml.loading.RuntimeDistCleaner.processClass(RuntimeDistCleaner.java:71) ~[forge-1.15.2-31.1.0_mapped_snapshot_20200210-1.15.1-launcher.jar:31.1]
	at cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClass(ILaunchPluginService.java:103) ~[modlauncher-5.0.0-milestone.4.jar:5.0.0-milestone.4+67+b1a340b]
	at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:85) ~[modlauncher-5.0.0-milestone.4.jar:?]
	at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:115) ~[modlauncher-5.0.0-milestone.4.jar:?]
	at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:239) ~[modlauncher-5.0.0-milestone.4.jar:?]
	at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:126) ~[modlauncher-5.0.0-milestone.4.jar:?]
	at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:96) ~[modlauncher-5.0.0-milestone.4.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_211]
	at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:1.8.0_211]
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) ~[?:1.8.0_211]
	at java.lang.Class.getConstructor0(Class.java:3075) ~[?:1.8.0_211]
	at java.lang.Class.getConstructor(Class.java:1825) ~[?: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:?]


commented

See #759 and #757.

commented

Debugging the class loading shows:

�[m[Loaded bassebombecraft.client.event.frequency.FrequencyEventHandler from __JVM_DefineClass__]
[Loaded net.minecraftforge.eventbus.ASMEventHandler_10_FrequencyEventHandler_handleClientTickEvent_ClientTickEvent from __JVM_DefineClass__]
�[36m[22:35:09] [modloading-worker-2/DEBUG] [ne.mi.fm.AutomaticEventSubscriber/LOADING]: Auto-subscribing bassebombecraft.client.event.particle.ParticleRenderingEventHandler to FORGE
�[m[Loaded bassebombecraft.client.event.particle.ParticleRenderingEventHandler from __JVM_DefineClass__]
[Loaded net.minecraftforge.client.event.RenderWorldLastEvent from __JVM_DefineClass__]
[Loaded net.minecraftforge.eventbus.ASMEventHandler_11_ParticleRenderingEventHandler_handleRenderWorldLastEvent_RenderWorldLastEvent from __JVM_DefineClass__]
�[1;31m[22:35:09] [modloading-worker-2/FATAL] [ne.mi.fm.lo.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/renderer/WorldRenderer for invalid dist DEDICATED_SERVER
�[m�[1;31m[22:35:09] [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/renderer/WorldRenderer for invalid dist DEDICATED_SERVER
	at net.minecraftforge.fml.loading.RuntimeDistCleaner.processClass(RuntimeDistCleaner.java:71) ~[forge-1.15.2-31.1.0_mapped_snapshot_20200210-1.15.1-launcher.jar:31.1] {}
	at cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClass(ILaunchPluginService.java:103) ~[modlauncher-5.0.0-milestone.4.jar:5.0.0-milestone.4+67+b1a340b] {}

commented

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

commented

Solution:

Register the event handler with:
@Mod.EventBusSubscriber(Dist.CLIENT)

to limit loading client side.
For more info: https://mcforge.readthedocs.io/en/latest/events/intro/

commented

Resolved with commit ce5b255.