From 3a017b179db9276534b48273e9196d11fb6d92da Mon Sep 17 00:00:00 2001 From: Andreas Troelsen Date: Fri, 3 Jan 2020 01:28:11 +0100 Subject: [PATCH] Fix NPE in region overlap check. This commit fixes an issue with the new `intersects()` method on ArenaRegion. Instead of blindly assuming that the region points `p1` and `p2` are set when the method is called, we first make sure both regions are properly set. Fixes #590 --- changelog.md | 1 + .../java/com/garbagemule/MobArena/region/ArenaRegion.java | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index 04a730c..efbd022 100644 --- a/changelog.md +++ b/changelog.md @@ -11,6 +11,7 @@ These changes will (most likely) be included in the next version. ## [Unreleased] +- Arenas with missing regions no longer cause errors in the region overlap check. ## [0.104.1] - 2019-12-31 - It is no longer necessary to have recurrent waves for an arena to work. MobArena automatically creates a "catch all" recurrent wave in case the arena session reaches a wave number that isn't covered by any other wave definitions. diff --git a/src/main/java/com/garbagemule/MobArena/region/ArenaRegion.java b/src/main/java/com/garbagemule/MobArena/region/ArenaRegion.java index d9462c5..a0b5ad1 100644 --- a/src/main/java/com/garbagemule/MobArena/region/ArenaRegion.java +++ b/src/main/java/com/garbagemule/MobArena/region/ArenaRegion.java @@ -248,7 +248,10 @@ public class ArenaRegion return true; } } - return intersects(p1, p2, other.p1, other.p2); + if (setup && other.setup) { + return intersects(p1, p2, other.p1, other.p2); + } + return false; } private boolean intersects(Location a1, Location a2, Location b1, Location b2) {