mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-01 12:41:50 +01:00
71c84c8132
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: 9a80d38c SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, PR-722: Add EntityRemoveEvent 258086d9 SPIGOT-7417, PR-967: Add Sign#getTargetSide and Sign#getAllowedEditor ffaba051 SPIGOT-7584: Add missing Tag.ITEMS_NON_FLAMMABLE_WOOD CraftBukkit Changes: 98b6c1ac7 SPIGOT-7589 Fix NullPointerException when bans expire a2736ddb0 SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, PR-1008: Add EntityRemoveEvent 5bf12cb89 SPIGOT-7565: Throw a more descriptive error message when a developer tries to spawn an entity from a CraftBukkit class 76d95fe7e SPIGOT-7417, PR-1343: Add Sign#getTargetSide and Sign#getAllowedEditor Spigot Changes: e9ec5485 Rebuild patches f1b62e0c Rebuild patches
117 lines
4.8 KiB
Diff
117 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 986d506ae0eb91363e7fdfa19b1f9d0d840a5207..da505ee90f49983a9458cdf371db32228791fb53 100644
|
|
--- a/src/main/java/org/bukkit/Bukkit.java
|
|
+++ b/src/main/java/org/bukkit/Bukkit.java
|
|
@@ -806,12 +806,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
|
|
@@ -823,6 +837,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
|
|
@@ -834,6 +851,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 33458df42b41e9ef5d9728d526cc45b8199f25b4..d433a9d2fe0bb487865fec33307cc4c45af475a0 100644
|
|
--- a/src/main/java/org/bukkit/Server.java
|
|
+++ b/src/main/java/org/bukkit/Server.java
|
|
@@ -673,34 +673,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);
|
|
|