From 5edc73cc035c9f82ba116898136eefc7be22f834 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sat, 6 Dec 2025 12:28:22 -0600 Subject: [PATCH] enable long file paths for the config file --- .../core/config/file/ConfigFileHandler.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/config/file/ConfigFileHandler.java b/core/src/main/java/com/seibel/distanthorizons/core/config/file/ConfigFileHandler.java index 4b46f0a07..663d4ac08 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/config/file/ConfigFileHandler.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/config/file/ConfigFileHandler.java @@ -24,12 +24,14 @@ import com.seibel.distanthorizons.core.config.ConfigHandler; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.config.types.AbstractConfigBase; import com.seibel.distanthorizons.core.config.types.ConfigEntry; +import com.seibel.distanthorizons.core.jar.EPlatform; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper; import com.seibel.distanthorizons.coreapi.ModInfo; import org.apache.logging.log4j.LogManager; import com.seibel.distanthorizons.core.logging.DhLogger; +import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -62,7 +64,16 @@ public class ConfigFileHandler public ConfigFileHandler(Path configPath) { - this.configPath = configPath; + String path = configPath.toAbsolutePath().toString(); // relative paths don't work if long file paths are enabled below + if (EPlatform.get() == EPlatform.WINDOWS) + { + // enable long file paths on windows to prevent edge cases where + // users' MC folder has a long file path (IE custom launchers) + // https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry + path = "\\\\?\\" + path; + } + this.configPath = new File(path).toPath(); + this.nightConfig = CommentedFileConfig .builder(this.configPath.toFile())