Citizens2/main/java/net/citizensnpcs/trait/waypoint/triggers/DelayTrigger.java

49 lines
1.2 KiB
Java

package net.citizensnpcs.trait.waypoint.triggers;
import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.persistence.Persist;
import net.citizensnpcs.trait.waypoint.WaypointProvider;
import net.citizensnpcs.trait.waypoint.Waypoints;
import org.bukkit.Bukkit;
import org.bukkit.Location;
public class DelayTrigger implements WaypointTrigger {
@Persist
private int delay = 0;
public DelayTrigger() {
}
public DelayTrigger(int delay) {
this.delay = delay;
}
@Override
public String description() {
return String.format("Delay for %d ticks", delay);
}
public int getDelay() {
return delay;
}
@Override
public void onWaypointReached(NPC npc, Location waypoint) {
if (delay > 0) {
scheduleTask(npc.getTrait(Waypoints.class).getCurrentProvider());
}
}
private void scheduleTask(final WaypointProvider provider) {
provider.setPaused(true);
Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() {
@Override
public void run() {
provider.setPaused(false);
}
}, delay);
}
}