From a3011594c0f5859e2359c1f513729857c080dc97 Mon Sep 17 00:00:00 2001 From: Eoghanmc22 Date: Mon, 10 Aug 2020 17:31:12 -0400 Subject: [PATCH] Tick event thing --- .../java/net/minestom/server/UpdateManager.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/net/minestom/server/UpdateManager.java b/src/main/java/net/minestom/server/UpdateManager.java index 46d823f14..245f1f89f 100644 --- a/src/main/java/net/minestom/server/UpdateManager.java +++ b/src/main/java/net/minestom/server/UpdateManager.java @@ -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 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 */