Skip to content

Commit

Permalink
patch up enters area event generic match-alls
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Aug 15, 2020
1 parent aeeadc6 commit efedafd
Showing 1 changed file with 29 additions and 4 deletions.
Expand Up @@ -28,6 +28,8 @@ public class AreaEnterExitScriptEvent extends BukkitScriptEvent implements Liste
// @Events
// player enters <area>
// player exits <area>
// player enters/exits cuboid
// player enters/exits ellipsoid
//
// @Regex ^on player (enters|exits) [^\s]+$
//
Expand Down Expand Up @@ -85,8 +87,24 @@ public boolean matches(ScriptPath path) {
if (!isEntering && !path.eventArgLowerAt(1).equals("exits")) {
return false;
}
if (!createMatcher(path.eventArgLowerAt(2)).doesMatch(area.getNoteName())) {
return false;
String areaName = path.eventArgLowerAt(2);
if (areaName.equals("notable")) {
areaName = path.eventArgLowerAt(3);
}
if (areaName.equals("cuboid")) {
if (!(area instanceof CuboidTag)) {
return false;
}
}
else if (areaName.equals("ellipsoid")) {
if (!(area instanceof EllipsoidTag)) {
return false;
}
}
else {
if (!runGenericCheck(areaName, area.getNoteName())) {
return false;
}
}
return super.matches(path);
}
Expand Down Expand Up @@ -157,7 +175,14 @@ public void init() {
List<MatchHelper> matchList = new ArrayList<>();
for (ScriptPath path : eventPaths) {
String area = path.eventArgLowerAt(2);
if (area.equals("notable") && path.eventArgLowerAt(3).equals("cuboid")) {
if (area.equals("notable")) {
area = path.eventArgLowerAt(3);
}
if (area.equals("cuboid")) {
doTrackAll = true;
break;
}
else if (area.equals("ellipsoid")) {
doTrackAll = true;
break;
}
Expand Down Expand Up @@ -253,7 +278,7 @@ public void processNewPosition(Player player, Location pos, Event eventCause) {
for (String name : exactTracked) {
Notable obj = NotableManager.getSavedObject(name);
if (!(obj instanceof AreaContainmentObject)) {
Debug.echoError("Invalid cuboid enter/exit event area '" + name + "'");
Debug.echoError("Invalid area enter/exit event area '" + name + "'");
continue;
}
processSingle((AreaContainmentObject) obj, player, inAreas, pos, eventCause);
Expand Down

0 comments on commit efedafd

Please sign in to comment.