diff --git a/FCLCore/src/main/java/com/tungsten/fclcore/launch/DefaultLauncher.java b/FCLCore/src/main/java/com/tungsten/fclcore/launch/DefaultLauncher.java index 6fe10d27..4d9f965a 100644 --- a/FCLCore/src/main/java/com/tungsten/fclcore/launch/DefaultLauncher.java +++ b/FCLCore/src/main/java/com/tungsten/fclcore/launch/DefaultLauncher.java @@ -183,7 +183,13 @@ public class DefaultLauncher extends Launcher { configuration.put("${natives_directory}", "${natives_directory}"); List jvmArgs = Arguments.parseArguments(version.getArguments().map(Arguments::getJvm).orElseGet(this::getDefaultJVMArguments), configuration); - res.addAll(jvmArgs.stream().filter(arg -> !arg.contains("-Djna.tmpdir=") && !arg.contains("-Dorg.lwjgl.system.SharedLibraryExtractPath=")).collect(Collectors.toList())); + res.addAll(jvmArgs.stream().map(arg -> { + String result = arg; + if (arg.contains("-Dio.netty.native.workdir") || arg.contains("-Djna.tmpdir") || arg.contains("-Dorg.lwjgl.system.SharedLibraryExtractPath")) { + result = arg.replace("${natives_directory}", FCLPath.CACHE_DIR); + } + return result; + }).collect(Collectors.toList())); Arguments argumentsFromAuthInfo = authInfo.getLaunchArguments(options); if (argumentsFromAuthInfo != null && argumentsFromAuthInfo.getJvm() != null && !argumentsFromAuthInfo.getJvm().isEmpty()) res.addAll(Arguments.parseArguments(argumentsFromAuthInfo.getJvm(), configuration));