diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb index da6550f..112b65e 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb @@ -1,4 +1,4 @@ -Imports System.IO.Compression +Imports System.IO.Compression Imports System.Linq.Expressions Public Module ModModpack @@ -612,8 +612,21 @@ Retry: Try Dim MMCSetupFile As String = InstallTemp & ArchiveBaseFolder & "instance.cfg" If File.Exists(MMCSetupFile) Then - '将其中的等号替换为冒号,以符合 ini 文件格式 - WriteFile(MMCSetupFile, ReadFile(MMCSetupFile).Replace("=", ":")) + '部分等号替换为冒号,以符合 ini 文件格式 + '为JvmArgs添加排除项,防止参数中的等号被错误的替换 + Dim MMCSetupFileLines() As String = File.ReadAllLines(MMCSetupFile) + For i As Integer = 0 To MMCSetupFileLines.Length - 1 + '按行读取,检查开头是否为"JvmArgs=" + If MMCSetupFileLines(i).StartsWith("JvmArgs=") Then + '有则只替换这个等号,忽略参数部分 + MMCSetupFileLines(i) = "JvmArgs:" & MMCSetupFileLines(i).Substring("JvmArgs=".Length) + Else + '无则全部替换 + MMCSetupFileLines(i) = MMCSetupFileLines(i).Replace("=", ":") + End If + Next + '修改后写回文件 + File.WriteAllLines(MMCSetupFile, MMCSetupFileLines) If ReadIni(MMCSetupFile, "OverrideCommands", False) Then Dim PreLaunchCommand As String = ReadIni(MMCSetupFile, "PreLaunchCommand") If PreLaunchCommand <> "" Then @@ -642,6 +655,17 @@ Retry: CopyFile($"{InstallTemp}{ArchiveBaseFolder}{Logo}.png", $"{PathMcFolder}versions\{VersionName}\PCL\Logo.png") Log($"[ModPack] 迁移 MultiMC 版本独立设置:版本图标({Logo}.png)") End If + 'JvmArgs参数 + Dim JvmArgs As String = ReadIni(MMCSetupFile, "JvmArgs", "") + If JvmArgs <> "" Then + WriteIni(SetupFile, "VersionAdvanceJvm", JvmArgs) + Log("[ModPack] 迁移 MultiMC 版本独立设置:JVM 参数:" & JvmArgs) + End If + '这段我看参数有就给加上了... + If ReadIni(MMCSetupFile, "OverrideJavaArgs", False) Then + WriteIni(SetupFile, "VersionAdvanceJavaArgs", True) + Log("[ModPack] 迁移 MultiMC 版本独立设置:覆盖 JavaArgs") + End If End If Catch ex As Exception Log(ex, $"读取 MMC 配置文件失败({InstallTemp}{ArchiveBaseFolder}instance.cfg)")