PlotSquared/Sponge/src/main/java/com/plotsquared/sponge/util/task/SpongeTaskManager.java

70 lines
2.2 KiB
Java

package com.plotsquared.sponge.util.task;
import com.plotsquared.core.util.task.PlotSquaredTask;
import com.plotsquared.core.util.task.TaskManager;
import com.plotsquared.core.util.task.TaskTime;
import com.plotsquared.sponge.SpongePlatform;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.scheduler.Task;
import org.spongepowered.api.util.Ticks;
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
public class SpongeTaskManager extends TaskManager {
private final SpongePlatform spongeMain;
private final TaskTime.TimeConverter timeConverter;
public SpongeTaskManager(SpongePlatform spongeMain, TaskTime.TimeConverter timeConverter) {
this.spongeMain = spongeMain;
this.timeConverter = timeConverter;
}
@Override
public <T> T sync(final @NonNull Callable<T> function, final int timeout) throws Exception {
return null; //TODO
}
@Override
public <T> Future<T> callMethodSync(final @NonNull Callable<T> method) {
return null; //TODO
}
@Override
public PlotSquaredTask taskRepeat(@NonNull final Runnable runnable, @NonNull final TaskTime taskTime) {
return null; //TODO
}
@Override
public PlotSquaredTask taskRepeatAsync(@NonNull final Runnable runnable, @NonNull final TaskTime taskTime) {
//TODO input the current tick delay and interval using the Sponge Tick API.
Task task =
Task.builder().delay(Ticks.zero()).interval(Ticks.zero()).plugin(spongeMain.container).execute(runnable).build();
Sponge.asyncScheduler().submit(task);
return null;
}
@Override
public void taskAsync(@NonNull final Runnable runnable) {
//TODO
}
@Override
public void task(@NonNull final Runnable runnable) {
Task.builder().execute(runnable).plugin(spongeMain.container);
}
@Override
public void taskLater(@NonNull final Runnable runnable, @NonNull final TaskTime taskTime) {
//TODO
}
@Override
public void taskLaterAsync(@NonNull final Runnable runnable, @NonNull final TaskTime taskTime) {
//TODO
}
}