Browse Source

fixed java path with spaces and forge arguments with spaces

Veloe 2 years ago
parent
commit
364ece7cae

+ 4 - 1
VeloeMinecraftLauncher/MinecraftLauncher/StartCommandBuilder.cs

@@ -183,12 +183,15 @@ internal static class StartCommandBuilder
                     }
 
                     bool containsArgWithValue = value.Contains('=');
+                    bool containsPathValueOnly = value.StartsWith(Path.GetDirectoryName(Settings.minecraftForlderPath + "libraries/"));
                     //value = value.Replace(" ", "");
                     if (containsArgWithValue)
                         value = value.Replace("=", "=\"");
                     returnString.Append(" ");
+                    if (containsPathValueOnly)
+                        returnString.Append("\"");
                     returnString.Append(value);
-                    if (containsArgWithValue)
+                    if (containsArgWithValue || containsPathValueOnly)
                         returnString.Append("\"");
                 }
         }

+ 3 - 9
VeloeMinecraftLauncher/ViewModels/MainWindowViewModel.cs

@@ -185,15 +185,6 @@ public class MainWindowViewModel : ViewModelBase
                 OpenErrorWindow(ex);
             }
             try
-            {
-                if (Settings.minecraftForlderPath.Contains(' '))
-                    OpenErrorWindow("The game folder contains spaces, it can break internal java versions. Please change the game folder in settings.");
-            }
-            catch (Exception ex)
-            {
-                OpenErrorWindow(ex);
-            }
-            try
             {
                 _logger.Debug("Checking modpacks updates...");
                 var modpacksInfo = Downloader.DownloadAndDeserializeJsonData<List<Modpack>>("https://files.veloe.link/launcher/modpacks.json");
@@ -515,6 +506,9 @@ public class MainWindowViewModel : ViewModelBase
 
                 minecraft.StartInfo = proc;
 
+                minecraft.StartInfo.EnvironmentVariables["JAVA_HOME"] = $"{Settings.minecraftForlderPath}javaruntime/{version}";
+                minecraft.StartInfo.EnvironmentVariables["PATH"] = "%JAVA_HOME%\bin;%PATH%";
+
                 Task.Run(() =>
                 {
                     try

+ 0 - 5
VeloeMinecraftLauncher/ViewModels/SettingsWindowViewModel.cs

@@ -24,11 +24,6 @@ public class SettingsWindowViewModel : ViewModelBase
         value => { UInt32 result; bool resultb = UInt32.TryParse(value, out result); /*logger.Debug("Validator result: {0} {1}", value, resultb);*/ IsValid = resultb; return resultb; },
         "Not a number.");
 
-        this.ValidationRule(
-        viewModel => viewModel.MinecraftFolderPath,
-        value => { bool resultb = !value?.Contains(' ') ?? false; IsValid = resultb; return resultb; },
-        "Path contains spaces, it can break internal java intallation.");
-
         this.ValidationRule(
         viewModel => viewModel.MaxLog,
         value => { UInt32 result; bool resultb = UInt32.TryParse(value, out result); /*logger.Debug("Validator result: {0} {1}", value, resultb);*/ IsValid = resultb; return resultb; },