From 701f6cb2dc94a1ee88dd2e11f6a6389d2bf387d3 Mon Sep 17 00:00:00 2001 From: "Lukas Rieger (Blue)" Date: Sun, 26 Feb 2023 19:55:42 +0100 Subject: [PATCH] Fix issue with hybrids (arclight) sometimes reporting the wrong worldfolder --- .../bluecolored/bluemap/bukkit/BukkitWorld.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/implementations/spigot/src/main/java/de/bluecolored/bluemap/bukkit/BukkitWorld.java b/implementations/spigot/src/main/java/de/bluecolored/bluemap/bukkit/BukkitWorld.java index 2a5d9444..1a4fadf5 100644 --- a/implementations/spigot/src/main/java/de/bluecolored/bluemap/bukkit/BukkitWorld.java +++ b/implementations/spigot/src/main/java/de/bluecolored/bluemap/bukkit/BukkitWorld.java @@ -31,6 +31,7 @@ import java.io.IOException; import java.lang.ref.WeakReference; +import java.nio.file.Files; import java.nio.file.Path; import java.util.Optional; import java.util.concurrent.ExecutionException; @@ -42,9 +43,19 @@ public class BukkitWorld implements ServerWorld { public BukkitWorld(World delegate) { this.delegate = new WeakReference<>(delegate); - this.saveFolder = delegate.getWorldFolder().toPath() - .resolve(getDimension().getDimensionSubPath()) + Dimension dimension = getDimension(); + Path saveFolder = delegate.getWorldFolder().toPath() + .resolve(dimension.getDimensionSubPath()) .toAbsolutePath().normalize(); + + // fix for hybrids + if (!Files.exists(saveFolder)) { + Path direct = delegate.getWorldFolder().toPath(); + if (Files.exists(direct) && direct.endsWith(dimension.getDimensionSubPath())) + saveFolder = direct; + } + + this.saveFolder = saveFolder; } @Override