aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0357-WorldCreator-keepSpawnLoaded.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0357-WorldCreator-keepSpawnLoaded.patch')
-rw-r--r--patches/api/0357-WorldCreator-keepSpawnLoaded.patch97
1 files changed, 97 insertions, 0 deletions
diff --git a/patches/api/0357-WorldCreator-keepSpawnLoaded.patch b/patches/api/0357-WorldCreator-keepSpawnLoaded.patch
new file mode 100644
index 0000000000..287c313c58
--- /dev/null
+++ b/patches/api/0357-WorldCreator-keepSpawnLoaded.patch
@@ -0,0 +1,97 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Shane Freeder <[email protected]>
+Date: Sat, 3 Jul 2021 21:18:41 +0100
+Subject: [PATCH] WorldCreator#keepSpawnLoaded
+
+
+diff --git a/src/main/java/org/bukkit/WorldCreator.java b/src/main/java/org/bukkit/WorldCreator.java
+index afc0ce2eaa7cf48d1255fec7377103b1f7a99734..58e3e3e0e772640b3944b4acb5a92d96431728a7 100644
+--- a/src/main/java/org/bukkit/WorldCreator.java
++++ b/src/main/java/org/bukkit/WorldCreator.java
+@@ -23,7 +23,7 @@ public class WorldCreator {
+ private boolean generateStructures = true;
+ private String generatorSettings = "";
+ private boolean hardcore = false;
+- private boolean keepSpawnInMemory = true;
++ private net.kyori.adventure.util.TriState keepSpawnLoaded = net.kyori.adventure.util.TriState.NOT_SET; // Paper
+
+ /**
+ * Creates an empty WorldCreationOptions for the given world name
+@@ -123,7 +123,7 @@ public class WorldCreator {
+ type = world.getWorldType();
+ generateStructures = world.canGenerateStructures();
+ hardcore = world.isHardcore();
+- keepSpawnInMemory = world.getKeepSpawnInMemory();
++ this.keepSpawnLoaded = net.kyori.adventure.util.TriState.byBoolean(world.getKeepSpawnInMemory()); // Paper
+
+ return this;
+ }
+@@ -146,7 +146,7 @@ public class WorldCreator {
+ generateStructures = creator.generateStructures();
+ generatorSettings = creator.generatorSettings();
+ hardcore = creator.hardcore();
+- keepSpawnInMemory = creator.keepSpawnInMemory();
++ keepSpawnLoaded = creator.keepSpawnLoaded(); // Paper
+
+ return this;
+ }
+@@ -470,21 +470,23 @@ public class WorldCreator {
+ *
+ * @param keepSpawnInMemory Whether the spawn chunks will be kept loaded
+ * @return This object, for chaining
++ * @deprecated use {@link #keepSpawnLoaded(net.kyori.adventure.util.TriState)}
+ */
+ @NotNull
++ @Deprecated(forRemoval = true) // Paper
+ public WorldCreator keepSpawnInMemory(boolean keepSpawnInMemory) {
+- this.keepSpawnInMemory = keepSpawnInMemory;
+-
+- return this;
++ return this.keepSpawnLoaded(net.kyori.adventure.util.TriState.byBoolean(keepSpawnInMemory)); // Paper
+ }
+
+ /**
+ * Gets whether or not the spawn chunks will be kept loaded.
+ *
+ * @return True if the spawn chunks will be kept loaded
++ * @deprecated use {@link #keepSpawnLoaded()}
+ */
++ @Deprecated(forRemoval = true) // Paper
+ public boolean keepSpawnInMemory() {
+- return keepSpawnInMemory;
++ return this.keepSpawnLoaded() == net.kyori.adventure.util.TriState.TRUE; // Paper
+ }
+
+ /**
+@@ -594,4 +596,31 @@ public class WorldCreator {
+
+ return result;
+ }
++
++ // Paper start - keep spawn loaded tristate
++ /**
++ * Returns the current intent to keep the world loaded, @see {@link WorldCreator#keepSpawnLoaded(net.kyori.adventure.util.TriState)}
++ *
++ * @return the current tristate value
++ */
++ @NotNull
++ public net.kyori.adventure.util.TriState keepSpawnLoaded() {
++ return keepSpawnLoaded;
++ }
++
++ /**
++ * Controls if a world should be kept loaded or not, default (NOT_SET) will use the servers standard
++ * configuration, otherwise, will act as an override towards this setting
++ *
++ * @param keepSpawnLoaded the new value
++ * @return This object, for chaining
++ */
++ @NotNull
++ public WorldCreator keepSpawnLoaded(@NotNull net.kyori.adventure.util.TriState keepSpawnLoaded) {
++ Preconditions.checkArgument(keepSpawnLoaded != null, "keepSpawnLoaded");
++ this.keepSpawnLoaded = keepSpawnLoaded;
++ return this;
++ }
++
++ // Paper end - keep spawn loaded tristate
+ }