mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-09-28 15:17:43 +02:00
Fix compile error, add some wander waypoint API
This commit is contained in:
parent
52b3902aca
commit
a0aaefcbea
@ -134,7 +134,8 @@ public class EventListen implements Listener {
|
||||
}
|
||||
|
||||
private Iterable<NPC> getAllNPCs() {
|
||||
return Iterables.filter(Iterables.<NPC> concat(CitizensAPI.getNPCRegistry(), Iterables.concat(registries.values())),
|
||||
return Iterables.filter(
|
||||
Iterables.<NPC> 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
|
||||
|
@ -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<QuadTr
|
||||
return regionCentres.isEmpty() ? null : tree;
|
||||
}
|
||||
|
||||
public List<Location> getRegionCentres() {
|
||||
return new RecalculateList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPaused() {
|
||||
return paused;
|
||||
@ -201,6 +206,40 @@ public class WanderWaypointProvider implements WaypointProvider, Supplier<QuadTr
|
||||
this.paused = paused;
|
||||
}
|
||||
|
||||
private class RecalculateList extends ForwardingList<Location> {
|
||||
@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<Location> 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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user