Paper/Spigot-API-Patches/0145-Add-Force-Loaded-Chunk-API.patch
Aikar 7438edc9a1
Rework Async Chunks API in prep for merge, add utility
This adds a new Future based, Consumer<Chunk> based, and ability
to control whether or not to generate to the Async Chunk API.

Until Async Chunks merges, these API's are still synchronous, but
this commit will allow plugins to start using the API's in use
with the Async Chunks beta.
2018-09-21 16:56:08 -04:00

56 lines
1.8 KiB
Diff

From ed1936953435055091fc55bb268342ed8de59552 Mon Sep 17 00:00:00 2001
From: willies952002 <admin@domnian.com>
Date: Wed, 29 Aug 2018 00:37:30 -0400
Subject: [PATCH] Add Force-Loaded Chunk API
diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java
index 8a8043351..4b9e0ca46 100644
--- a/src/main/java/org/bukkit/Chunk.java
+++ b/src/main/java/org/bukkit/Chunk.java
@@ -168,4 +168,20 @@ public interface Chunk {
* @return true if slimes are able to spawn in this chunk
*/
boolean isSlimeChunk();
+
+ // Paper start - Force-Loaded Chunk API
+ /**
+ * Checks if the chunk is currently force-loaded
+ *
+ * @return true if the chunk is force-loaded, otherwise false
+ */
+ boolean isForceLoaded();
+
+ /**
+ * Set's whether a chunk is force-loaded or not
+ *
+ * @param force whether or not to force load this chunk
+ */
+ void setForceLoaded(boolean force);
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 9c06fc163..5379a649e 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -202,6 +202,16 @@ public interface World extends PluginMessageRecipient, Metadatable {
*/
public boolean isChunkGenerated(int x, int z);
+ /**
+ * Checks if a chunk is force-loaded.
+ * Note: This will only return true if the chunk is also generated
+ *
+ * @param x X-coordinate of the chunk
+ * @param z Z-coordinate of the chunk
+ * @return true if the chunk is force-loaded. otherwise false
+ */
+ public boolean isChunkForceLoaded(int x, int z);
+
/**
* This is the Legacy API before Java 8 was supported. Java 8 Consumer is provided,
* as well as future support
--
2.19.0