From c1448c749bda2ad21f3da87b9dc82202c3e23349 Mon Sep 17 00:00:00 2001 From: mcmonkey Date: Sun, 16 Sep 2018 04:42:51 -0700 Subject: [PATCH] add dnpc.clear_waypoints mechanism --- .../net/aufdemrand/denizen/objects/dNPC.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/plugin/src/main/java/net/aufdemrand/denizen/objects/dNPC.java b/plugin/src/main/java/net/aufdemrand/denizen/objects/dNPC.java index 1ae254ec48..da6aa0f9d5 100644 --- a/plugin/src/main/java/net/aufdemrand/denizen/objects/dNPC.java +++ b/plugin/src/main/java/net/aufdemrand/denizen/objects/dNPC.java @@ -1440,6 +1440,25 @@ else if (mechanism.getValue().toString().equalsIgnoreCase("path")) { getNavigator().getDefaultParameters().distanceMargin(mechanism.getValue().asDouble()); } + // <--[mechanism] + // @object dNPC + // @name clear_waypoints + // @input None + // @description + // Clears all waypoint locations in the NPC's path. + // @tags + // TODO + // --> + if (mechanism.matches("clear_waypoints")) { + if (!getCitizen().hasTrait(Waypoints.class)) { + getCitizen().addTrait(Waypoints.class); + } + Waypoints wp = getCitizen().getTrait(Waypoints.class); + if ((wp.getCurrentProvider() instanceof WaypointProvider.EnumerableWaypointProvider)) { + ((List) ((WaypointProvider.EnumerableWaypointProvider) wp.getCurrentProvider()).waypoints()).clear(); + } + } + // <--[mechanism] // @object dNPC // @name add_waypoint