diff --git a/src/main/java/org/betterx/bclib/api/v2/levelgen/LevelGenEvents.java b/src/main/java/org/betterx/bclib/api/v2/levelgen/LevelGenEvents.java index 0589f993..11aba592 100644 --- a/src/main/java/org/betterx/bclib/api/v2/levelgen/LevelGenEvents.java +++ b/src/main/java/org/betterx/bclib/api/v2/levelgen/LevelGenEvents.java @@ -24,8 +24,10 @@ import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.dimension.LevelStem; import net.minecraft.world.level.levelgen.WorldDimensions; import net.minecraft.world.level.levelgen.presets.WorldPreset; +import net.minecraft.world.level.storage.LevelResource; import net.minecraft.world.level.storage.LevelStorageSource; +import java.nio.file.Path; import java.util.List; import java.util.Map; import java.util.Optional; @@ -66,7 +68,9 @@ public class LevelGenEvents { LevelStorageSource.LevelStorageAccess storageAccess, Consumer allDone ) { - return DataFixerAPI.fixData(storageAccess, allDone != null, allDone); + final Path dataPath = storageAccess.getLevelPath(LevelResource.ROOT).resolve("data"); + WorldConfig.setDataDir(dataPath.toFile()); + return DataFixerAPI.fixData(storageAccess, allDone != null && BCLib.isClient(), allDone); } private static Optional> adaptWorldPreset( diff --git a/src/main/java/org/betterx/worlds/together/world/WorldConfig.java b/src/main/java/org/betterx/worlds/together/world/WorldConfig.java index 9edc6f17..de239a08 100644 --- a/src/main/java/org/betterx/worlds/together/world/WorldConfig.java +++ b/src/main/java/org/betterx/worlds/together/world/WorldConfig.java @@ -19,6 +19,7 @@ import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Optional; +import org.jetbrains.annotations.ApiStatus; /** * Mod-specifix data-storage for a world. @@ -35,8 +36,13 @@ public class WorldConfig { private static final String TAG_MODIFIED = "modify_version"; private static File dataDir; - public static void load(File dataDir) { + @ApiStatus.Internal + public static void setDataDir(File dataDir) { WorldConfig.dataDir = dataDir; + } + + public static void load(File dataDir) { + WorldConfig.setDataDir(dataDir); MODS.stream() .parallel() .forEach(modID -> { @@ -125,9 +131,8 @@ public class WorldConfig { * @param modID {@link String} mod ID. */ public static void saveFile(String modID) { - try { - if (!dataDir.exists()) { + if (dataDir != null && !dataDir.exists()) { dataDir.mkdirs(); } CompoundTag tag = getRootTag(modID);