diff --git a/src/main/java/one/oth3r/sit/utl/Logic.java b/src/main/java/one/oth3r/sit/utl/Logic.java index f07f822..b128b94 100644 --- a/src/main/java/one/oth3r/sit/utl/Logic.java +++ b/src/main/java/one/oth3r/sit/utl/Logic.java @@ -77,7 +77,8 @@ public class Logic { * @return true if sitting was successful */ public static boolean sitLooking(ServerPlayerEntity player) { - return sit(player, Utl.getBlockPosPlayerIsLookingAt(player.getServerWorld(),player,5),null); + return sit(player, Utl.getBlockPosPlayerIsLookingAt(player.getServerWorld(),player, + Utl.getPlayerReach(player)),null); } /** diff --git a/src/main/java/one/oth3r/sit/utl/Utl.java b/src/main/java/one/oth3r/sit/utl/Utl.java index ec16687..ea2fc19 100644 --- a/src/main/java/one/oth3r/sit/utl/Utl.java +++ b/src/main/java/one/oth3r/sit/utl/Utl.java @@ -10,6 +10,7 @@ import net.minecraft.block.*; import net.minecraft.block.enums.BlockHalf; import net.minecraft.block.enums.SlabType; import net.minecraft.entity.EntityType; +import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.entity.decoration.DisplayEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.BlockItem; @@ -482,4 +483,13 @@ public class Utl { return new BlockPos(player.getBlockPos()); } + + public static double getPlayerReach(PlayerEntity player) { + // use the BLOCK_INTERACTION_RANGE attribute if available + if (player.getAttributeInstance(EntityAttributes.BLOCK_INTERACTION_RANGE) != null) { + return player.getAttributeValue(EntityAttributes.BLOCK_INTERACTION_RANGE); + } + // fallback to 5 + return 5; + } }