@@ -120,31 +120,39 @@ private float getPlayerRange(@NotNull MinecraftClient client) {
120120 return null ;
121121
122122 if (client .player != null && client .crosshairTarget != null && client .crosshairTarget .getType () == HitResult .Type .MISS
123- && client .player .isOnGround () && client .player .getPitch (0.f ) > 35.f ) {
123+ && client .player .isOnGround () && client .player .getPitch (0.f ) >= 35.f ) {
124124 if (client .player .isRiding ())
125125 return null ;
126- var playerPos = client .player .getBlockPos ().down ();
126+ // Temporary pos, do not use
127+ Vec3d playerPosi = client .player .getPos ();
128+
129+ // Imitates var playerPos = client.player.getBlockPos().down();
130+ Vec3d playerPos = new Vec3d (playerPosi .getX (), playerPosi .getY () - 1.0 , playerPosi .getZ ());
127131 if (client .player .getY () - playerPos .getY () - 1.0 >= 0.25 ) {
128- playerPos = playerPos .up ();
132+ // Imitates playerPos = playerPos.up();
133+ playerPos = playerPosi ;
129134 this .onSlab = true ;
130135 } else {
131136 this .onSlab = false ;
132137 }
133- var targetPos = BlockPos . ofFloored ( client .crosshairTarget .getPos ()).subtract (playerPos );
134- var vector = new BlockPos . Mutable (MathHelper .clamp (targetPos .getX (), -1 , 1 ), 0 , MathHelper .clamp (targetPos .getZ (), -1 , 1 ));
138+ var targetPos = new Vec3d ( client . crosshairTarget . getPos (). getX (), client .crosshairTarget .getPos (). getY (), client . crosshairTarget . getPos (). getZ ()).subtract (playerPos );
139+ var vector = new Vec3d (MathHelper .clamp (targetPos .getX (), -1 , 1 ), 0 , MathHelper .clamp (targetPos .getZ (), -1 , 1 ));
135140 var blockPos = playerPos .add (vector );
136141
142+ // Some functions still need BlockPos, so this is here to let that happen
143+ var blockyPos = new BlockPos (blockPos );
144+
137145 var direction = client .player .getHorizontalFacing ();
138146
139- var state = client .world .getBlockState (blockPos );
147+ var state = client .world .getBlockState (blockyPos );
140148 if (!state .isAir ())
141149 return null ;
142- var adjacentBlockState = client .world .getBlockState (blockPos .offset (direction .getOpposite ()));
150+ var adjacentBlockState = client .world .getBlockState (blockyPos .offset (direction .getOpposite ()));
143151 if (adjacentBlockState .isAir () || adjacentBlockState .getBlock () instanceof FluidBlock || (vector .getX () == 0 && vector .getZ () == 0 )) {
144152 return null ;
145153 }
146154
147- return new BlockHitResult (new Vec3d ( blockPos . getX (), blockPos . getY (), blockPos . getZ ()), direction , blockPos , false );
155+ return new BlockHitResult (blockPos , direction , blockyPos , false );
148156 }
149157 return null ;
150158 }
0 commit comments