From a0aaefcbea3f696cb84e462257302d8f60fb5d55 Mon Sep 17 00:00:00 2001 From: fullwall Date: Sat, 19 Jan 2019 00:33:05 +0800 Subject: [PATCH] Fix compile error, add some wander waypoint API --- .../java/net/citizensnpcs/EventListen.java | 11 ++++-- .../waypoint/WanderWaypointProvider.java | 39 +++++++++++++++++++ 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/main/src/main/java/net/citizensnpcs/EventListen.java b/main/src/main/java/net/citizensnpcs/EventListen.java index c32a7721e..54bbb8145 100644 --- a/main/src/main/java/net/citizensnpcs/EventListen.java +++ b/main/src/main/java/net/citizensnpcs/EventListen.java @@ -134,7 +134,8 @@ public class EventListen implements Listener { } private Iterable getAllNPCs() { - return Iterables.filter(Iterables. concat(CitizensAPI.getNPCRegistry(), Iterables.concat(registries.values())), + return Iterables.filter( + Iterables. concat(CitizensAPI.getNPCRegistry(), Iterables.concat(registries.values())), Predicates.notNull()); } @@ -186,7 +187,7 @@ public class EventListen implements Listener { */ @EventHandler public void onEntityCombust(EntityCombustEvent event) { - NPC npc = npcRegistry.getNPC(event.getEntity()); + NPC npc = CitizensAPI.getNPCRegistry().getNPC(event.getEntity()); if (npc == null) return; event.setCancelled(npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)); @@ -414,7 +415,8 @@ public class EventListen implements Listener { @EventHandler(ignoreCancelled = true) public void onPlayerFish(PlayerFishEvent event) { - if (CitizensAPI.getNPCRegistry().isNPC(event.getCaught()) && CitizensAPI.getNPCRegistry().getNPC(event.getCaught()).isProtected()) { + if (CitizensAPI.getNPCRegistry().isNPC(event.getCaught()) + && CitizensAPI.getNPCRegistry().getNPC(event.getCaught()).isProtected()) { event.setCancelled(true); } } @@ -473,7 +475,8 @@ public class EventListen implements Listener { @EventHandler(ignoreCancelled = true) public void onPlayerTeleport(final PlayerTeleportEvent event) { if (event.getCause() == TeleportCause.PLUGIN && !event.getPlayer().hasMetadata("citizens-force-teleporting") - && CitizensAPI.getNPCRegistry().getNPC(event.getPlayer()) != null && Setting.TELEPORT_DELAY.asInt() > 0) { + && CitizensAPI.getNPCRegistry().getNPC(event.getPlayer()) != null + && Setting.TELEPORT_DELAY.asInt() > 0) { event.setCancelled(true); Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() { @Override diff --git a/main/src/main/java/net/citizensnpcs/trait/waypoint/WanderWaypointProvider.java b/main/src/main/java/net/citizensnpcs/trait/waypoint/WanderWaypointProvider.java index 5944511f2..a09190e4a 100644 --- a/main/src/main/java/net/citizensnpcs/trait/waypoint/WanderWaypointProvider.java +++ b/main/src/main/java/net/citizensnpcs/trait/waypoint/WanderWaypointProvider.java @@ -14,6 +14,7 @@ import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.metadata.FixedMetadataValue; import com.google.common.base.Supplier; +import com.google.common.collect.ForwardingList; import com.google.common.collect.Lists; import net.citizensnpcs.api.CitizensAPI; @@ -160,6 +161,10 @@ public class WanderWaypointProvider implements WaypointProvider, Supplier getRegionCentres() { + return new RecalculateList(); + } + @Override public boolean isPaused() { return paused; @@ -201,6 +206,40 @@ public class WanderWaypointProvider implements WaypointProvider, Supplier { + @Override + public void add(int idx, Location loc) { + super.add(idx, loc); + recalculateTree(); + } + + @Override + public boolean add(Location loc) { + boolean val = super.add(loc); + recalculateTree(); + return val; + } + + @Override + protected List delegate() { + return regionCentres; + } + + @Override + public Location remove(int idx) { + Location val = super.remove(idx); + recalculateTree(); + return val; + } + + @Override + public Location set(int idx, Location idx2) { + Location val = super.set(idx, idx2); + recalculateTree(); + return val; + } + } + private static final int DEFAULT_XRANGE = 3; private static final int DEFAULT_YRANGE = 25; }