Merge pull request #5526 from Txt-Text/main

读取MMC整合包instance.cfg中的JvmArgs参数
This commit is contained in:
龙腾猫跃
2025-02-12 18:32:46 +08:00
committed by GitHub
@@ -1,4 +1,4 @@
Imports System.IO.Compression Imports System.IO.Compression
Imports System.Linq.Expressions Imports System.Linq.Expressions
Public Module ModModpack Public Module ModModpack
@@ -612,8 +612,21 @@ Retry:
Try Try
Dim MMCSetupFile As String = InstallTemp & ArchiveBaseFolder & "instance.cfg" Dim MMCSetupFile As String = InstallTemp & ArchiveBaseFolder & "instance.cfg"
If File.Exists(MMCSetupFile) Then If File.Exists(MMCSetupFile) Then
'将其中的等号替换为冒号,以符合 ini 文件格式 '部分等号替换为冒号,以符合 ini 文件格式
WriteFile(MMCSetupFile, ReadFile(MMCSetupFile).Replace("=", ":")) '为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 If ReadIni(MMCSetupFile, "OverrideCommands", False) Then
Dim PreLaunchCommand As String = ReadIni(MMCSetupFile, "PreLaunchCommand") Dim PreLaunchCommand As String = ReadIni(MMCSetupFile, "PreLaunchCommand")
If PreLaunchCommand <> "" Then If PreLaunchCommand <> "" Then
@@ -642,6 +655,17 @@ Retry:
CopyFile($"{InstallTemp}{ArchiveBaseFolder}{Logo}.png", $"{PathMcFolder}versions\{VersionName}\PCL\Logo.png") CopyFile($"{InstallTemp}{ArchiveBaseFolder}{Logo}.png", $"{PathMcFolder}versions\{VersionName}\PCL\Logo.png")
Log($"[ModPack] 迁移 MultiMC 版本独立设置:版本图标({Logo}.png)") Log($"[ModPack] 迁移 MultiMC 版本独立设置:版本图标({Logo}.png)")
End If 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 End If
Catch ex As Exception Catch ex As Exception
Log(ex, $"读取 MMC 配置文件失败({InstallTemp}{ArchiveBaseFolder}instance.cfg)") Log(ex, $"读取 MMC 配置文件失败({InstallTemp}{ArchiveBaseFolder}instance.cfg)")