From d00cab18fdc0eeb15381cc17c384fd2f5a6faa88 Mon Sep 17 00:00:00 2001 From: chris Date: Thu, 13 Jun 2024 14:14:57 +0200 Subject: [PATCH 1/2] Only translate double chest tags if we are dealing with a double chest (#4736) --- .../block/entity/DoubleChestBlockEntityTranslator.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/DoubleChestBlockEntityTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/DoubleChestBlockEntityTranslator.java index 988d94073..9f111788b 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/DoubleChestBlockEntityTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/DoubleChestBlockEntityTranslator.java @@ -42,9 +42,11 @@ public class DoubleChestBlockEntityTranslator extends BlockEntityTranslator impl @Override public void translateTag(GeyserSession session, NbtMapBuilder bedrockNbt, NbtMap javaNbt, BlockState blockState) { - int x = (int) bedrockNbt.get("x"); - int z = (int) bedrockNbt.get("z"); - translateChestValue(bedrockNbt, blockState, x, z); + if (blockState.getValue(Properties.CHEST_TYPE) != ChestType.SINGLE) { + int x = (int) bedrockNbt.get("x"); + int z = (int) bedrockNbt.get("z"); + translateChestValue(bedrockNbt, blockState, x, z); + } } /** From db5a5289659d8b07abdcca83e5549672ddc0e272 Mon Sep 17 00:00:00 2001 From: chris Date: Thu, 13 Jun 2024 16:53:01 +0200 Subject: [PATCH 2/2] Fix: Improper detection of virtual double chests (#4738) --- .../inventory/chest/DoubleChestInventoryTranslator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/chest/DoubleChestInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/chest/DoubleChestInventoryTranslator.java index 06531eff2..856cc1876 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/chest/DoubleChestInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/chest/DoubleChestInventoryTranslator.java @@ -64,7 +64,7 @@ public class DoubleChestInventoryTranslator extends ChestInventoryTranslator { if (session.getLastInteractionPlayerPosition().equals(session.getPlayerEntity().getPosition())) { BlockState state = session.getGeyser().getWorldManager().blockAt(session, session.getLastInteractionBlockPosition()); if (!BlockRegistries.CUSTOM_BLOCK_STATE_OVERRIDES.get().containsKey(state.javaId())) { - if (state.block() == Blocks.CHEST || state.block() == Blocks.TRAPPED_CHEST + if ((state.block() == Blocks.CHEST || state.block() == Blocks.TRAPPED_CHEST) && state.getValue(Properties.CHEST_TYPE) != ChestType.SINGLE) { inventory.setHolderPosition(session.getLastInteractionBlockPosition()); ((Container) inventory).setUsingRealBlock(true, state.block());