mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-22 17:07:34 +01:00
2f92d4e00e
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 01bb6ba7 PR-936: Add new PersistentDataContainer methods and clean up docs bc145b90 PR-940: Create registry for banner pattern and cat type CraftBukkit Changes: cb2ea54de SPIGOT-7440, PR-1292: Fire EntityTeleportEvent for end gateways 4fea66e44 PR-1299: Add new PersistentDataContainer methods and clean up docs b483a20db PR-1303: Create registry for banner pattern and cat type 4642dd526 SPIGOT-7535: Fix maps not having an ID and also call MapInitializeEvent in more places
118 lines
4.8 KiB
Diff
118 lines
4.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: BuildTools <46540330+willkroboth@users.noreply.github.com>
|
|
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 011d4e3c6fe3ffb0636506f5447c0097b297a957..458d98cc385718a86e0ef0eb90ff9ce64d77066a 100644
|
|
--- a/src/main/java/org/bukkit/Bukkit.java
|
|
+++ b/src/main/java/org/bukkit/Bukkit.java
|
|
@@ -776,12 +776,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
|
|
@@ -793,6 +807,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
|
|
@@ -804,6 +821,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 5e5b5aedeaaca24aebe59ec2cfd0adde2ca4a7f5..383f1fcddaa50a8c94282c7a828912d73accfb62 100644
|
|
--- a/src/main/java/org/bukkit/Server.java
|
|
+++ b/src/main/java/org/bukkit/Server.java
|
|
@@ -649,34 +649,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);
|
|
|