Edivad99 / ExtraStorage

Add new blocks to Refined Storage, like more advanced crafters
GNU Affero General Public License v3.0
9 stars 9 forks source link

Server crash when destroying advanced exporter with gui open #53

Closed SamboyCoding closed 1 year ago

SamboyCoding commented 2 years ago

Describe the bug If, on a server, a player breaks an Advanced Exporter (possibly other blocks, didn't test), while another player has its GUI open, the server crashes due to an exception in the Player's tick method:

java.lang.IllegalStateException: No network node present at BlockPos{x=101, y=71, z=-320}, consider removing the block at this position
    at com.refinedmods.refinedstorage.blockentity.NetworkNodeBlockEntity.getNode(NetworkNodeBlockEntity.java:64) ~[refinedstorage-1.10.0-beta.4.jar%23207!:1.10.0-beta.4] {re:classloading}
    at edivad.extrastorage.container.AdvancedExporterContainerMenu.hasRegulatorMode(AdvancedExporterContainerMenu.java:28) ~[ExtraStorage-1.18.1-2.0.1.jar%23115!:2.0.1] {re:classloading}
    at edivad.extrastorage.container.AdvancedExporterContainerMenu.m_38946_(AdvancedExporterContainerMenu.java:36) ~[ExtraStorage-1.18.1-2.0.1.jar%23115!:2.0.1] {re:classloading}
    at net.minecraft.server.level.ServerPlayer.m_8119_(ServerPlayer.java:407) ~[server-1.18.1-20211210.034407-srg.jar%23262!:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:netherportalfix.mixins.json:ServerPlayerMixin,pl:mixin:APP:netherportalfix.mixins.json:ForgeServerPlayerMixin,pl:mixin:APP:securitycraft.mixins.json:camera.ServerPlayerMixin,pl:mixin:A}
    at net.minecraft.server.level.ServerLevel.m_8647_(ServerLevel.java:649) ~[server-1.18.1-20211210.034407-srg.jar%23262!:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:enhancedcelestials.mixins.json:MixinServerWorld,pl:mixin:APP:immersiveengineering.mixins.json:coremods.ServerWorldMixin,pl:mixin:A}
    at net.minecraft.world.level.Level.m_46653_(Level.java:487) ~[server-1.18.1-20211210.034407-srg.jar%23262!:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:enhancedcelestials.mixins.json:MixinWorld,pl:mixin:APP:kubejs-common.mixins.json:LevelMixin,pl:mixin:APP:lootr.mixins.json:MixinLevel,pl:mixin:APP:utilitix.mixins.json:MixinLevel,pl:mixin:A}
    at net.minecraft.server.level.ServerLevel.m_184063_(ServerLevel.java:316) ~[server-1.18.1-20211210.034407-srg.jar%23262!:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:enhancedcelestials.mixins.json:MixinServerWorld,pl:mixin:APP:immersiveengineering.mixins.json:coremods.ServerWorldMixin,pl:mixin:A}
    at net.minecraft.world.level.entity.EntityTickList.m_156910_(EntityTickList.java:54) ~[server-1.18.1-20211210.034407-srg.jar%23262!:?] {re:classloading}
    at net.minecraft.server.level.ServerLevel.m_8793_(ServerLevel.java:296) ~[server-1.18.1-20211210.034407-srg.jar%23262!:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:enhancedcelestials.mixins.json:MixinServerWorld,pl:mixin:APP:immersiveengineering.mixins.json:coremods.ServerWorldMixin,pl:mixin:A}
    at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:868) ~[server-1.18.1-20211210.034407-srg.jar%23262!:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:MinecraftServerAccessor,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:structure_gel.mixins.json:MinecraftServerMixin,pl:mixin:A}
    at net.minecraft.server.dedicated.DedicatedServer.m_5703_(DedicatedServer.java:328) ~[server-1.18.1-20211210.034407-srg.jar%23262!:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:808) ~[server-1.18.1-20211210.034407-srg.jar%23262!:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:MinecraftServerAccessor,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:structure_gel.mixins.json:MinecraftServerMixin,pl:mixin:A}
    at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:668) ~[server-1.18.1-20211210.034407-srg.jar%23262!:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:MinecraftServerAccessor,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:structure_gel.mixins.json:MinecraftServerMixin,pl:mixin:A}
    at net.minecraft.server.MinecraftServer.m_177918_(MinecraftServer.java:258) ~[server-1.18.1-20211210.034407-srg.jar%23262!:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:MinecraftServerAccessor,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:structure_gel.mixins.json:MinecraftServerMixin,pl:mixin:A}
    at java.lang.Thread.run(Thread.java:833) [?:?] {}

Configuration Mod version: 2.0.1 Forge version: 39.0.43 Minecraft version: 1.18.1 Refined Storage version: 1.10.0-beta4 Are you playing on server?: Yes

To Reproduce Steps to reproduce the behavior:

  1. Start a multiplayer server or open a world to lan
  2. Place a basic network with an Advanced Exporter.
  3. Connect to the server as another player
  4. Open the exporter's gui as the second player.
  5. Break the exporter as the first player
  6. Observe crash

Expected behavior The player is kicked out of the GUI and the server doesn't crash.

Screenshots N/A

Additional context Specifically, I was playing on an All The Mods 7 server, pack version 0.2.35

Edivad99 commented 2 years ago

Does it also happen with RS exporters?

SamboyCoding commented 2 years ago

I don't know, I haven't tested yet, I'll give it a try later today.

Edit: but if I had to guess, based on reading the source code, yes it probably does.

Edivad99 commented 2 years ago

In fact, then if it happens, it is better to bring the problem back to the RS guys too