40public class Boundary {
42 int minX, minY, highX, highY;
45 public Boundary(
int minX,
int minY,
int highX,
int highY) {
53 public Boundary(
int minX,
int minY,
int highX,
int highY,
int height) {
61 public int getMinimumX() {
65 public int getMinimumY() {
69 public int getMaximumX() {
73 public int getMaximumY() {
77 public static boolean isIn(
Mob mob, Boundary... boundaries) {
78 for (Boundary b : boundaries) {
83 if (mob.
getX() >= b.minX && mob.
getX() <= b.highX && mob.
getY() >= b.minY && mob.
getY() <= b.highY)
89 public static boolean isIn(
int x,
int y,
int z, Boundary boundaries) {
90 if (boundaries.height >= 0) {
91 if (z != boundaries.height) {
95 return x >= boundaries.minX && x <= boundaries.highX && y >= boundaries.minY && y <= boundaries.highY;
98 public static List<Player> getPlayers(Boundary boundary) {
99 List<Player> list =
new ArrayList<>();
101 if (player !=
null && isIn(player, boundary))
107 public static boolean isInSameBoundary(
Player player1,
Player player2, Boundary[] boundaries) {
108 Optional<Boundary> boundary1 = Arrays.stream(boundaries).filter(b -> isIn(player1, b)).findFirst();
109 Optional<Boundary> boundary2 = Arrays.stream(boundaries).filter(b -> isIn(player2, b)).findFirst();
110 if (!boundary1.isPresent() || !boundary2.isPresent()) {
113 return Objects.equals(boundary1.get(), boundary2.get());