From c80a8a7c41a9f35e14a4c9aa095b5b1002c55221 Mon Sep 17 00:00:00 2001 From: oryxel Date: Sat, 31 May 2025 16:53:18 +0700 Subject: [PATCH] Don't send item use when player is already using item (#5567) --- .../java/org/geysermc/geyser/session/GeyserSession.java | 4 ++++ .../bedrock/BedrockInventoryTransactionTranslator.java | 2 ++ .../protocol/java/entity/JavaEntityEventTranslator.java | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java index b89fc4701..59b309659 100644 --- a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java +++ b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java @@ -1343,6 +1343,10 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { * Convenience method to reduce amount of duplicate code. Sends ServerboundUseItemPacket. */ public void useItem(Hand hand) { + if (playerEntity.getFlag(EntityFlag.USING_ITEM)) { + return; + } + sendDownstreamGamePacket(new ServerboundUseItemPacket( hand, worldCache.nextPredictionSequence(), playerEntity.getYaw(), playerEntity.getPitch())); } diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockInventoryTransactionTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockInventoryTransactionTranslator.java index 56202bc94..685e2ced0 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockInventoryTransactionTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockInventoryTransactionTranslator.java @@ -33,6 +33,7 @@ import org.cloudburstmc.math.vector.Vector3i; import org.cloudburstmc.protocol.bedrock.data.SoundEvent; import org.cloudburstmc.protocol.bedrock.data.definitions.BlockDefinition; import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; +import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.cloudburstmc.protocol.bedrock.data.inventory.ContainerType; import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; import org.cloudburstmc.protocol.bedrock.data.inventory.transaction.InventoryActionData; @@ -446,6 +447,7 @@ public class BedrockInventoryTransactionTranslator extends PacketTranslator