diff --git a/main/src/main/java/net/citizensnpcs/trait/waypoint/GuidedWaypointProvider.java b/main/src/main/java/net/citizensnpcs/trait/waypoint/GuidedWaypointProvider.java index a591b44db..8c9a0d86f 100644 --- a/main/src/main/java/net/citizensnpcs/trait/waypoint/GuidedWaypointProvider.java +++ b/main/src/main/java/net/citizensnpcs/trait/waypoint/GuidedWaypointProvider.java @@ -364,6 +364,11 @@ public class GuidedWaypointProvider implements EnumerableWaypointProvider { return false; this.target = destinations.get(Util.getFastRandom().nextInt(destinations.size())); + if (target.getLocation().getWorld().equals(npc.getEntity().getWorld())) { + target = null; + return false; + } + plan = ASTAR.runFully(new GuidedGoal(target), new GuidedNode(null, new Waypoint(npc.getStoredLocation()))); return plan != null; } @@ -436,12 +441,12 @@ public class GuidedWaypointProvider implements EnumerableWaypointProvider { @Override public Iterable getNeighbours() { PhTree source = getParent() == null ? tree : treePlusDestinations; - PhRangeQuery rq = source.rangeQuery( + PhRangeQuery query = source.rangeQuery( distance == -1 ? npc.getNavigator().getDefaultParameters().range() : distance, waypoint.getLocation().getBlockX(), waypoint.getLocation().getBlockY(), waypoint.getLocation().getBlockZ()); List neighbours = Lists.newArrayList(); - rq.forEachRemaining(n -> neighbours.add(new GuidedNode(this, n))); + query.forEachRemaining(wp -> neighbours.add(new GuidedNode(this, wp))); return neighbours; }