From ef0503ede05f50cd8732aa794b7d6fbb2000c5f7 Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Sun, 6 Jun 2021 11:36:11 -0400 Subject: [PATCH] Properly implement freezing ticks --- .../main/java/org/geysermc/connector/entity/Entity.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 505278653..90d0d36b2 100644 --- a/connector/src/main/java/org/geysermc/connector/entity/Entity.java +++ b/connector/src/main/java/org/geysermc/connector/entity/Entity.java @@ -305,9 +305,11 @@ public class Entity { metadata.getFlags().setFlag(EntityFlag.SWIMMING, pose.equals(Pose.SWIMMING)); setDimensions(pose); break; - case 7: - //TODO check - metadata.put(EntityData.FREEZING_EFFECT_STRENGTH, entityMetadata.getValue()); + case 7: // Freezing ticks + // The value that Java edition gives us is in ticks, but Bedrock uses a float percentage of the strength 0.0 -> 1.0 + // The Java client caps its freezing tick percentage at 140 + int freezingTicks = Math.min((int) entityMetadata.getValue(), 140); + metadata.put(EntityData.FREEZING_EFFECT_STRENGTH, (freezingTicks / (float) 140)); break; } }