diff --git a/paper-api/src/main/java/org/bukkit/World.java b/paper-api/src/main/java/org/bukkit/World.java index 04a1379f5..ae342a5ce 100644 --- a/paper-api/src/main/java/org/bukkit/World.java +++ b/paper-api/src/main/java/org/bukkit/World.java @@ -2,6 +2,7 @@ package org.bukkit; import io.papermc.paper.raytracing.PositionedRayTraceConfigurationBuilder; import java.io.File; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -2867,7 +2868,17 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * @return The folder of this world. */ @NotNull - public File getWorldFolder(); + default File getWorldFolder() { + return getWorldPath().toFile(); + } + + /** + * Gets the path of this world on disk. + * + * @return The path of this world. + */ + @NotNull + Path getWorldPath(); /** * Gets the type of 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 aa0a61d7f..ee7a41690 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -13,6 +13,7 @@ import io.papermc.paper.raytracing.PositionedRayTraceConfigurationBuilder; import io.papermc.paper.raytracing.PositionedRayTraceConfigurationBuilderImpl; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import java.io.File; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -1609,8 +1610,8 @@ public class CraftWorld extends CraftRegionAccessor implements World { } @Override - public File getWorldFolder() { - return this.world.levelStorageAccess.getLevelPath(LevelResource.ROOT).toFile().getParentFile(); + public Path getWorldPath() { + return this.world.levelStorageAccess.getLevelPath(LevelResource.ROOT).getParent(); } @Override