diff --git a/Plain Craft Launcher 2/Modules/Base/ModBase.vb b/Plain Craft Launcher 2/Modules/Base/ModBase.vb
index 1e98911..916e6e0 100644
--- a/Plain Craft Launcher 2/Modules/Base/ModBase.vb
+++ b/Plain Craft Launcher 2/Modules/Base/ModBase.vb
@@ -838,16 +838,16 @@ Public Module ModBase
'确保目录存在
Directory.CreateDirectory(GetPathFromFullPath(FilePath))
'写入文件
- If File.Exists(FilePath) Then
- '如果文件存在,刷新目前文件
- Using writer As New StreamWriter(FilePath, Append, If(Encoding, GetEncoding(ReadFileBytes(FilePath))))
+ If Append Then
+ '追加目前文件
+ Using writer As New StreamWriter(FilePath, True, If(Encoding, GetEncoding(ReadFileBytes(FilePath))))
writer.Write(Text)
writer.Flush()
writer.Close()
End Using
Else
- '如果文件不存在,则新建并写入
- File.WriteAllText(FilePath, Text, If(Encoding, New UTF8Encoding(False)))
+ '直接写入字节集
+ File.WriteAllBytes(FilePath, If(Encoding Is Nothing, Encoding.UTF8.GetBytes(Text), Encoding.GetBytes(Text)))
End If
End Sub
'''
diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb
index 01b1bab..e5ce04b 100644
--- a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb
+++ b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb
@@ -128,6 +128,10 @@ Public Module ModLaunch
Loaders.Insert(3, New LoaderTask(Of Integer, Integer)("内存优化", AddressOf McLaunchMemoryOptimize) With {.ProgressWeight = 30})
Case 2 '关闭
End Select
+ '显示设置
+ If Setup.Get("LaunchGraphicSetup") Then
+ Loaders.Insert(3, New LoaderTask(Of Integer, Integer)("检查显示设置", AddressOf McLaunchCheckGraphicSettings) With {.ProgressWeight = 2})
+ End If
Dim LaunchLoader As New LoaderCombo(Of Object)("Minecraft 启动", Loaders) With {.Show = False}
If McLoginLoader.State = LoadState.Finished Then McLoginLoader.State = LoadState.Waiting '要求重启登录主加载器,它会自行决定是否启动副加载器
'等待加载器执行并更新 UI
@@ -203,6 +207,48 @@ NextInner:
#End Region
+#Region "显示设置"
+
+ Private Sub McLaunchCheckGraphicSettings(Loader As LoaderTask(Of Integer, Integer))
+ Const GPU_KEY As String = "Software\Microsoft\DirectX\UserGpuPreferences"
+ Const TARGET_SETUP As String = "GpuPreference=2;"
+ Dim javaPath As String = McLaunchJavaSelected.PathJavaw
+
+ McLaunchLog("显示设置开始")
+ '读取现行设置
+ Try
+ Dim parentKey As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser
+ Dim regKey As Microsoft.Win32.RegistryKey = parentKey.OpenSubKey(GPU_KEY, False)
+ If regKey IsNot Nothing Then
+ Dim currentSetting As Object = regKey.GetValue(javaPath)
+ If currentSetting IsNot Nothing And TARGET_SETUP.Equals(currentSetting.ToString()) Then
+ McLaunchLog("不需要调整显示设置")
+ Exit Sub
+ End If
+ regKey.Close()
+ End If
+ Catch ex As Exception
+ McLaunchLog("无法读取注册表,跳过显示设置")
+ Exit Sub
+ End Try
+ '更新设置
+ Try
+ If Not IsAdmin() Then RunAsAdmin("")
+ Dim parentKey As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser
+ Dim regKey As Microsoft.Win32.RegistryKey = parentKey.OpenSubKey(GPU_KEY, True)
+ If regKey Is Nothing Then
+ regKey = parentKey.CreateSubKey(GPU_KEY)
+ End If
+ regKey.SetValue(javaPath, TARGET_SETUP)
+ Catch ex As Exception
+ McLaunchLog("无法写入显示设置")
+ Exit Sub
+ End Try
+ McLaunchLog("已修改显示设置")
+ End Sub
+
+#End Region
+
#Region "预检测"
Private Sub McLaunchPrecheck()
@@ -1317,14 +1363,15 @@ Retry:
McLaunchLog("开始获取 Minecraft 启动参数")
'获取基准字符串与参数信息
Dim Arguments As String
+ Arguments = If(McLaunchJavaSelected.VersionCode > 8, "-Dfile.encoding=UTF-8 -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8 ", Nothing) '#4700
If McVersionCurrent.JsonObject("arguments") IsNot Nothing AndAlso McVersionCurrent.JsonObject("arguments")("jvm") IsNot Nothing Then
McLaunchLog("获取新版 JVM 参数")
- Arguments = McLaunchArgumentsJvmNew(McVersionCurrent)
+ Arguments += McLaunchArgumentsJvmNew(McVersionCurrent)
McLaunchLog("新版 JVM 参数获取成功:")
McLaunchLog(Arguments)
Else
McLaunchLog("获取旧版 JVM 参数")
- Arguments = McLaunchArgumentsJvmOld(McVersionCurrent)
+ Arguments += McLaunchArgumentsJvmOld(McVersionCurrent)
McLaunchLog("旧版 JVM 参数获取成功:")
McLaunchLog(Arguments)
End If
@@ -1421,9 +1468,10 @@ Retry:
'添加 Java Wrapper 作为主 Jar
If McLaunchJavaSelected.VersionCode >= 9 Then DataList.Add("--add-exports cpw.mods.bootstraplauncher/cpw.mods.bootstraplauncher=ALL-UNNAMED")
- DataList.Add("-Doolloo.jlw.tmpdir=""" & PathPure.TrimEnd("\") & """")
- DataList.Add("-jar """ & ExtractJavaWrapper() & """")
-
+ If Setup.Get("VersionAdvanceUseLaunchWrapperV2", Version) AndAlso Setup.Get("LaunchAdvanceUseLaunchWrapper") Then
+ DataList.Add("-Doolloo.jlw.tmpdir=""" & PathPure.TrimEnd("\") & """")
+ DataList.Add("-jar """ & ExtractJavaWrapper() & """")
+ End If
'添加 MainClass
If Version.JsonObject("mainClass") Is Nothing Then
Throw New Exception("版本 json 中没有 mainClass 项!")
@@ -1488,9 +1536,10 @@ NextVersion:
'添加 Java Wrapper 作为主 Jar
If McLaunchJavaSelected.VersionCode >= 9 Then DataList.Add("--add-exports cpw.mods.bootstraplauncher/cpw.mods.bootstraplauncher=ALL-UNNAMED")
- DataList.Add("-Doolloo.jlw.tmpdir=""" & PathPure.TrimEnd("\") & """")
- DataList.Add("-jar """ & ExtractJavaWrapper() & """")
-
+ If Setup.Get("VersionAdvanceUseLaunchWrapperV2", Version) AndAlso Setup.Get("LaunchAdvanceUseLaunchWrapper") Then
+ DataList.Add("-Doolloo.jlw.tmpdir=""" & PathPure.TrimEnd("\") & """")
+ DataList.Add("-jar """ & ExtractJavaWrapper() & """")
+ End If
'将 "-XXX" 与后面 "XXX" 合并到一起
'如果不合并,会导致 Forge 1.17 启动无效,它有两个 --add-exports,进一步导致其中一个在后面被去重
Dim DeDuplicateDataList As New List(Of String)
@@ -2050,6 +2099,7 @@ IgnoreCustomSkin:
'输出 bat
Try
Dim CmdString As String =
+ $"{If(McLaunchJavaSelected.VersionCode > 8, "chcp 65001>nul" & vbCrLf, Nothing)}" &
"@echo off" & vbCrLf &
"title 启动 - " & McVersionCurrent.Name & vbCrLf &
"echo 游戏正在启动,请稍候。" & vbCrLf &
@@ -2142,8 +2192,8 @@ IgnoreCustomSkin:
StartInfo.EnvironmentVariables("Path") = Join(Paths.Distinct.ToList, ";")
'设置其他参数
- StartInfo.StandardErrorEncoding = Encoding.UTF8
- StartInfo.StandardOutputEncoding = Encoding.UTF8
+ StartInfo.StandardErrorEncoding = If(McLaunchJavaSelected.VersionCode > 8, Encoding.UTF8, Nothing)
+ StartInfo.StandardOutputEncoding = If(McLaunchJavaSelected.VersionCode > 8, Encoding.UTF8, Nothing)
StartInfo.WorkingDirectory = ShortenPath(McVersionCurrent.PathIndie)
StartInfo.UseShellExecute = False
StartInfo.RedirectStandardOutput = True
diff --git a/Plain Craft Launcher 2/Modules/ModMusic.vb b/Plain Craft Launcher 2/Modules/ModMusic.vb
index 6a7e34d..0632b83 100644
--- a/Plain Craft Launcher 2/Modules/ModMusic.vb
+++ b/Plain Craft Launcher 2/Modules/ModMusic.vb
@@ -1,4 +1,7 @@
-Public Module ModMusic
+Imports NAudio.CoreAudioApi
+Imports NAudio.CoreAudioApi.Interfaces
+
+Public Module ModMusic
#Region "播放列表"
@@ -66,44 +69,44 @@
'''
Private Sub MusicRefreshUI()
RunInUi(
- Sub()
- Try
+ Sub()
+ Try
- If Not MusicAllList.Any() Then
- '无背景音乐
- FrmMain.BtnExtraMusic.Show = False
- Else
- '有背景音乐
- FrmMain.BtnExtraMusic.Show = True
- Dim ToolTipText As String
- If MusicState = MusicStates.Pause Then
- FrmMain.BtnExtraMusic.Logo = Logo.IconPlay
- FrmMain.BtnExtraMusic.LogoScale = 0.8
- ToolTipText = "已暂停:" & GetFileNameWithoutExtentionFromPath(MusicCurrent)
- If MusicAllList.Count > 1 Then
- ToolTipText += vbCrLf & "左键恢复播放,右键播放下一曲。"
- Else
- ToolTipText += vbCrLf & "左键恢复播放,右键重新从头播放。"
- End If
+ If Not MusicAllList.Any() Then
+ '无背景音乐
+ FrmMain.BtnExtraMusic.Show = False
Else
- FrmMain.BtnExtraMusic.Logo = Logo.IconMusic
- FrmMain.BtnExtraMusic.LogoScale = 1
- ToolTipText = "正在播放:" & GetFileNameWithoutExtentionFromPath(MusicCurrent)
- If MusicAllList.Count > 1 Then
- ToolTipText += vbCrLf & "左键暂停,右键播放下一曲。"
+ '有背景音乐
+ FrmMain.BtnExtraMusic.Show = True
+ Dim ToolTipText As String
+ If MusicState = MusicStates.Pause Then
+ FrmMain.BtnExtraMusic.Logo = Logo.IconPlay
+ FrmMain.BtnExtraMusic.LogoScale = 0.8
+ ToolTipText = "已暂停:" & GetFileNameWithoutExtentionFromPath(MusicCurrent)
+ If MusicAllList.Count > 1 Then
+ ToolTipText += vbCrLf & "左键恢复播放,右键播放下一曲。"
+ Else
+ ToolTipText += vbCrLf & "左键恢复播放,右键重新从头播放。"
+ End If
Else
- ToolTipText += vbCrLf & "左键暂停,右键重新从头播放。"
+ FrmMain.BtnExtraMusic.Logo = Logo.IconMusic
+ FrmMain.BtnExtraMusic.LogoScale = 1
+ ToolTipText = "正在播放:" & GetFileNameWithoutExtentionFromPath(MusicCurrent)
+ If MusicAllList.Count > 1 Then
+ ToolTipText += vbCrLf & "左键暂停,右键播放下一曲。"
+ Else
+ ToolTipText += vbCrLf & "左键暂停,右键重新从头播放。"
+ End If
End If
+ FrmMain.BtnExtraMusic.ToolTip = ToolTipText
+ ToolTipService.SetVerticalOffset(FrmMain.BtnExtraMusic, If(ToolTipText.Contains(vbLf), 10, 16))
End If
- FrmMain.BtnExtraMusic.ToolTip = ToolTipText
- ToolTipService.SetVerticalOffset(FrmMain.BtnExtraMusic, If(ToolTipText.Contains(vbLf), 10, 16))
- End If
- If FrmSetupUI IsNot Nothing Then FrmSetupUI.MusicRefreshUI()
+ If FrmSetupUI IsNot Nothing Then FrmSetupUI.MusicRefreshUI()
- Catch ex As Exception
- Log(ex, "刷新背景音乐 UI 失败", LogLevel.Feedback)
- End Try
- End Sub)
+ Catch ex As Exception
+ Log(ex, "刷新背景音乐 UI 失败", LogLevel.Feedback)
+ End Try
+ End Sub)
End Sub
'''
@@ -223,11 +226,11 @@
Public Function MusicPause() As Boolean
If MusicState = MusicStates.Play Then
RunInThread(
- Sub()
- Log("[Music] 已暂停播放")
- MusicNAudio?.Pause()
- MusicRefreshUI()
- End Sub)
+ Sub()
+ Log("[Music] 已暂停播放")
+ MusicNAudio?.Pause()
+ MusicRefreshUI()
+ End Sub)
Return True
Else
Log($"[Music] 无需暂停播放,当前状态为 {MusicState}")
@@ -243,11 +246,11 @@
Return False
Else
RunInThread(
- Sub()
- Log("[Music] 已恢复播放")
- MusicNAudio?.Play()
- MusicRefreshUI()
- End Sub)
+ Sub()
+ Log("[Music] 已恢复播放")
+ MusicNAudio?.Play()
+ MusicRefreshUI()
+ End Sub)
Return True
End If
End Function
@@ -255,7 +258,7 @@
#End Region
'''
- ''' 当前正在播放的 NAudio.Wave.WaveOut。
+ ''' 当前正在播放的 NAudio.Wave.WaveOutEvent。
'''
Public MusicNAudio = Nothing
'''
@@ -267,12 +270,13 @@
''' 在 MusicUuid 不变的前提下,持续播放某地址的音乐,且在播放结束后随机播放下一曲。
'''
Private Sub MusicLoop(Optional IsFirstLoad As Boolean = False)
- Dim CurrentWave As NAudio.Wave.WaveOut = Nothing
+ Dim CurrentWave As NAudio.Wave.WaveOutEvent = Nothing
Dim Reader As NAudio.Wave.WaveStream = Nothing
Try
'开始播放
- CurrentWave = New NAudio.Wave.WaveOut()
+ CurrentWave = New NAudio.Wave.WaveOutEvent()
MusicNAudio = CurrentWave
+ CurrentWave.DeviceNumber = -1
Reader = New NAudio.Wave.AudioFileReader(MusicCurrent)
CurrentWave.Init(Reader)
CurrentWave.Play()
@@ -303,7 +307,7 @@
If ex.Message.Contains("Got a frame at sample rate") OrElse ex.Message.Contains("does not support changes to") Then
Hint("播放音乐失败(" & GetFileNameFromPath(MusicCurrent) & "):PCL 不支持播放音频属性在中途发生变化的音乐", HintType.Critical)
ElseIf Not (MusicCurrent.EndsWithF(".wav", True) OrElse MusicCurrent.EndsWithF(".mp3", True) OrElse MusicCurrent.EndsWithF(".flac", True)) OrElse
- ex.Message.Contains("0xC00D36C4") Then '#5096:不支持给定的 URL 的字节流类型。 (异常来自 HRESULT:0xC00D36C4)
+ ex.Message.Contains("0xC00D36C4") Then '#5096:不支持给定的 URL 的字节流类型。 (异常来自 HRESULT:0xC00D36C4)
Hint("播放音乐失败(" & GetFileNameFromPath(MusicCurrent) & "):PCL 可能不支持此音乐格式,请将格式转换为 .wav、.mp3 或 .flac 后再试", HintType.Critical)
Else
Log(ex, "播放音乐失败(" & GetFileNameFromPath(MusicCurrent) & ")", LogLevel.Hint)
diff --git a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb
index 2875dbd..c0883a6 100644
--- a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb
+++ b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb
@@ -2087,8 +2087,8 @@ Retry:
'判断 OptiFine 是否作为 Mod 进行下载
Dim MinecraftCode As Integer = If(Request.MinecraftName.Contains("."), Val(Request.MinecraftName.Split(".")(1)), 0)
Dim OptiFineAsMod As Boolean = Request.OptiFineEntry IsNot Nothing AndAlso '1. 选择了 OptiFine
- (Request.FabricVersion IsNot Nothing OrElse '2. 选择了 Fabric...
- (Request.ForgeEntry IsNot Nothing AndAlso MinecraftCode >= 14 AndAlso MinecraftCode <= 15)) '...或者 Forge 1.14~15(#4134)
+ Request.FabricVersion IsNot Nothing OrElse '2. 选择了 Mod 加载器
+ Request.ForgeEntry IsNot Nothing
Dim ModsFolder As String = New McVersion(OutputFolder).GetPathIndie(True) & "mods\"
If OptiFineAsMod Then
diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb
index 7a9b417..df23d0f 100644
--- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb
@@ -1,4 +1,4 @@
-Public Class PageDownloadCompDetail
+Public Class PageDownloadCompDetail
Private CompItem As MyCompItem = Nothing
#Region "加载器"
@@ -367,8 +367,10 @@
Case 0
FileName = $"[{ChineseName}] {File.FileName}"
Case 1
- FileName = $"{ChineseName}-{File.FileName}"
+ FileName = $"【{ChineseName}】{File.FileName}"
Case 2
+ FileName = $"{ChineseName}-{File.FileName}"
+ Case 3
FileName = $"{File.FileName}-{ChineseName}"
Case Else
FileName = File.FileName
diff --git a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb
index b23290e..f758a5e 100644
--- a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb
+++ b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb
@@ -102,7 +102,9 @@
{"LaunchAdvanceRun", New SetupEntry("")},
{"LaunchAdvanceRunWait", New SetupEntry(True)},
{"LaunchAdvanceAssets", New SetupEntry(False)},
+ {"LaunchAdvanceUseLaunchWrapper", New SetupEntry(True)},
{"LaunchAdvanceJava", New SetupEntry(False)},
+ {"LaunchGraphicSetup", New SetupEntry(False)},
{"LaunchRamType", New SetupEntry(0)},
{"LaunchRamCustom", New SetupEntry(15)},
{"LinkEula", New SetupEntry(False, Source:=SetupSource.Registry)},
@@ -171,6 +173,7 @@
{"VersionAdvanceGame", New SetupEntry("", Source:=SetupSource.Version)},
{"VersionAdvanceAssets", New SetupEntry(0, Source:=SetupSource.Version)},
{"VersionAdvanceAssetsV2", New SetupEntry(False, Source:=SetupSource.Version)},
+ {"VersionAdvanceUseLaunchWrapperV2", New SetupEntry(True, Source:=SetupSource.Version)},
{"VersionAdvanceJava", New SetupEntry(False, Source:=SetupSource.Version)},
{"VersionAdvanceRun", New SetupEntry("", Source:=SetupSource.Version)},
{"VersionAdvanceRunWait", New SetupEntry(True, Source:=SetupSource.Version)},
diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml
index 8b692a4..cc5d728 100644
--- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml
+++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml
@@ -170,6 +170,13 @@
+
+
+
+
+
+
@@ -252,6 +259,8 @@
ToolTip="警告:强烈推荐在版本设置中关闭特定版本的警告,而不是在这里关闭所有版本的警告!
如果在设置中手动选择了与当前版本不兼容的 Java,则自动跳过兼容性警告弹窗,强制使用手动选择的 Java。" />
+
diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb
index c36c123..70ad448 100644
--- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb
@@ -45,6 +45,9 @@
CType(FindName("RadioRamType" & Setup.Load("LaunchRamType")), MyRadioBox).Checked = True
SliderRamCustom.Value = Setup.Get("LaunchRamCustom")
+ '显示卡
+ CheckAdvanceGraphicSetup.Checked = Setup.Get("LaunchGraphicSetup")
+
'高级设置
TextAdvanceJvm.Text = Setup.Get("LaunchAdvanceJvm")
TextAdvanceGame.Text = Setup.Get("LaunchAdvanceGame")
@@ -52,6 +55,7 @@
CheckAdvanceRunWait.Checked = Setup.Get("LaunchAdvanceRunWait")
CheckAdvanceAssets.Checked = Setup.Get("LaunchAdvanceAssets")
CheckAdvanceJava.Checked = Setup.Get("LaunchAdvanceJava")
+ CheckAdvanceUseLaunchWrapper.Checked = Setup.Get("LaunchAdvanceUseLaunchWrapper")
Catch ex As NullReferenceException
Log(ex, "启动设置项存在异常,已被自动重置", LogLevel.Msgbox)
@@ -78,11 +82,13 @@
Setup.Reset("LaunchSkinType")
Setup.Reset("LaunchSkinID")
Setup.Reset("LaunchAdvanceJvm")
+ Setup.Reset("LaunchAdvanceUseLaunchWrapper")
Setup.Reset("LaunchAdvanceGame")
Setup.Reset("LaunchAdvanceJava")
Setup.Reset("LaunchAdvanceAssets")
Setup.Reset("LaunchAdvanceRun")
Setup.Reset("LaunchAdvanceRunWait")
+ Setup.Reset("LaunchGraphicSetup")
Setup.Reset("LaunchArgumentJavaAll")
Setup.Reset("LaunchArgumentJavaSelect")
@@ -110,7 +116,7 @@
Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboArgumentIndie.SelectionChanged, ComboArgumentVisibie.SelectionChanged, ComboArgumentWindowType.SelectionChanged, ComboArgumentPriority.SelectionChanged
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex)
End Sub
- Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceAssets.Change, CheckAdvanceJava.Change, CheckAdvanceRunWait.Change, CheckArgumentRam.Change
+ Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceAssets.Change, CheckAdvanceJava.Change, CheckAdvanceRunWait.Change, CheckArgumentRam.Change, CheckAdvanceUseLaunchWrapper.Change, CheckAdvanceGraphicSetup.Change
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked)
End Sub
@@ -211,7 +217,7 @@
End If
'设置文本
LabRamGame.Text = If(RamGame = Math.Floor(RamGame), RamGame & ".0", RamGame) & " GB" &
- If(RamGame <> RamGameActual, " (可用 " & If(RamGameActual = Math.Floor(RamGameActual), RamGameActual & ".0", RamGameActual) & " GB)", "")
+ If(Math.Abs(RamGame - RamGameActual) > 0.05, " (可用 " & If(RamGameActual = Math.Floor(RamGameActual), RamGameActual & ".0", RamGameActual) & " GB)", "")
LabRamUsed.Text = If(RamUsed = Math.Floor(RamUsed), RamUsed & ".0", RamUsed) & " GB"
LabRamTotal.Text = " / " & If(RamTotal = Math.Floor(RamTotal), RamTotal & ".0", RamTotal) & " GB"
LabRamWarn.Visibility = If(RamGame = 1 AndAlso Not JavaIs64Bit() AndAlso Not Is32BitSystem AndAlso JavaList.Any, Visibility.Visible, Visibility.Collapsed)
diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupSystem.xaml b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupSystem.xaml
index 65022e5..300b678 100644
--- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupSystem.xaml
+++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupSystem.xaml
@@ -1,4 +1,4 @@
-
+
diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb
index e01176e..9714d6f 100644
--- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb
@@ -33,6 +33,7 @@ Public Class PageVersionExport
TextExportName.HintText = PageVersionLeft.Version.Name
TextExportVersion.Text = ""
TextExportVersion.HintText = "1.0.0"
+ CheckAdvancedModrinth.Checked = False
GetExportOption(CheckOptionsBasic).Description = PageVersionLeft.Version.GetDefaultDescription()
ResetConfigOverrides()
ReloadAllSubOptions()
diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml
index 378e63e..8fdde32 100644
--- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml
+++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml
@@ -221,6 +221,8 @@
ToolTip="如果在设置中手动选择了与当前版本不兼容的 Java,则自动跳过兼容性警告弹窗,强制使用手动选择的 Java。" />
+
diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml.vb b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml.vb
index f7a23c0..0d5d607 100644
--- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml.vb
@@ -74,6 +74,7 @@
Setup.Set("VersionAdvanceAssetsV2", True, Version:=PageVersionLeft.Version)
End If
CheckAdvanceAssetsV2.Checked = Setup.Get("VersionAdvanceAssetsV2", Version:=PageVersionLeft.Version)
+ CheckAdvanceUseLaunchWrapperV2.Checked = Setup.Get("VersionAdvanceUseLaunchWrapperV2", Version:=PageVersionLeft.Version)
CheckAdvanceJava.Checked = Setup.Get("VersionAdvanceJava", Version:=PageVersionLeft.Version)
Catch ex As Exception
@@ -104,7 +105,7 @@
Setup.Reset("VersionAdvanceJava", Version:=PageVersionLeft.Version)
Setup.Reset("VersionAdvanceRun", Version:=PageVersionLeft.Version)
Setup.Reset("VersionAdvanceRunWait", Version:=PageVersionLeft.Version)
-
+ Setup.Reset("VersionAdvanceUseLaunchWrapperV2", Version:=PageVersionLeft.Version)
Setup.Reset("VersionArgumentJavaSelect", Version:=PageVersionLeft.Version)
JavaSearchLoader.Start(IsForceRestart:=True)
@@ -135,7 +136,7 @@
Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboArgumentIndie.SelectionChanged, ComboRamOptimize.SelectionChanged
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex, Version:=PageVersionLeft.Version)
End Sub
- Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceRunWait.Change, CheckAdvanceAssetsV2.Change, CheckAdvanceJava.Change
+ Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceRunWait.Change, CheckAdvanceAssetsV2.Change, CheckAdvanceJava.Change, CheckAdvanceUseLaunchWrapperV2.Change
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked, Version:=PageVersionLeft.Version)
End Sub
@@ -170,7 +171,7 @@
End If
'设置文本
LabRamGame.Text = If(RamGame = Math.Floor(RamGame), RamGame & ".0", RamGame) & " GB" &
- If(RamGame <> RamGameActual, " (可用 " & If(RamGameActual = Math.Floor(RamGameActual), RamGameActual & ".0", RamGameActual) & " GB)", "")
+ If(Math.Abs(RamGame - RamGameActual) > 0.05, " (可用 " & If(RamGameActual = Math.Floor(RamGameActual), RamGameActual & ".0", RamGameActual) & " GB)", "")
LabRamUsed.Text = If(RamUsed = Math.Floor(RamUsed), RamUsed & ".0", RamUsed) & " GB"
LabRamTotal.Text = " / " & If(RamTotal = Math.Floor(RamTotal), RamTotal & ".0", RamTotal) & " GB"
LabRamWarn.Visibility = If(RamGame = 1 AndAlso Not JavaIs64Bit(PageVersionLeft.Version) AndAlso Not Is32BitSystem AndAlso JavaList.Any, Visibility.Visible, Visibility.Collapsed)