From f42248a38e6cd495da044fb9c08a1b1dca59ff8f Mon Sep 17 00:00:00 2001 From: fullwall Date: Tue, 28 Feb 2012 19:25:42 +0800 Subject: [PATCH] Bugfix (may need changing later) --- .../trait/waypoint/LinearWaypointProvider.java | 1 - .../citizensnpcs/trait/waypoint/Waypoints.java | 17 ++++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/citizensnpcs/trait/waypoint/LinearWaypointProvider.java b/src/main/java/net/citizensnpcs/trait/waypoint/LinearWaypointProvider.java index 2fc4cca53..5582d4a67 100644 --- a/src/main/java/net/citizensnpcs/trait/waypoint/LinearWaypointProvider.java +++ b/src/main/java/net/citizensnpcs/trait/waypoint/LinearWaypointProvider.java @@ -52,7 +52,6 @@ public class LinearWaypointProvider implements WaypointProvider { @Override public void load(DataKey key) { - waypoints.clear(); for (DataKey root : key.getRelative("waypoints").getIntegerSubKeys()) { waypoints.add(new Waypoint(StorageUtils.loadLocation(root))); } diff --git a/src/main/java/net/citizensnpcs/trait/waypoint/Waypoints.java b/src/main/java/net/citizensnpcs/trait/waypoint/Waypoints.java index af07f7cdb..03641a98a 100644 --- a/src/main/java/net/citizensnpcs/trait/waypoint/Waypoints.java +++ b/src/main/java/net/citizensnpcs/trait/waypoint/Waypoints.java @@ -15,7 +15,7 @@ import org.bukkit.entity.Player; public class Waypoints extends Trait { private final NPC npc; private String providerName; - private WaypointProvider provider; + private WaypointProvider provider = new LinearWaypointProvider(); public Waypoints(NPC npc) { this.npc = npc; @@ -23,12 +23,10 @@ public class Waypoints extends Trait { @Override public void load(DataKey key) throws NPCLoadException { - if (provider == null) { - providerName = key.getString("provider", "linear"); - provider = providers.getInstance(providerName); - if (provider == null) - return; - } + providerName = key.getString("provider", "linear"); + provider = providers.getInstance(providerName); + if (provider == null) + return; provider.load(key.getRelative(providerName)); npc.getAI().registerNavigationCallback(provider.getCallback()); } @@ -45,6 +43,11 @@ public class Waypoints extends Trait { return provider.createEditor(player); } + public void setWaypointProvider(WaypointProvider provider, String name) { + this.provider = provider; + providerName = name; + } + public static void registerWaypointProvider(Class clazz, String name) { providers.register(clazz, name); }