From f62117dbe0ccc93014e1614cdcf9cf0cb81d2d2d Mon Sep 17 00:00:00 2001 From: themode Date: Tue, 13 Oct 2020 04:31:03 +0200 Subject: [PATCH] Info related to chunk load/unload signal, required to create an instance implementation --- .../java/net/minestom/server/UpdateManager.java | 13 +++++++++++-- .../java/net/minestom/server/instance/Instance.java | 6 +++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minestom/server/UpdateManager.java b/src/main/java/net/minestom/server/UpdateManager.java index c584847b4..43dc4ce63 100644 --- a/src/main/java/net/minestom/server/UpdateManager.java +++ b/src/main/java/net/minestom/server/UpdateManager.java @@ -5,6 +5,7 @@ import net.minestom.server.chat.ColoredText; import net.minestom.server.entity.EntityManager; import net.minestom.server.entity.Player; import net.minestom.server.instance.Instance; +import net.minestom.server.instance.InstanceManager; import net.minestom.server.network.ConnectionManager; import net.minestom.server.network.packet.server.play.KeepAlivePacket; import net.minestom.server.thread.PerGroupChunkProvider; @@ -134,6 +135,8 @@ public final class UpdateManager { /** * Signal the {@link ThreadProvider} that an instance has been created. + *

+ * WARNING: should be automatically done by the {@link InstanceManager}. * * @param instance the instance */ @@ -145,6 +148,8 @@ public final class UpdateManager { /** * Signal the {@link ThreadProvider} that an instance has been deleted. + *

+ * WARNING: should be automatically done by the {@link InstanceManager}. * * @param instance the instance */ @@ -155,7 +160,9 @@ public final class UpdateManager { } /** - * Signal the {@link ThreadProvider} that a chunk has been loaded + * Signal the {@link ThreadProvider} that a chunk has been loaded. + *

+ * WARNING: should be automatically done by the {@link Instance} implementation. * * @param instance the instance of the chunk * @param chunkX the chunk X @@ -168,7 +175,9 @@ public final class UpdateManager { } /** - * Signal the {@link ThreadProvider} that a chunk has been unloaded + * Signal the {@link ThreadProvider} that a chunk has been unloaded. + *

+ * WARNING: should be automatically done by the {@link Instance} implementation. * * @param instance the instance of the chunk * @param chunkX the chunk X diff --git a/src/main/java/net/minestom/server/instance/Instance.java b/src/main/java/net/minestom/server/instance/Instance.java index ef1af57e6..3484dfd80 100644 --- a/src/main/java/net/minestom/server/instance/Instance.java +++ b/src/main/java/net/minestom/server/instance/Instance.java @@ -41,7 +41,11 @@ import java.util.function.Consumer; * Instances are what are called "worlds" in Minecraft *

* An instance has entities and chunks, each instance contains its own entity list but the - * chunk implementation has to be defined, see {@link InstanceContainer} + * chunk implementation has to be defined, see {@link InstanceContainer}. + *

+ * WARNING: when making your own implementation, for chunks and entities within it, + * you need to be sure to signal the {@link UpdateManager} of the changes using + * {@link UpdateManager#signalChunkLoad(Instance, int, int)} and {@link UpdateManager#signalChunkUnload(Instance, int, int)}. */ public abstract class Instance implements BlockModifier, EventHandler, DataContainer {