aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0357-Add-method-isTickingWorlds-to-Bukkit.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0357-Add-method-isTickingWorlds-to-Bukkit.patch')
-rw-r--r--patches/api/0357-Add-method-isTickingWorlds-to-Bukkit.patch117
1 files changed, 117 insertions, 0 deletions
diff --git a/patches/api/0357-Add-method-isTickingWorlds-to-Bukkit.patch b/patches/api/0357-Add-method-isTickingWorlds-to-Bukkit.patch
new file mode 100644
index 0000000000..9627540551
--- /dev/null
+++ b/patches/api/0357-Add-method-isTickingWorlds-to-Bukkit.patch
@@ -0,0 +1,117 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: BuildTools <[email protected]>
+Date: Fri, 19 Aug 2022 16:11:51 -0400
+Subject: [PATCH] Add method isTickingWorlds() to Bukkit.
+
+
+diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
+index d56baf72235173121a694e8bb5331f2c515d3aa8..a1d9663730d5a63685d337f5eba40532b47ffbfc 100644
+--- a/src/main/java/org/bukkit/Bukkit.java
++++ b/src/main/java/org/bukkit/Bukkit.java
+@@ -808,12 +808,26 @@ public final class Bukkit {
+ return server.getWorlds();
+ }
+
++ // Paper start
++ /**
++ * Gets whether the worlds are being ticked right now.
++ *
++ * @return true if the worlds are being ticked, false otherwise.
++ */
++ public static boolean isTickingWorlds(){
++ return server.isTickingWorlds();
++ }
++ // Paper end
++
+ /**
+ * Creates or loads a world with the given name using the specified
+ * options.
+ * <p>
+ * If the world is already loaded, it will just return the equivalent of
+ * getWorld(creator.name()).
++ * <p>
++ * Do note that un/loading worlds mid-tick may have potential side effects, we strongly recommend
++ * ensuring that you're not un/loading worlds midtick by checking {@link Bukkit#isTickingWorlds()}
+ *
+ * @param creator the options to use when creating the world
+ * @return newly created or loaded world
+@@ -825,6 +839,9 @@ public final class Bukkit {
+
+ /**
+ * Unloads a world with the given name.
++ * <p>
++ * Do note that un/loading worlds mid-tick may have potential side effects, we strongly recommend
++ * ensuring that you're not un/loading worlds midtick by checking {@link Bukkit#isTickingWorlds()}
+ *
+ * @param name Name of the world to unload
+ * @param save whether to save the chunks before unloading
+@@ -836,6 +853,9 @@ public final class Bukkit {
+
+ /**
+ * Unloads the given world.
++ * <p>
++ * Do note that un/loading worlds mid-tick may have potential side effects, we strongly recommend
++ * ensuring that you're not un/loading worlds midtick by checking {@link Bukkit#isTickingWorlds()}
+ *
+ * @param world the world to unload
+ * @param save whether to save the chunks before unloading
+diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
+index 88ad9e596f801c2c137fe2d31653a841b9c01683..c1a46d13e61140c851f73f2ee7c6cec24ba8b3fa 100644
+--- a/src/main/java/org/bukkit/Server.java
++++ b/src/main/java/org/bukkit/Server.java
+@@ -675,34 +675,55 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+ @NotNull
+ public List<World> getWorlds();
+
++ // Paper start
++ /**
++ * Gets whether the worlds are being ticked right now.
++ *
++ * @return true if the worlds are being ticked, false otherwise.
++ */
++ public boolean isTickingWorlds();
++ // Paper end
++
+ /**
+ * Creates or loads a world with the given name using the specified
+ * options.
+ * <p>
+ * If the world is already loaded, it will just return the equivalent of
+ * getWorld(creator.name()).
++ * <p>
++ * Do note that un/loading worlds mid-tick may have potential side effects, we strongly recommend
++ * ensuring that you're not un/loading worlds midtick by checking {@link Bukkit#isTickingWorlds()}
+ *
+ * @param creator the options to use when creating the world
+ * @return newly created or loaded world
++ * @throws IllegalStateException when {@link #isTickingWorlds() isTickingWorlds} is true
+ */
+ @Nullable
+ public World createWorld(@NotNull WorldCreator creator);
+
+ /**
+ * Unloads a world with the given name.
++ * <p>
++ * Do note that un/loading worlds mid-tick may have potential side effects, we strongly recommend
++ * ensuring that you're not un/loading worlds midtick by checking {@link Bukkit#isTickingWorlds()}
+ *
+ * @param name Name of the world to unload
+ * @param save whether to save the chunks before unloading
+ * @return true if successful, false otherwise
++ * @throws IllegalStateException when {@link #isTickingWorlds() isTickingWorlds} is true
+ */
+ public boolean unloadWorld(@NotNull String name, boolean save);
+
+ /**
+ * Unloads the given world.
++ * <p>
++ * Do note that un/loading worlds mid-tick may have potential side effects, we strongly recommend
++ * ensuring that you're not un/loading worlds midtick by checking {@link Bukkit#isTickingWorlds()}
+ *
+ * @param world the world to unload
+ * @param save whether to save the chunks before unloading
+ * @return true if successful, false otherwise
++ * @throws IllegalStateException when {@link #isTickingWorlds() isTickingWorlds} is true
+ */
+ public boolean unloadWorld(@NotNull World world, boolean save);
+