Получение координат в точке "коллизии" RayCast и блока.

Версия Minecraft
1.16.5
API
Forge
28
6
Доброго времени суток. Создаю простейший предмет, который позволяет телепортироваться к блоку, который находится в прицеле игрока.
Проблема заключается в том, что RayCastResult не позволяет получить конкретную точку "коллизии" луча с блоком. Из-за этого теряется информация о том, в какую часть блока смотрел игрок.
Нужно, чтобы телепортация происходила с учётом расположения курсора на сторонах блока.
look_pos.jpgteleported_pos.jpg
Пытался реализовать через yaw и pitch, однако работает неправильно:

Java:
public class PortalStaff extends Item {

    public PortalStaff(Properties pProperties) {
        super(pProperties);
    }

    @Override
    public ActionResult<ItemStack> use(World pLevel, PlayerEntity pPlayer, Hand pHand) {
        if(!pLevel.isClientSide) {
            RayTraceResult rayCast = pPlayer.pick(100,0,false);
            if(rayCast.getType() == RayTraceResult.Type.BLOCK) {
                BlockPos blockInRay = ((BlockRayTraceResult) rayCast).getBlockPos();
                double x = blockInRay.getX() + Math.cos(pPlayer.getViewXRot(5)) * Math.sin(pPlayer.getViewYRot(5));
                double y = blockInRay.getY() + 1 ;
                double z = blockInRay.getZ() + Math.cos(pPlayer.getViewXRot(5)) * Math.cos(pPlayer.getViewYRot(5));
                pPlayer.moveTo(x, y, z);
                pPlayer.playSound(SoundEvents.ENDERMAN_TELEPORT,1,1);
            }
          
        }
        return super.use(pLevel, pPlayer, pHand);
    }
}
 
Решение
В RayTraceResult должен быть метод который возвращает вектор, это и должна быть абсолютная позиция в которую попал луч. С официальными маппингами он называется getLocation и возвращает Vec3
Сверху