107 lines
2.6 KiB
Java
Raw Normal View History

2015-01-10 01:05:10 +11:00
package com.intellectualcrafters.plot.util;
2015-07-03 13:21:21 +02:00
import java.util.HashMap;
import java.util.HashSet;
2015-07-27 04:38:08 +10:00
import java.util.concurrent.atomic.AtomicInteger;
2015-07-06 01:44:10 +10:00
2015-07-31 00:25:16 +10:00
import com.intellectualcrafters.plot.PS;
2015-09-11 20:09:22 +10:00
public abstract class TaskManager
{
2015-02-20 17:34:19 +11:00
public static HashSet<String> TELEPORT_QUEUE = new HashSet<>();
2015-09-11 20:09:22 +10:00
2015-07-27 04:38:08 +10:00
public static AtomicInteger index = new AtomicInteger(0);
2015-04-01 11:52:22 +11:00
public static HashMap<Integer, Integer> tasks = new HashMap<>();
2015-02-23 12:32:27 +11:00
2015-09-11 20:09:22 +10:00
public static int runTaskRepeat(final Runnable r, final int interval)
{
if (r != null)
{
if (PS.get().TASK == null) { throw new IllegalArgumentException("disabled"); }
return PS.get().TASK.taskRepeat(r, interval);
2015-02-20 17:34:19 +11:00
}
2015-02-22 22:30:46 +11:00
return -1;
2015-02-19 17:08:15 +11:00
}
2015-09-11 20:09:22 +10:00
public static int runTaskRepeatAsync(final Runnable r, final int interval)
{
if (r != null)
{
if (PS.get().TASK == null) { throw new IllegalArgumentException("disabled"); }
2015-08-02 21:56:18 +10:00
return PS.get().TASK.taskRepeat(r, interval);
}
return -1;
}
2015-02-23 12:32:27 +11:00
2015-09-11 20:09:22 +10:00
public static void runTaskAsync(final Runnable r)
{
if (r != null)
{
if (PS.get().TASK == null)
{
2015-08-07 11:38:39 +10:00
r.run();
return;
}
PS.get().TASK.taskAsync(r);
2015-02-20 17:34:19 +11:00
}
2015-01-10 01:05:10 +11:00
}
2015-02-23 12:32:27 +11:00
2015-09-11 20:09:22 +10:00
public static void runTask(final Runnable r)
{
if (r != null)
{
if (PS.get().TASK == null)
{
2015-08-07 11:38:39 +10:00
r.run();
return;
}
PS.get().TASK.task(r);
2015-02-20 17:34:19 +11:00
}
2015-02-16 02:22:00 +11:00
}
2015-02-23 12:32:27 +11:00
2015-04-29 22:04:25 +10:00
/**
* Run task later (delay in ticks)
* @param r
* @param delay
*/
2015-09-11 20:09:22 +10:00
public static void runTaskLater(final Runnable r, final int delay)
{
if (r != null)
{
if (PS.get().TASK == null)
{
2015-08-07 11:38:39 +10:00
r.run();
return;
}
PS.get().TASK.taskLater(r, delay);
2015-02-20 17:34:19 +11:00
}
2015-01-31 18:09:48 +11:00
}
2015-02-23 12:32:27 +11:00
2015-09-11 20:09:22 +10:00
public static void runTaskLaterAsync(final Runnable r, final int delay)
{
if (r != null)
{
if (PS.get().TASK == null)
{
2015-08-07 11:38:39 +10:00
r.run();
return;
}
PS.get().TASK.taskLaterAsync(r, delay);
2015-02-20 17:34:19 +11:00
}
2015-02-19 19:51:10 +11:00
}
2015-07-03 13:21:21 +02:00
2015-09-11 20:09:22 +10:00
public abstract int taskRepeat(final Runnable r, final int interval);
public abstract int taskRepeatAsync(final Runnable r, final int interval);
2015-07-03 13:21:21 +02:00
public abstract void taskAsync(final Runnable r);
public abstract void task(final Runnable r);
2015-09-11 20:09:22 +10:00
public abstract void taskLater(final Runnable r, final int delay);
2015-07-03 13:21:21 +02:00
2015-09-11 20:09:22 +10:00
public abstract void taskLaterAsync(final Runnable r, final int delay);
2015-07-03 13:21:21 +02:00
2015-09-11 20:09:22 +10:00
public abstract void cancelTask(final int task);
2015-01-10 01:05:10 +11:00
}