From e76629af32b6db93ee5988ea23e4af98c6c0ccf8 Mon Sep 17 00:00:00 2001 From: Oth3r Date: Thu, 13 Feb 2025 15:59:46 -0600 Subject: [PATCH] use player y instead of player eye y --- .../java/one/oth3r/sit/file/ServerConfig.java | 4 ++-- src/main/java/one/oth3r/sit/utl/Logic.java | 15 ++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/one/oth3r/sit/file/ServerConfig.java b/src/main/java/one/oth3r/sit/file/ServerConfig.java index 0698e67..b140bf5 100644 --- a/src/main/java/one/oth3r/sit/file/ServerConfig.java +++ b/src/main/java/one/oth3r/sit/file/ServerConfig.java @@ -155,9 +155,9 @@ public class ServerConfig implements CustomFile { public static class YDifferenceLimit { @SerializedName("above") - private Double above = 0.1; + private Double above = 1.0; @SerializedName("below") - private Double below = 3.0; + private Double below = 1.0; public YDifferenceLimit() { } diff --git a/src/main/java/one/oth3r/sit/utl/Logic.java b/src/main/java/one/oth3r/sit/utl/Logic.java index e2d04bf..2fbc0b2 100644 --- a/src/main/java/one/oth3r/sit/utl/Logic.java +++ b/src/main/java/one/oth3r/sit/utl/Logic.java @@ -82,19 +82,20 @@ public class Logic { * check if the Y-level of the block is within the limits of the player, bounds are set in the {@link ServerConfig} */ public static boolean checkYLimits(ServerPlayerEntity player, BlockPos blockPos) { - double playerEyeY = player.getEyeY(); + double playerY = player.getBlockY(); double blockY = blockPos.getY(); // if the block is above the eye height - boolean isAbove = playerEyeY < blockY; + boolean isAbove = playerY < blockY; + + // return true if equal + if (playerY == blockY) return true; + // get the height difference (positive) - double heightDifference = Math.abs(playerEyeY - blockY); + double heightDifference = Math.abs(playerY - blockY); // get the config limits ServerConfig.YDifferenceLimit yDifferenceLimit = FileData.getServerConfig().getYDifferenceLimit(); - // debug - Data.LOGGER.info("{} {} can sit? {}", heightDifference, isAbove ? "Above" : "Below", (isAbove? yDifferenceLimit.getAbove(): yDifferenceLimit.getBelow()) >= heightDifference); - - return (isAbove? yDifferenceLimit.getAbove(): yDifferenceLimit.getBelow()) >= heightDifference; + return (isAbove? yDifferenceLimit.getAbove() : yDifferenceLimit.getBelow()) >= heightDifference; } /**