Tick event thing

This commit is contained in:
Eoghanmc22 2020-08-10 17:31:12 -04:00
parent 040ba417bb
commit a3011594c0

View File

@ -12,6 +12,7 @@ import net.minestom.server.thread.ThreadProvider;
import net.minestom.server.utils.thread.MinestomThread;
import net.minestom.server.utils.validate.Check;
import java.util.ArrayList;
import java.util.concurrent.ExecutorService;
public final class UpdateManager {
@ -25,6 +26,8 @@ public final class UpdateManager {
private ThreadProvider threadProvider;
private ArrayList<Runnable> tickCallbacks = new ArrayList<>();
{
//threadProvider = new PerInstanceThreadProvider();
threadProvider = new PerGroupChunkProvider();
@ -51,6 +54,9 @@ public final class UpdateManager {
currentTime = System.nanoTime();
final long time = System.currentTimeMillis();
//Tick Callbacks
tickCallbacks.forEach(Runnable::run);
// Server tick (instance/chunk/entity)
threadProvider.update(time);
@ -129,6 +135,14 @@ public final class UpdateManager {
this.threadProvider.onChunkUnload(instance, chunkX, chunkZ);
}
public void addTickCallback(Runnable callback) {
tickCallbacks.add(callback);
}
public void removeTickCallback(Runnable callback) {
tickCallbacks.remove(callback);
}
/**
* Stop the server loop
*/