Skip to content

Error when opening most UIs in spectator mode #349

Description

@Da-Technomancer

Describe the bug
Opening most Crossroads UIs in spectator mode causes a networking error on the client-side rather than opening the UI.

To Reproduce [Optional]
Right-click a steam boiler while in spectator mode. Occurs in both singleplayer and multiplayer.

Additional context [Optional]
MC 1.21.1.
Seems to be caused by Spectator mode having an alternative method of opening UIs that doesn't give the server-side a chance to encode additional data (mainly BlockPos) that we depend on on client.
See: ServerPlayerGameMode::useItemOn, ServerPlayer::openMenu

Sample error:
[17:09:59] [Render thread/ERROR] [minecraft/ClientCommonPacketListenerImpl]: Failed to handle packet net.minecraft.network.protocol.game.ClientboundOpenScreenPacket@50715a8d java.lang.NullPointerException: Cannot invoke "net.minecraft.network.FriendlyByteBuf.readBlockPos()" because "data" is null at TRANSFORMER/essentials@2.17.4/com.Da_Technomancer.essentials.api.BlockMenuContainer.<init>(BlockMenuContainer.java:33) ~[essentials-293752-7774198.jar%23194!/:?] {re:classloading} at TRANSFORMER/crossroads@1.21.1-2.11.5/com.Da_Technomancer.crossroads.api.templates.MachineContainer.<init>(MachineContainer.java:22) ~[%23191!/:?] {re:classloading} at TRANSFORMER/crossroads@1.21.1-2.11.5/com.Da_Technomancer.crossroads.gui.container.SteamBoilerContainer.<init>(SteamBoilerContainer.java:16) ~[%23191!/:?] {re:classloading} at TRANSFORMER/neoforge@21.1.216/net.neoforged.neoforge.network.IContainerFactory.create(IContainerFactory.java:36) ~[neoforge-minecraft-joined-local-merged.jar%23190!/:?] {re:classloading} at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.inventory.MenuType.create(MenuType.java:54) ~[neoforge-minecraft-joined-local-merged.jar%23189!/:?] {re:classloading,pl:accesstransformer:B} at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.gui.screens.MenuScreens$ScreenConstructor.fromPacket(MenuScreens.java:127) ~[neoforge-minecraft-joined-local-merged.jar%23189!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.gui.screens.MenuScreens.lambda$create$0(MenuScreens.java:44) ~[neoforge-minecraft-joined-local-merged.jar%23189!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at java.base/java.util.Optional.ifPresent(Optional.java:178) ~[?:?] {}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions