Occultism

Occultism

19M Downloads

Digging out an opened Storage Actuator causes server crash and item duplication.

lengzu opened this issue ยท 4 comments

commented

Digging out an opened Storage Actuator causes server crash and item duplication.

Steps to reproduce the behavior:

  1. One player opens a Storage Actuator while another player digs out the Storage Actuator block.
  2. The player who opened the container continues to take out items, causing the items to be removed and resulting in a server crash.
  3. The server crash leads to the map data not being saved.
  4. If a player opens a Stable Wormhole and another player digs out a Storage Actuator, it will also cause a server crash and duplicate the items.

I have tried this experiment, and it does cause the Storage Actuator to not drop any items without crashing the server. However, the fourth situation still causes a server crash.

  • Occultism Version: 1.29.1
  • Minecraft Version: 1.16.5

`
Description: Ticking entity

com.github.klikli_dev.occultism.exceptions.ItemHandlerMissingException: ItemHandler
at net.minecraftforge.common.util.LazyOptional.orElseThrow(LazyOptional.java:296) ~[forge:?] {re:classloading}
at com.github.klikli_dev.occultism.common.tile.StorageControllerTileEntity.getStacks(StorageControllerTileEntity.java:184) ~[occultism:1.16.5-1.29.1] {re:classloading}
at com.github.klikli_dev.occultism.common.tile.StorageControllerTileEntity.getMessageUpdateStacks(StorageControllerTileEntity.java:202) ~[occultism:1.16.5-1.29.1] {re:classloading}
at com.github.klikli_dev.occultism.common.container.storage.StableWormholeContainer.func_75145_c(StableWormholeContainer.java:129) ~[occultism:1.16.5-1.29.1] {re:classloading}
at net.minecraft.entity.player.ServerPlayerEntity.func_70071_h_(ServerPlayerEntity.java:461) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:betterendforge.mixins.json:ServerPlayerEntityMixin,pl:mixin:A}
at net.minecraft.world.server.ServerWorld.func_217479_a(ServerWorld.java:756) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.world.World.func_217390_a(World.java:811) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:529) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1049) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:byg.mixins.json:server.MixinMinecraftServer,pl:mixin:APP:betterendforge.mixins.json:MinecraftServerMixin,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:336) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:943) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:byg.mixins.json:server.MixinMinecraftServer,pl:mixin:APP:betterendforge.mixins.json:MinecraftServerMixin,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:775) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:byg.mixins.json:server.MixinMinecraftServer,pl:mixin:APP:betterendforge.mixins.json:MinecraftServerMixin,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:265) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:byg.mixins.json:server.MixinMinecraftServer,pl:mixin:APP:betterendforge.mixins.json:MinecraftServerMixin,pl:mixin:A,pl:runtimedistcleaner:A}
at java.lang.Thread.run(Thread.java:831) [?:?] {}
`

commented

Thank you for reporting - I believe we had this error on later MC versions too but fixed it there.
1.16.5 is no longer receiving support so there won't be an update unless a community member provides a patch

commented

Repairing higher versions can achieve 1.16.5, and I can transfer it myself

commented

I hope to inform you after the repair. Thank you

commented

Let's reopen this for a moment then - does it currently happen in modern versions?
If it does not happen you can check out #843 and #844 these are commits that fix a similar issue.

If it DOES happen on modern versions let me know and I will fix it :)