Merge branch 'Hex-Dragon:main' into main
This commit is contained in:
@@ -103,6 +103,7 @@ Public Class Application
|
|||||||
Log($"[Start] 识别码:{UniqueAddress}{If(ThemeCheckOne(9), ",已解锁反馈主题", "")}")
|
Log($"[Start] 识别码:{UniqueAddress}{If(ThemeCheckOne(9), ",已解锁反馈主题", "")}")
|
||||||
Log($"[Start] 程序路径:{PathWithName}")
|
Log($"[Start] 程序路径:{PathWithName}")
|
||||||
Log($"[Start] 系统编码:{Encoding.Default} ({Encoding.Default.CodePage}, GBK={IsGBKEncoding})")
|
Log($"[Start] 系统编码:{Encoding.Default} ({Encoding.Default.CodePage}, GBK={IsGBKEncoding})")
|
||||||
|
Log($"[Start] 管理员权限:{IsAdmin()}")
|
||||||
'检测压缩包运行
|
'检测压缩包运行
|
||||||
If Path.Contains(IO.Path.GetTempPath()) OrElse Path.Contains("AppData\Local\Temp\") Then
|
If Path.Contains(IO.Path.GetTempPath()) OrElse Path.Contains("AppData\Local\Temp\") Then
|
||||||
MyMsgBox("PCL 正在临时文件夹运行,设置、游戏存档等很可能无法保存,且部分功能会无法使用或出错。" & vbCrLf & "请将 PCL 从压缩文件中解压,或是更换文件夹后再继续使用!", "环境警告", "我知道了", IsWarn:=True)
|
MyMsgBox("PCL 正在临时文件夹运行,设置、游戏存档等很可能无法保存,且部分功能会无法使用或出错。" & vbCrLf & "请将 PCL 从压缩文件中解压,或是更换文件夹后再继续使用!", "环境警告", "我知道了", IsWarn:=True)
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ Public Class FormMain
|
|||||||
Dim FeatureList As New List(Of KeyValuePair(Of Integer, String))
|
Dim FeatureList As New List(Of KeyValuePair(Of Integer, String))
|
||||||
'统计更新日志条目
|
'统计更新日志条目
|
||||||
#If BETA Then
|
#If BETA Then
|
||||||
|
If LastVersion < 332 Then 'Release 2.8.3
|
||||||
|
If LastVersion = 330 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "修复部分玩家无法启动 MC 的 Bug"))
|
||||||
|
End If
|
||||||
If LastVersion < 330 Then 'Release 2.8.2
|
If LastVersion < 330 Then 'Release 2.8.2
|
||||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(5, "NeoForge 兼容与自动安装"))
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(5, "NeoForge 兼容与自动安装"))
|
||||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "支持编译、运行 PCL 开源代码"))
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "支持编译、运行 PCL 开源代码"))
|
||||||
@@ -121,6 +124,9 @@ Public Class FormMain
|
|||||||
'3:BUG+ IMP* FEAT-
|
'3:BUG+ IMP* FEAT-
|
||||||
'2:BUG* IMP-
|
'2:BUG* IMP-
|
||||||
'1:BUG-
|
'1:BUG-
|
||||||
|
If LastVersion < 331 Then 'Snapshot 2.8.3
|
||||||
|
If LastVersion = 329 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "修复部分玩家无法启动 MC 的 Bug"))
|
||||||
|
End If
|
||||||
If LastVersion < 329 Then 'Snapshot 2.8.2
|
If LastVersion < 329 Then 'Snapshot 2.8.2
|
||||||
If LastVersion >= 327 Then
|
If LastVersion >= 327 Then
|
||||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复无法安装 Beta 版 NeoForge 的整合包的 Bug"))
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复无法安装 Beta 版 NeoForge 的整合包的 Bug"))
|
||||||
|
|||||||
@@ -11,12 +11,12 @@ Public Module ModBase
|
|||||||
#Region "声明"
|
#Region "声明"
|
||||||
|
|
||||||
'下列版本信息由更新器自动修改
|
'下列版本信息由更新器自动修改
|
||||||
Public Const VersionBaseName As String = "2.8.2" '不含分支前缀的显示用版本名
|
Public Const VersionBaseName As String = "2.8.3" '不含分支前缀的显示用版本名
|
||||||
Public Const VersionStandardCode As String = "2.8.2." & VersionBranchCode '标准格式的四段式版本号
|
Public Const VersionStandardCode As String = "2.8.3." & VersionBranchCode '标准格式的四段式版本号
|
||||||
#If BETA Then
|
#If BETA Then
|
||||||
Public Const VersionCode As Integer = 330 'Release
|
Public Const VersionCode As Integer = 332 'Release
|
||||||
#Else
|
#Else
|
||||||
Public Const VersionCode As Integer = 329 'Snapshot
|
Public Const VersionCode As Integer = 331 'Snapshot
|
||||||
#End If
|
#End If
|
||||||
'自动生成的版本信息
|
'自动生成的版本信息
|
||||||
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName
|
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName
|
||||||
@@ -1016,7 +1016,7 @@ Public Module ModBase
|
|||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function CheckPermission(Path As String) As Boolean
|
Public Function CheckPermission(Path As String) As Boolean
|
||||||
Try
|
Try
|
||||||
If Path = "" Then Return False
|
If String.IsNullOrEmpty(Path) Then Return False
|
||||||
If Not Path.EndsWithF("\") Then Path += "\"
|
If Not Path.EndsWithF("\") Then Path += "\"
|
||||||
If Path.EndsWithF(":\System Volume Information\") OrElse Path.EndsWithF(":\$RECYCLE.BIN\") Then Return False
|
If Path.EndsWithF(":\System Volume Information\") OrElse Path.EndsWithF(":\$RECYCLE.BIN\") Then Return False
|
||||||
If Not Directory.Exists(Path) Then Return False
|
If Not Directory.Exists(Path) Then Return False
|
||||||
|
|||||||
@@ -1276,27 +1276,40 @@ SystemBrowser:
|
|||||||
''' 释放 Java Wrapper 并返回完整文件路径。
|
''' 释放 Java Wrapper 并返回完整文件路径。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function ExtractJavaWrapper() As String
|
Public Function ExtractJavaWrapper() As String
|
||||||
Dim WrapperPath As String = GetJavaWrapperDir() & "\JavaWrapper.jar"
|
Dim BaseDir As String = GetJavaWrapperDir()
|
||||||
|
Dim WrapperPath As String = BaseDir & "\JavaWrapper.jar"
|
||||||
|
Log("[Java] 选定的 Java Wrapper 路径:" & WrapperPath)
|
||||||
SyncLock ExtractJavaWrapperLock '避免 OptiFine 和 Forge 安装时同时释放 Java Wrapper 导致冲突
|
SyncLock ExtractJavaWrapperLock '避免 OptiFine 和 Forge 安装时同时释放 Java Wrapper 导致冲突
|
||||||
If Not WriteFile(WrapperPath, GetResources("JavaWrapper")) Then
|
Dim IsWrapperWritten As Boolean = WriteFile(WrapperPath, GetResources("JavaWrapper"))
|
||||||
Throw New FileNotFoundException("释放 Java Wrapper 失败")
|
If Not IsWrapperWritten AndAlso File.Exists(WrapperPath) Then
|
||||||
|
'以下为 #4243 的修复,因为未知原因 Java Wrapper 可能变为只读文件
|
||||||
|
Log("[Java] Java Wrapper 文件释放失败,但文件已存在,将在删除后尝试重新生成", LogLevel.Debug)
|
||||||
|
Try
|
||||||
|
File.Delete(WrapperPath)
|
||||||
|
IsWrapperWritten = WriteFile(WrapperPath, GetResources("JavaWrapper"))
|
||||||
|
Catch ex As Exception
|
||||||
|
Log(ex, "Java Wrapper 文件重新释放失败,将尝试更换文件名重新生成")
|
||||||
|
WrapperPath = BaseDir & "\JavaWrapper2.jar"
|
||||||
|
IsWrapperWritten = WriteFile(WrapperPath, GetResources("JavaWrapper"))
|
||||||
|
End Try
|
||||||
End If
|
End If
|
||||||
|
If Not IsWrapperWritten Then Throw New FileNotFoundException("释放 Java Wrapper 失败,请查看 PCL 日志查找详细信息")
|
||||||
End SyncLock
|
End SyncLock
|
||||||
Log("[Java] 已释放 Java Wrapper:" & WrapperPath)
|
|
||||||
Return WrapperPath
|
Return WrapperPath
|
||||||
End Function
|
End Function
|
||||||
Private ExtractJavaWrapperLock As New Object
|
Private ExtractJavaWrapperLock As New Object
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' 获取 Java Wrapper 所在的文件夹,不以 \ 结尾。
|
''' 获取 Java Wrapper 所在的文件夹,不以 \ 结尾。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function GetJavaWrapperDir() As String
|
Public Function GetJavaWrapperDir() As String
|
||||||
If PathAppdata.IsASCII() Then
|
If (Path & "PCL").IsASCII() Then
|
||||||
|
Return Path & "PCL"
|
||||||
|
ElseIf PathAppdata.IsASCII() Then
|
||||||
Return PathAppdata.TrimEnd("\")
|
Return PathAppdata.TrimEnd("\")
|
||||||
ElseIf PathTemp.IsASCII() Then
|
ElseIf PathTemp.IsASCII() Then
|
||||||
Log("[Java] Wrapper:AppData 路径中包含非 ASCII 字符,换用 Temp 目录")
|
|
||||||
Return PathTemp.TrimEnd("\")
|
Return PathTemp.TrimEnd("\")
|
||||||
Else
|
Else
|
||||||
Log("[Java] Wrapper:AppData 路径与 Temp 路径中均包含非 ASCII 字符,换用 ProgramData 目录")
|
|
||||||
Return OsDrive & "ProgramData\PCL"
|
Return OsDrive & "ProgramData\PCL"
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|||||||
@@ -51,6 +51,6 @@ Imports System.Runtime.InteropServices
|
|||||||
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||||
' 方法是按如下所示使用“*”
|
' 方法是按如下所示使用“*”
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.8.2.0")>
|
<Assembly: AssemblyVersion("2.8.3.0")>
|
||||||
<Assembly: AssemblyFileVersion("2.8.2.0")>
|
<Assembly: AssemblyFileVersion("2.8.3.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("")>
|
<Assembly: NeutralResourcesLanguage("")>
|
||||||
|
|||||||
Reference in New Issue
Block a user