Create BukkitPlatformScheduler

This commit is contained in:
Shane Freeder
2020-02-01 02:29:02 +00:00
parent 48e547e51f
commit c916070cd1
8 changed files with 188 additions and 22 deletions

View File

@ -1,6 +1,6 @@
package com.gmail.nossr50.mcmmo.api.platform;
import com.gmail.nossr50.mcmmo.api.platform.schedular.PlatformScheduler;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.PlatformScheduler;
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataStore;
import java.io.File;
@ -33,4 +33,6 @@ public interface PlatformProvider {
void printUnsupported();
PlatformScheduler getScheduler();
void checkMetrics();
}

View File

@ -1,6 +0,0 @@
package com.gmail.nossr50.mcmmo.api.platform.schedular;
public interface PlatformScheduler {
}

View File

@ -0,0 +1,55 @@
package com.gmail.nossr50.mcmmo.api.platform.scheduler;
import java.util.function.Consumer;
public interface PlatformScheduler {
TaskBuilder getTaskBuilder();
Task scheduleTask(TaskBuilder taskBuilder);
class TaskBuilder {
Integer delay;
Integer repeatTime;
public boolean isAsync() {
return isAsync;
}
public TaskBuilder setAsync(boolean async) {
isAsync = async;
return this;
}
boolean isAsync = false;
Consumer<Task> task;
public Integer getDelay() {
return delay;
}
public TaskBuilder setDelay(Integer delay) {
this.delay = delay;
return this;
}
public Integer getRepeatTime() {
return repeatTime;
}
public TaskBuilder setRepeatTime(Integer repeatTime) {
this.repeatTime = repeatTime;
return this;
}
public Consumer<Task> getTask() {
return task;
}
public TaskBuilder setTask(Consumer<Task> task) {
this.task = task;
return this;
}
}
}

View File

@ -0,0 +1,9 @@
package com.gmail.nossr50.mcmmo.api.platform.scheduler;
public interface Task {
void cancel();
void run();
}