From 18c710547b2787c9c9130866c0f80435570636c0 Mon Sep 17 00:00:00 2001 From: oryxel Date: Fri, 12 Sep 2025 07:13:57 +0700 Subject: [PATCH] Fix: force flag update for session players entity flags (#5810) * Force flag update for session player when living entity flag update. * Requested changes. * Removed useless import. --- .../entity/type/player/SessionPlayerEntity.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/player/SessionPlayerEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/player/SessionPlayerEntity.java index 356d55b23..145421a5f 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/player/SessionPlayerEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/player/SessionPlayerEntity.java @@ -397,6 +397,17 @@ public class SessionPlayerEntity extends PlayerEntity { super.setAbsorptionHearts(entityMetadata); } + @Override + public void setLivingEntityFlags(ByteEntityMetadata entityMetadata) { + super.setLivingEntityFlags(entityMetadata); + + // Forcefully update flags since we're not tracking thing like using item properly. + // For eg: when player start using item client-sided (and the USING_ITEM flag is false on geyser side) + // If the server disagree with the player using item state, it will send a metadata set USING_ITEM flag to false + // But since it never got set to true, nothing changed, causing the client to not receive the USING_ITEM flag they're supposed to. + this.forceFlagUpdate(); + } + @Override public void resetMetadata() { super.resetMetadata();