diff --git a/connector/src/main/java/org/geysermc/connector/entity/living/animal/tameable/CatEntity.java b/connector/src/main/java/org/geysermc/connector/entity/living/animal/tameable/CatEntity.java index 2d56d0c1869..6869717a028 100644 --- a/connector/src/main/java/org/geysermc/connector/entity/living/animal/tameable/CatEntity.java +++ b/connector/src/main/java/org/geysermc/connector/entity/living/animal/tameable/CatEntity.java @@ -49,7 +49,14 @@ public void updateRotation(GeyserSession session, float yaw, float pitch, boolea @Override public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { super.updateBedrockMetadata(entityMetadata, session); - if (entityMetadata.getId() == 16) { + if (entityMetadata.getId() == 15) { + metadata.put(EntityData.SCALE, .8f); + boolean isBaby = (boolean) entityMetadata.getValue(); + if (isBaby) { + metadata.put(EntityData.SCALE, .4f); + metadata.getFlags().setFlag(EntityFlag.BABY, true); + } + } else if (entityMetadata.getId() == 16) { // Update collar color if tamed if (metadata.getFlags().getFlag(EntityFlag.TAMED)) { metadata.put(EntityData.COLOR, collarColor); @@ -76,6 +83,9 @@ public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession s } metadata.put(EntityData.VARIANT, variantColor); } + if (entityMetadata.getId() == 19) { + metadata.getFlags().setFlag(EntityFlag.RESTING, (boolean) entityMetadata.getValue()); + } if (entityMetadata.getId() == 21) { collarColor = (byte) (int) entityMetadata.getValue(); // Needed or else wild cats are a red color