diff --git a/connector/src/main/java/org/geysermc/connector/entity/Entity.java b/connector/src/main/java/org/geysermc/connector/entity/Entity.java index e348e1aa7..a494c4c73 100644 --- a/connector/src/main/java/org/geysermc/connector/entity/Entity.java +++ b/connector/src/main/java/org/geysermc/connector/entity/Entity.java @@ -173,12 +173,16 @@ public class Entity { case 0: if (entityMetadata.getType() == MetadataType.BYTE) { byte xd = (byte) entityMetadata.getValue(); - metadata.getFlags().setFlag(EntityFlag.ON_FIRE, (xd & 0x01) == 0x01); - metadata.getFlags().setFlag(EntityFlag.SNEAKING, (xd & 0x02) == 0x02); - metadata.getFlags().setFlag(EntityFlag.SPRINTING, (xd & 0x08) == 0x08); - metadata.getFlags().setFlag(EntityFlag.SWIMMING, (xd & 0x10) == 0x10); - metadata.getFlags().setFlag(EntityFlag.GLIDING, (xd & 0x80) == 0x80); - // metadata.getFlags().setFlag(EntityFlag.INVISIBLE, (xd & 0x20) == 0x20); + metadata.getFlags().setFlag(EntityFlag.ON_FIRE, (xd & 0x00) == 0x00); + metadata.getFlags().setFlag(EntityFlag.SNEAKING, (xd & 0x01) == 0x01); + metadata.getFlags().setFlag(EntityFlag.RIDING, (xd & 0x02) == 0x02); + metadata.getFlags().setFlag(EntityFlag.SPRINTING, (xd & 0x03) == 0x03); + metadata.getFlags().setFlag(EntityFlag.SWIMMING, (xd & 0x56) == 0x56); + metadata.getFlags().setFlag(EntityFlag.GLIDING, (xd & 0x32) == 0x32); + metadata.getFlags().setFlag(EntityFlag.BLOCKING, (xd & 0x71) == 0x71); + metadata.getFlags().setFlag(EntityFlag.DISABLE_BLOCKING, (xd & 0x72) == 0x72); + metadata.getFlags().setFlag(EntityFlag.RIDING, (xd & 0x02) == 0x02); + metadata.getFlags().setFlag(EntityFlag.INVISIBLE, (xd & 0x20) == 0x20); if ((xd & 0x20) == 0x20) metadata.put(EntityData.SCALE, 0.01f); else