diff --git a/src/com/sk89q/worldedit/Vector.java b/src/com/sk89q/worldedit/Vector.java index a9d47cb23..f7126be4d 100644 --- a/src/com/sk89q/worldedit/Vector.java +++ b/src/com/sk89q/worldedit/Vector.java @@ -472,6 +472,17 @@ public class Vector { && getBlockZ() >= min.getBlockZ() && getBlockZ() <= max.getBlockY(); } + /** + * Clamp the Y component. + * + * @param min + * @param max + * @return + */ + public Vector clampY(int min, int max) { + return new Vector(x, Math.max(min, Math.min(max, y)), z); + } + /** * 2D transformation. * diff --git a/src/com/sk89q/worldedit/regions/CuboidRegion.java b/src/com/sk89q/worldedit/regions/CuboidRegion.java index 9b1b59681..97a6c7949 100644 --- a/src/com/sk89q/worldedit/regions/CuboidRegion.java +++ b/src/com/sk89q/worldedit/regions/CuboidRegion.java @@ -168,6 +168,9 @@ public class CuboidRegion implements Region { pos2 = pos2.add(new Vector(0, 0, change.getZ())); } } + + pos1 = pos1.clampY(0, 127); + pos2 = pos2.clampY(0, 127); } /** @@ -217,6 +220,9 @@ public class CuboidRegion implements Region { pos2 = pos2.add(new Vector(0, 0, change.getZ())); } } + + pos1 = pos1.clampY(0, 127); + pos2 = pos2.clampY(0, 127); } /**