diff --git a/paper-api/src/main/java/org/bukkit/World.java b/paper-api/src/main/java/org/bukkit/World.java index 96120ce0e0..bff01411f4 100644 --- a/paper-api/src/main/java/org/bukkit/World.java +++ b/paper-api/src/main/java/org/bukkit/World.java @@ -1,9 +1,7 @@ package org.bukkit; -import java.io.File; import io.papermc.paper.raytracing.PositionedRayTraceConfigurationBuilder; -import org.bukkit.generator.ChunkGenerator; - +import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -2410,9 +2408,17 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient public BiomeProvider getBiomeProvider(); /** - * Saves world to disk + * Saves the world to disk */ - public void save(); + default void save() { + save(false); + } + + /** + * Saves the world to disk + * @param flush Whether to wait for the chunk writer to finish + */ + void save(boolean flush); /** * Gets a list of all applied {@link BlockPopulator}s for this World diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 1439d28216..a92e087766 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1264,13 +1264,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { // Paper end @Override - public void save() { + public void save(boolean flush) { org.spigotmc.AsyncCatcher.catchOp("world save"); // Spigot this.server.checkSaveState(); boolean oldSave = this.world.noSave; this.world.noSave = false; - this.world.save(null, false, false); + this.world.save(null, flush, false); this.world.noSave = oldSave; }