private static int bukkitFloor(double num) {
        final int floor = (int) num;
        return floor == num ? floor : floor - (int) (Double.doubleToRawLongBits(num) >>> 63);
    }
An immutable and serializable location object
helper/src/main/java/me/lucko/helper/serialize/Position.java