diff --git a/src/main/java/dev/brighten/ac/data/handlers/GeneralInformation.java b/src/main/java/dev/brighten/ac/data/handlers/GeneralInformation.java index 612012d..2eabfe8 100644 --- a/src/main/java/dev/brighten/ac/data/handlers/GeneralInformation.java +++ b/src/main/java/dev/brighten/ac/data/handlers/GeneralInformation.java @@ -34,4 +34,5 @@ public class GeneralInformation { public KLocation lastKnownGoodPosition; public List velocityHistory = Collections.synchronizedList(new EvictingList<>(5)); public List possibleCapabilities = new ArrayList<>(); + private int clientGroundTicks, clientAirTicks; } diff --git a/src/main/java/dev/brighten/ac/data/handlers/MovementHandler.java b/src/main/java/dev/brighten/ac/data/handlers/MovementHandler.java index 703ccc5..ebeabfc 100644 --- a/src/main/java/dev/brighten/ac/data/handlers/MovementHandler.java +++ b/src/main/java/dev/brighten/ac/data/handlers/MovementHandler.java @@ -534,5 +534,8 @@ it deltaXZ = Math.hypot(deltaX, deltaZ); // Calculating here to cache since hypot() can be heavy. deltaYaw = to.getLoc().yaw - from.getLoc().yaw; deltaPitch = to.getLoc().pitch - from.getLoc().pitch; + + player.getInfo().setClientGroundTicks(packet.isOnGround() ? player.getInfo().getClientGroundTicks() + 1 : 0); + player.getInfo().setClientAirTicks(!packet.isOnGround() ? player.getInfo().getClientAirTicks() + 1 : 0); } } diff --git a/src/main/java/dev/brighten/ac/utils/MovementUtils.java b/src/main/java/dev/brighten/ac/utils/MovementUtils.java index 6b81889..218bba5 100644 --- a/src/main/java/dev/brighten/ac/utils/MovementUtils.java +++ b/src/main/java/dev/brighten/ac/utils/MovementUtils.java @@ -17,7 +17,7 @@ public class MovementUtils { private static Enchantment DEPTH; - public static float getJumpHeight(APlayer data) { + public static double getJumpHeight(APlayer data) { float baseHeight = 0.42f; baseHeight+= data.getPotionHandler().getEffectByType(PotionEffectType.JUMP).map(ef -> ef.getAmplifier() + 1)