Cable Tiers

Cable Tiers

25M Downloads

Interacting with filters attempts to load GUI on dedicated server

SirTremain opened this issue ยท 2 comments

commented

When connected to a dedicated server, interacting with the item filters after an item has been set attempts to load net/minecraft/client/gui/screens/Screen on the dedicated server. This causes the interaction to fail, thus it is impossible to change the filters at all after they have been set. This does not occur when interacting with filters on a default Refined Storage Exporter.

I suspect the window that should appear when interacting with the filter is being loaded on the dedicated server instead of the client. As the dedicated server is unable to load this window, the interaction fails.

This was found while playing All the Mods 10, however it was reproduced using a test client and server which ONLY had Refined Storage and Cable Tiers mods installed.

NOTE: This is NOT reproducible in a single player world. It only occurs while attempting to interact with the filters when connected to a dedicated server.

Installed versions:

Java: OpenJDK 21.0.6
Minecraft: 1.12.1
Neoforge: 21.1.148
Cable Tiers: cabletiers-neoforge-1.21.1-0.1.1
Refined Storage: refinedstorage-neoforge-2.0.0-beta.2

Steps to reproduce:

  1. Install a Neoforge 21.1.128 minecraft server running Minecraft 1.12.1.
  2. Add the mods cabletiers-neoforge-1.21.1-0.1.1 and refinedstorage-neoforge-2.0.0-beta.2 to the server.
  3. Create a minecraft modded client running the same versions of Minecraft, nerforge, and the two mods.
  4. Start the dedicated server.
  5. Connect to the dedicated server using the modded client above.
  6. Place down any exporter from the Cable Tiers mod eg. Ultra Exporter.
  7. Place any item into the filters.
  8. Attempt to interact with or remove the filter.
  9. The interaction fails and the bug is reproduced.

Raw log output from the Dedicated Server (when attempting to interact with filters as a client):

[08:33:41] [Server thread/ERROR] [ne.ne.ne.ne.re.NetworkRegistry/]: Failed to process a synchronized task of the payload: refinedstorage:resource_slot_change
java.util.concurrent.CompletionException: java.lang.RuntimeException: Attempted to load class net/minecraft/client/gui/screens/Screen for invalid dist DEDICATED_SERVER
        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/[email protected]/net.minecraft.server.TickTask.run(TickTask.java:18) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading}
        at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:148) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading,pl:accesstransformer:B}
        at TRANSFORMER/[email protected]/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading}
        at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:872) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading,pl:accesstransformer:B}
        at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:170) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading,pl:accesstransformer:B}
        at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:122) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading,pl:accesstransformer:B}
        at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:855) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading,pl:accesstransformer:B}
        at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:849) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading,pl:accesstransformer:B}
        at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:111) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading,pl:accesstransformer:B}
        at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:825) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading,pl:accesstransformer:B}
        at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:712) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading,pl:accesstransformer:B}
        at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:267) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading,pl:accesstransformer:B}
        at java.base/java.lang.Thread.run(Unknown Source) [?:?] {}
Caused by: java.lang.RuntimeException: Attempted to load class net/minecraft/client/gui/screens/Screen for invalid dist DEDICATED_SERVER
        at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.common.asm.RuntimeDistCleaner.processClassWithFlags(RuntimeDistCleaner.java:60) ~[loader-4.0.38.jar%2360!/:4.0] {}
        at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:94) ~[modlauncher-11.0.4.jar%2362!/:?] {}
        at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-11.0.4.jar%2362!/:?] {}
        at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:57) ~[modlauncher-11.0.4.jar%2362!/:?] {}
        at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:190) ~[securejarhandler-3.0.8.jar:?] {}
        at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.lambda$findClass$20(ModuleClassLoader.java:298) ~[securejarhandler-3.0.8.jar:?] {}
        at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:311) ~[securejarhandler-3.0.8.jar:?] {}
        at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:298) ~[securejarhandler-3.0.8.jar:?] {}
        at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:214) ~[securejarhandler-3.0.8.jar:?] {}
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?] {}
        at TRANSFORMER/[email protected]/com.ultramega.cabletiers.common.advancedfilter.AdvancedResourceSlot.change(AdvancedResourceSlot.java:39) ~[cabletiers-neoforge-1.21.1-0.1.1.jar%23123!/:?] {re:classloading}
        at TRANSFORMER/[email protected]/com.refinedmods.refinedstorage.common.support.containermenu.AbstractResourceContainerMenu.lambda$handleResourceSlotChange$2(AbstractResourceContainerMenu.java:54) ~[refinedstorage-neoforge-2.0.0-beta.2.jar%23124!/:?] {re:classloading}
        at java.base/java.util.Optional.ifPresent(Unknown Source) ~[?:?] {}
        at TRANSFORMER/[email protected]/com.refinedmods.refinedstorage.common.support.containermenu.AbstractResourceContainerMenu.handleResourceSlotChange(AbstractResourceContainerMenu.java:54) ~[refinedstorage-neoforge-2.0.0-beta.2.jar%23124!/:?] {re:classloading}
        at TRANSFORMER/[email protected]/com.refinedmods.refinedstorage.common.support.packet.c2s.ResourceSlotChangePacket.handle(ResourceSlotChangePacket.java:26) ~[refinedstorage-neoforge-2.0.0-beta.2.jar%23124!/:?] {re:classloading}
        at TRANSFORMER/[email protected]/com.refinedmods.refinedstorage.neoforge.ModInitializer.lambda$wrapHandler$45(ModInitializer.java:936) ~[refinedstorage-neoforge-2.0.0-beta.2.jar%23124!/:?] {re:classloading}
        at TRANSFORMER/[email protected]/net.neoforged.neoforge.network.handling.MainThreadPayloadHandler.lambda$handle$0(MainThreadPayloadHandler.java:16) ~[neoforge-21.1.148-universal.jar%23122!/:?] {re:classloading}
        at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:60) ~[server-1.21.1-20240808.144430-srg.jar%23121!/:?] {re:classloading,pl:accesstransformer:B}
        ... 14 more

Server startup logs (with proof only those mods were loaded):

[08:32:55.462] [main/INFO] [Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.neoForgeVersion, 21.1.148, --fml.fmlVersion, 4.0.38, --fml.mcVersion, 1.21.1, --fml.neoFormVersion, 20240808.144430] 
[08:32:55.464] [main/INFO] [Launcher/MODLAUNCHER]: JVM identified as Eclipse Adoptium OpenJDK 64-Bit Server VM 21.0.6+7-LTS 
[08:32:55.465] [main/INFO] [Launcher/MODLAUNCHER]: ModLauncher 11.0.4+main.d2e20e43 starting: java version 21.0.6 by Eclipse Adoptium; OS Linux arch amd64 version 6.6.78-Unraid 
[08:32:55.537] [main/INFO] [loading.ImmediateWindowHandler/]: ImmediateWindowProvider not loading because launch target is forgeserver 
[08:32:55.569] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.7 Source=union:/data/libraries/net/fabricmc/sponge-mixin/0.15.2+mixin.0.8.7/sponge-mixin-0.15.2+mixin.0.8.7.jar%2375!/ Service=ModLauncher Env=SERVER 
[08:32:55.728] [main/INFO] [loading.moddiscovery.ModDiscoverer/SCAN]: Found mod file "server-1.21.1-20240808.144430-srg.jar" [locator: production server provider +net.neoforged:neoforge:21.1.148:server] 
[08:32:55.743] [main/INFO] [loading.moddiscovery.ModDiscoverer/SCAN]: Found mod file "neoforge-21.1.148-universal.jar" [locator: PathBasedLocator[name=neoforge, paths=[libraries/net/neoforged/neoforge/21.1.148/neoforge-21.1.148-universal.jar]], reader: mod manifest] 
[08:32:55.749] [main/INFO] [loading.moddiscovery.ModDiscoverer/SCAN]: Found mod file "cabletiers-neoforge-1.21.1-0.1.1.jar" [locator: {mods folder locator at /data/mods}, reader: mod manifest] 
[08:32:55.755] [main/INFO] [loading.moddiscovery.ModDiscoverer/SCAN]: Found mod file "refinedstorage-neoforge-2.0.0-beta.2.jar" [locator: {mods folder locator at /data/mods}, reader: mod manifest] 
[08:32:55.825] [main/INFO] [loading.moddiscovery.locators.JarInJarDependencyLocator/]: Found 2 dependencies adding them to mods collection 
[08:32:55.825] [main/INFO] [loading.moddiscovery.ModDiscoverer/SCAN]: Found gamelibrary file "mixinextras-neoforge-0.4.1.jar" [parent: neoforge-21.1.148-universal.jar, locator: jarinjar, reader: mod manifest] 
[08:32:55.826] [main/INFO] [loading.moddiscovery.ModDiscoverer/SCAN]: Found library file "neoforge-coremods-21.1.148.jar" [parent: neoforge-21.1.148-universal.jar, locator: jarinjar, reader: mod manifest] 
[08:32:55.826] [main/INFO] [loading.moddiscovery.ModDiscoverer/]: 
     Mod List:
                Name Version (Mod Id)

                Cable Tiers 1.21.1-0.1.1 (cabletiers)
                Minecraft 1.21.1 (minecraft)
                NeoForge 21.1.148 (neoforge)
                Refined Storage 2.0.0-beta.2 (refinedstorage) 
[08:32:56.056] [main/INFO] [mixin/]: Compatibility level set to JAVA_17 
[08:32:56.063] [main/INFO] [LaunchServiceHandler/MODLAUNCHER]: Launching target 'forgeserver' with arguments []

Curseforge modpack used to reproduce:

Image

commented

Also having the same issue.