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; } /**