mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-09-26 06:13:09 +02:00
Locations are mutable, fix toggle path altering the waypoints
This commit is contained in:
parent
2d973e7575
commit
ff50cd761d
@ -107,8 +107,9 @@ public class LinearWaypointProvider implements WaypointProvider {
|
||||
public void save(DataKey key) {
|
||||
key.removeKey("points");
|
||||
key = key.getRelative("points");
|
||||
for (int i = 0; i < waypoints.size(); ++i)
|
||||
for (int i = 0; i < waypoints.size(); ++i) {
|
||||
PersistenceLoader.save(waypoints.get(i), key.getRelative(i));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -142,7 +143,7 @@ public class LinearWaypointProvider implements WaypointProvider {
|
||||
}
|
||||
|
||||
private void createWaypointMarker(int index, Waypoint waypoint) {
|
||||
Entity entity = spawnMarker(player.getWorld(), waypoint.getLocation().add(0, 1, 0));
|
||||
Entity entity = spawnMarker(player.getWorld(), waypoint.getLocation().clone().add(0, 1, 0));
|
||||
if (entity == null)
|
||||
return;
|
||||
entity.setMetadata("waypointindex", new FixedMetadataValue(CitizensAPI.getPlugin(), index));
|
||||
|
@ -54,19 +54,19 @@ public class Waypoint {
|
||||
for (int i = start; i < triggers.size(); i++) {
|
||||
WaypointTrigger trigger = triggers.get(i);
|
||||
trigger.onWaypointReached(npc, location);
|
||||
if (trigger instanceof DelayTrigger) {
|
||||
int delay = ((DelayTrigger) trigger).getDelay();
|
||||
if (delay <= 0)
|
||||
continue;
|
||||
final int newStart = i;
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
runTriggers(npc, newStart);
|
||||
}
|
||||
}, delay);
|
||||
break;
|
||||
}
|
||||
if (!(trigger instanceof DelayTrigger))
|
||||
continue;
|
||||
int delay = ((DelayTrigger) trigger).getDelay();
|
||||
if (delay <= 0)
|
||||
continue;
|
||||
final int newStart = i;
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
runTriggers(npc, newStart);
|
||||
}
|
||||
}, delay);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user