From c7722115ed7d0a2f00ab1e6a2104110faa5dd9fe Mon Sep 17 00:00:00 2001 From: Hedzer Kuijlman Date: Fri, 11 Apr 2025 14:17:14 +0200 Subject: [PATCH] Fixed bug where EC closes if another player is still inside --- .../features/sharedenderchest/SharedEnderChest.java | 5 ++++- .../features/sharedenderchest/SharedInventory.java | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/wtf/hak/survivalfabric/features/sharedenderchest/SharedEnderChest.java b/src/main/java/wtf/hak/survivalfabric/features/sharedenderchest/SharedEnderChest.java index d14a83a..05318c7 100644 --- a/src/main/java/wtf/hak/survivalfabric/features/sharedenderchest/SharedEnderChest.java +++ b/src/main/java/wtf/hak/survivalfabric/features/sharedenderchest/SharedEnderChest.java @@ -113,7 +113,6 @@ public class SharedEnderChest implements ServerLifecycleEvents.ServerStopping, S } public static void openSharedEnderChest(PlayerEntity player, World world, BlockPos pos) { - playEnderChestOpenSound(world, pos); fakeEnderChestOpen(world, pos, true); sharedInventory.openedEnderChests.put(player, pos); player.openHandledScreen(new SimpleNamedScreenHandlerFactory((int_1, playerInventory, playerEntity) -> @@ -133,6 +132,10 @@ public class SharedEnderChest implements ServerLifecycleEvents.ServerStopping, S return; } + if(open) + playEnderChestOpenSound(world, pos); + else + playEnderChestCloseSound(world, pos); world.addSyncedBlockEvent(pos, Blocks.ENDER_CHEST, 1, open ? 1 : 0); } diff --git a/src/main/java/wtf/hak/survivalfabric/features/sharedenderchest/SharedInventory.java b/src/main/java/wtf/hak/survivalfabric/features/sharedenderchest/SharedInventory.java index 0deb00b..3f859b8 100644 --- a/src/main/java/wtf/hak/survivalfabric/features/sharedenderchest/SharedInventory.java +++ b/src/main/java/wtf/hak/survivalfabric/features/sharedenderchest/SharedInventory.java @@ -89,7 +89,8 @@ public class SharedInventory implements Inventory { @Override public void onClose(PlayerEntity player) { BlockPos pos = openedEnderChests.remove(player); + if(openedEnderChests.containsValue(pos)) + return; SharedEnderChest.fakeEnderChestOpen(player.getWorld(), pos, false); - SharedEnderChest.playEnderChestCloseSound(player.getWorld(), pos); } } \ No newline at end of file