2.12.4
This commit is contained in:
@@ -11,8 +11,15 @@ Public Class FormMain
|
||||
Dim FeatureList As New List(Of KeyValuePair(Of Integer, String))
|
||||
'统计更新日志条目
|
||||
#If BETA Then
|
||||
If LastVersion < 383 Then 'Release 2.12.3
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "修复:部分关键词搜不到资源,特别是中文 Mod 搜索经常没有结果"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "修复:下载可能完全卡住,或是下载进度反复回退"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "新增:内存管理设置,可以选择 G1GC、ZGC 或分代 ZGC"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "优化:来自 Modrinth 的文件下载速度"))
|
||||
FeatureCount += 15
|
||||
BugCount += 16
|
||||
End If
|
||||
If LastVersion < 381 Then 'Release 2.12.2
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:无法搜索 CurseForge 上的社区资源"))
|
||||
FeatureCount += 3
|
||||
BugCount += 13
|
||||
End If
|
||||
@@ -133,8 +140,16 @@ Public Class FormMain
|
||||
'3:BUG+ IMP* FEAT-
|
||||
'2:BUG* IMP-
|
||||
'1:BUG-
|
||||
If LastVersion < 382 Then 'Snapshot 2.12.3
|
||||
If LastVersion < 384 Then 'Snapshot 2.12.4
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "修复:部分关键词搜不到资源,特别是中文 Mod 搜索经常没有结果"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化:降低游戏的内存占用"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:老版本 Windows 无法启动游戏"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:连接 Mojang 的服务可能失败,提示错误码 421"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:无法访问爱发电"))
|
||||
FeatureCount += 21
|
||||
BugCount += 14
|
||||
End If
|
||||
If LastVersion < 382 Then 'Snapshot 2.12.3
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "修复:下载可能完全卡住,或是下载进度反复回退"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "新增:内存管理设置,可以选择 G1GC、ZGC 或分代 ZGC"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "优化:来自 Modrinth 的文件下载速度"))
|
||||
@@ -337,12 +352,12 @@ Public Class FormMain
|
||||
If(BugCount > 0, "修复了 " & BugCount & " 个 Bug", "") &
|
||||
",详见完整更新日志")
|
||||
End If
|
||||
Dim Content As String = "· " & Join(ContentList, vbCrLf & "· ")
|
||||
Dim Content As String = "· " & ContentList.Join(vbCrLf & "· ")
|
||||
'输出更新日志
|
||||
RunInNewThread(
|
||||
Sub()
|
||||
If MyMsgBox(Content, "PCL 已更新至 " & VersionDisplayName, "确定", "完整更新日志") = 2 Then
|
||||
OpenWebsite("https://afdian.com/a/LTCat?tab=feed")
|
||||
OpenWebsite("https://meloong.com/afd/a/LTCat?tab=feed")
|
||||
End If
|
||||
End Sub, "UpdateLog Output")
|
||||
End Sub
|
||||
@@ -356,7 +371,7 @@ Public Class FormMain
|
||||
FrmLaunchLeft = New PageLaunchLeft
|
||||
FrmLaunchRight = New PageLaunchRight
|
||||
'版本号改变
|
||||
Dim LastVersion As Integer = Setup.Get("SystemLastVersionReg")
|
||||
Dim LastVersion As Integer = Settings.Get("SystemLastVersionReg")
|
||||
If LastVersion < VersionCode Then
|
||||
'触发升级
|
||||
UpgradeSub(LastVersion)
|
||||
@@ -365,21 +380,21 @@ Public Class FormMain
|
||||
DowngradeSub(LastVersion)
|
||||
End If
|
||||
'版本隔离设置迁移
|
||||
If Setup.IsUnset("LaunchArgumentIndieV2") Then
|
||||
If Not Setup.IsUnset("LaunchArgumentIndie") Then
|
||||
If Not Settings.HasSaved("LaunchArgumentIndieV2") Then
|
||||
If Settings.HasSaved("LaunchArgumentIndie") Then
|
||||
Log("[Start] 从老 PCL 迁移版本隔离")
|
||||
Setup.Set("LaunchArgumentIndieV2", Setup.Get("LaunchArgumentIndie"))
|
||||
ElseIf Not Setup.IsUnset("LaunchVersionSelect") Then
|
||||
Settings.Set("LaunchArgumentIndieV2", Settings.Get("LaunchArgumentIndie"))
|
||||
ElseIf HasIniKey("Setup", "LaunchVersionSelect") Then
|
||||
Log("[Start] 从老 PCL 升级,但此前未调整版本隔离,使用老的版本隔离默认值")
|
||||
Setup.Set("LaunchArgumentIndieV2", Setup.GetDefault("LaunchArgumentIndie"))
|
||||
Settings.Set("LaunchArgumentIndieV2", Settings.GetDefault("LaunchArgumentIndie"))
|
||||
Else
|
||||
Log("[Start] 全新的 PCL,使用新的版本隔离默认值")
|
||||
Setup.Set("LaunchArgumentIndieV2", Setup.GetDefault("LaunchArgumentIndieV2"))
|
||||
Settings.Set("LaunchArgumentIndieV2", Settings.GetDefault("LaunchArgumentIndieV2"))
|
||||
End If
|
||||
End If
|
||||
'刷新主题
|
||||
ThemeCheckAll(False)
|
||||
Setup.Load("UiLauncherTheme")
|
||||
ThemeRefresh(Settings.Get("UiLauncherTheme"))
|
||||
'注册拖拽事件(不能直接加 Handles,否则没用;#6340)
|
||||
[AddHandler](DragDrop.DragEnterEvent, New DragEventHandler(AddressOf HandleDrag), handledEventsToo:=True)
|
||||
[AddHandler](DragDrop.DragOverEvent, New DragEventHandler(AddressOf HandleDrag), handledEventsToo:=True)
|
||||
@@ -418,12 +433,10 @@ Public Class FormMain
|
||||
End Sub
|
||||
Private Sub FormMain_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||
ApplicationStartTick = GetTimeMs()
|
||||
Handle = New Interop.WindowInteropHelper(Me).Handle
|
||||
Handle = New WindowInteropHelper(Me).Handle
|
||||
'读取设置
|
||||
Setup.Load("UiBackgroundOpacity")
|
||||
Setup.Load("UiBackgroundBlur")
|
||||
Setup.Load("UiLogoType")
|
||||
Setup.Load("UiHiddenPageDownload")
|
||||
UpdateBackgroundAndTitleBar()
|
||||
PageSetupUI.HiddenRefresh()
|
||||
PageSetupUI.BackgroundRefresh(False, True)
|
||||
MusicRefreshPlay(False, True)
|
||||
'扩展按钮
|
||||
@@ -449,8 +462,8 @@ Public Class FormMain
|
||||
'加载窗口
|
||||
ThemeRefreshMain()
|
||||
Try
|
||||
Height = Setup.Get("WindowHeight")
|
||||
Width = Setup.Get("WindowWidth")
|
||||
Height = Settings.Get("WindowHeight")
|
||||
Width = Settings.Get("WindowWidth")
|
||||
Catch ex As Exception '修复 #2019
|
||||
Log(ex, "读取窗口默认大小失败", LogLevel.Hint)
|
||||
Height = MinHeight + 100
|
||||
@@ -471,7 +484,7 @@ Public Class FormMain
|
||||
HwndSource.AddHook(New Interop.HwndSourceHook(AddressOf WndProc))
|
||||
AniStart({
|
||||
AaCode(Sub() AniControlEnabled -= 1, 50),
|
||||
AaOpacity(Me, Setup.Get("UiLauncherTransparent") / 1000 + 0.4, 250, 100),
|
||||
AaOpacity(Me, Settings.Get("UiLauncherTransparent") / 1000 + 0.4, 250, 100),
|
||||
AaDouble(Sub(i) TransformPos.Y += i, -TransformPos.Y, 600, 100, New AniEaseOutBack(AniEasePower.Weak)),
|
||||
AaDouble(Sub(i) TransformRotate.Angle += i, -TransformRotate.Angle, 500, 100, New AniEaseOutBack(AniEasePower.Weak)),
|
||||
AaCode(
|
||||
@@ -489,15 +502,15 @@ Public Class FormMain
|
||||
Sub()
|
||||
'EULA 提示
|
||||
Const EulaVersion As Integer = 2
|
||||
If Setup.Get("SystemEulaVersion") < EulaVersion Then
|
||||
If Settings.Get("SystemEulaVersion") < EulaVersion Then
|
||||
Select Case MyMsgBox(
|
||||
If(Setup.Get("SystemEulaVersion") = 0,
|
||||
If(Settings.Get("SystemEulaVersion") = 0,
|
||||
"在使用 PCL 前,请先阅读用户协议与免责声明。",
|
||||
$"PCL 的用户协议与免责声明已更新。{vbCrLf}请阅读更新后的用户协议与免责声明。"),
|
||||
"协议授权", "同意", "拒绝", "查看用户协议与免责声明",
|
||||
Button3Action:=Sub() OpenWebsite("https://shimo.im/docs/rGrd8pY8xWkt6ryW"))
|
||||
Case 1
|
||||
Setup.Set("SystemEulaVersion", EulaVersion)
|
||||
Settings.Set("SystemEulaVersion", EulaVersion)
|
||||
Case 2
|
||||
EndProgram(False)
|
||||
End Select
|
||||
@@ -527,15 +540,15 @@ Public Class FormMain
|
||||
End Sub
|
||||
'根据打开次数触发的事件
|
||||
Private Sub RunCountSub()
|
||||
Setup.Set("SystemCount", Setup.Get("SystemCount") + 1)
|
||||
Settings.Set("SystemCount", Settings.Get("SystemCount") + 1)
|
||||
#If Not BETA Then
|
||||
Select Case Setup.Get("SystemCount")
|
||||
Select Case Settings.Get("SystemCount")
|
||||
Case 1
|
||||
MyMsgBox("欢迎使用 PCL 快照版!" & vbCrLf &
|
||||
"快照版包含尚未在正式版发布的测试性功能,仅用于赞助者本人尝鲜。所以请不要发给其他人或者用于制作整合包哦!" & vbCrLf &
|
||||
"如果你并非通过赞助或赞助者本人邀请进群获得的本程序,那么可能是有人在违规传播,记得提醒他一下啦。", "快照版使用说明")
|
||||
End Select
|
||||
If Setup.Get("SystemCount") >= 99 Then
|
||||
If Settings.Get("SystemCount") >= 99 Then
|
||||
If ThemeUnlock(6, False) Then
|
||||
MyMsgBox("你已经使用了 99 次 PCL 啦,感谢你长期以来的支持!" & vbCrLf &
|
||||
"隐藏主题 铁杆粉 已解锁!", "提示")
|
||||
@@ -546,46 +559,44 @@ Public Class FormMain
|
||||
'升级与降级事件
|
||||
Private Sub UpgradeSub(LastVersionCode As Integer)
|
||||
Log("[Start] 版本号从 " & LastVersionCode & " 升高到 " & VersionCode)
|
||||
Setup.Set("SystemLastVersionReg", VersionCode)
|
||||
Settings.Set("SystemLastVersionReg", VersionCode)
|
||||
'检查有记录的最高版本号
|
||||
Dim LowerVersionCode As Integer
|
||||
#If BETA Then
|
||||
LowerVersionCode = Setup.Get("SystemHighestBetaVersionReg")
|
||||
LowerVersionCode = Settings.Get("SystemHighestBetaVersionReg")
|
||||
If LowerVersionCode < VersionCode Then
|
||||
Setup.Set("SystemHighestBetaVersionReg", VersionCode)
|
||||
Settings.Set("SystemHighestBetaVersionReg", VersionCode)
|
||||
Log("[Start] 最高版本号从 " & LowerVersionCode & " 升高到 " & VersionCode)
|
||||
End If
|
||||
#Else
|
||||
LowerVersionCode = Setup.Get("SystemHighestAlphaVersionReg")
|
||||
LowerVersionCode = Settings.Get("SystemHighestAlphaVersionReg")
|
||||
If LowerVersionCode < VersionCode Then
|
||||
Setup.Set("SystemHighestAlphaVersionReg", VersionCode)
|
||||
Settings.Set("SystemHighestAlphaVersionReg", VersionCode)
|
||||
Log("[Start] 最高版本号从 " & LowerVersionCode & " 升高到 " & VersionCode)
|
||||
End If
|
||||
#End If
|
||||
'迁移 EULA 版本
|
||||
If Setup.Get("SystemEula") AndAlso Setup.Get("SystemEulaVersion") = 0 Then Setup.Set("SystemEulaVersion", 1)
|
||||
'被移除的窗口设置选项
|
||||
If Setup.Get("LaunchArgumentWindowType") = 5 Then Setup.Set("LaunchArgumentWindowType", 1)
|
||||
If Settings.Get("LaunchArgumentWindowType") = 5 Then Settings.Set("LaunchArgumentWindowType", 1)
|
||||
'修改主题设置项名称
|
||||
If LowerVersionCode <= 207 Then
|
||||
Dim UnlockedTheme As New List(Of String) From {"2"}
|
||||
UnlockedTheme.AddRange(New List(Of String)(Setup.Get("UiLauncherThemeHide").ToString.Split("|")))
|
||||
UnlockedTheme.AddRange(New List(Of String)(Setup.Get("UiLauncherThemeHide2").ToString.Split("|")))
|
||||
Setup.Set("UiLauncherThemeHide2", Join(UnlockedTheme.Distinct.ToList, "|"))
|
||||
UnlockedTheme.AddRange(New List(Of String)(Settings.Get("UiLauncherThemeHide").ToString.Split("|")))
|
||||
UnlockedTheme.AddRange(New List(Of String)(Settings.Get("UiLauncherThemeHide2").ToString.Split("|")))
|
||||
Settings.Set("UiLauncherThemeHide2", UnlockedTheme.Distinct.ToList.Join("|"c))
|
||||
End If
|
||||
'重置欧皇彩
|
||||
If LastVersionCode <= 115 AndAlso Setup.Get("UiLauncherThemeHide2").ToString.Split("|").Contains("13") Then
|
||||
Dim UnlockedTheme As New List(Of String)(Setup.Get("UiLauncherThemeHide2").ToString.Split("|"))
|
||||
If LastVersionCode <= 115 AndAlso Settings.Get("UiLauncherThemeHide2").ToString.Split("|").Contains("13") Then
|
||||
Dim UnlockedTheme As New List(Of String)(Settings.Get("UiLauncherThemeHide2").ToString.Split("|"))
|
||||
UnlockedTheme.Remove("13")
|
||||
Setup.Set("UiLauncherThemeHide2", Join(UnlockedTheme, "|"))
|
||||
Settings.Set("UiLauncherThemeHide2", UnlockedTheme.Join("|"c))
|
||||
MyMsgBox("由于新版 PCL 修改了欧皇彩的解锁方式,你需要重新解锁欧皇彩。" & vbCrLf &
|
||||
"多谢各位的理解啦!", "重新解锁提醒")
|
||||
End If
|
||||
'重置滑稽彩
|
||||
If LastVersionCode <= 152 AndAlso Setup.Get("UiLauncherThemeHide2").ToString.Split("|").Contains("12") Then
|
||||
Dim UnlockedTheme As New List(Of String)(Setup.Get("UiLauncherThemeHide2").ToString.Split("|"))
|
||||
If LastVersionCode <= 152 AndAlso Settings.Get("UiLauncherThemeHide2").ToString.Split("|").Contains("12") Then
|
||||
Dim UnlockedTheme As New List(Of String)(Settings.Get("UiLauncherThemeHide2").ToString.Split("|"))
|
||||
UnlockedTheme.Remove("12")
|
||||
Setup.Set("UiLauncherThemeHide2", Join(UnlockedTheme, "|"))
|
||||
Settings.Set("UiLauncherThemeHide2", UnlockedTheme.Join("|"c))
|
||||
MyMsgBox("由于新版 PCL 修改了滑稽彩的解锁方式,你需要重新解锁滑稽彩。" & vbCrLf &
|
||||
"多谢各位的理解啦!", "重新解锁提醒")
|
||||
End If
|
||||
@@ -600,28 +611,28 @@ Public Class FormMain
|
||||
End If
|
||||
'解除帮助页面的隐藏
|
||||
If LastVersionCode <= 205 Then
|
||||
Setup.Set("UiHiddenOtherHelp", False)
|
||||
Settings.Set("UiHiddenOtherHelp", False)
|
||||
Log("[Start] 已解除帮助页面的隐藏")
|
||||
End If
|
||||
'单向迁移微软登录结果(#4836)
|
||||
If Not Setup.Get("CacheMsV2Migrated") Then
|
||||
Setup.Set("CacheMsV2Migrated", True)
|
||||
Setup.Set("CacheMsV2OAuthRefresh", Setup.Get("CacheMsOAuthRefresh"))
|
||||
Setup.Set("CacheMsV2Access", Setup.Get("CacheMsAccess"))
|
||||
Setup.Set("CacheMsV2ProfileJson", Setup.Get("CacheMsProfileJson"))
|
||||
Setup.Set("CacheMsV2Uuid", Setup.Get("CacheMsUuid"))
|
||||
Setup.Set("CacheMsV2Name", Setup.Get("CacheMsName"))
|
||||
If Not Settings.Get("CacheMsV2Migrated") Then
|
||||
Settings.Set("CacheMsV2Migrated", True)
|
||||
Settings.Set("CacheMsV2OAuthRefresh", Settings.Get("CacheMsOAuthRefresh"))
|
||||
Settings.Set("CacheMsV2Access", Settings.Get("CacheMsAccess"))
|
||||
Settings.Set("CacheMsV2ProfileJson", Settings.Get("CacheMsProfileJson"))
|
||||
Settings.Set("CacheMsV2Uuid", Settings.Get("CacheMsUuid"))
|
||||
Settings.Set("CacheMsV2Name", Settings.Get("CacheMsName"))
|
||||
Log("[Start] 已从老版本迁移微软登录结果")
|
||||
End If
|
||||
'Mod 命名设置迁移
|
||||
If Not Setup.IsUnset("ToolDownloadTranslate") AndAlso Setup.IsUnset("ToolDownloadTranslateV2") Then
|
||||
Setup.Set("ToolDownloadTranslateV2", Setup.Get("ToolDownloadTranslate") + 1)
|
||||
If Settings.HasSaved("ToolDownloadTranslate") AndAlso Not Settings.HasSaved("ToolDownloadTranslateV2") Then
|
||||
Settings.Set("ToolDownloadTranslateV2", Settings.Get("ToolDownloadTranslate") + 1)
|
||||
Log("[Start] 已从老版本迁移 Mod 命名设置")
|
||||
End If
|
||||
'重置 JVM 参数设置
|
||||
If LastVersionCode <= 381 AndAlso Not Setup.IsUnset("LaunchAdvanceJvm") AndAlso
|
||||
Setup.Get("LaunchAdvanceJvm").ToString.Replace("-XX:+UseG1GC ", "").Replace("-XX:-UseAdaptiveSizePolicy ", "").Trim = Setup.GetDefault("LaunchAdvanceJvm") Then
|
||||
Setup.Reset("LaunchAdvanceJvm")
|
||||
If LastVersionCode <= 381 AndAlso Settings.HasSaved("LaunchAdvanceJvm") AndAlso
|
||||
Settings.Get("LaunchAdvanceJvm").ToString.Replace("-XX:+UseG1GC ", "").Replace("-XX:-UseAdaptiveSizePolicy ", "").Trim = Settings.GetDefault("LaunchAdvanceJvm") Then
|
||||
Settings.Reset("LaunchAdvanceJvm")
|
||||
Log("[Start] 已重置 JVM 参数设置")
|
||||
End If
|
||||
'输出更新日志
|
||||
@@ -631,7 +642,7 @@ Public Class FormMain
|
||||
End Sub
|
||||
Private Sub DowngradeSub(LastVersionCode As Integer)
|
||||
Log("[Start] 版本号从 " & LastVersionCode & " 降低到 " & VersionCode)
|
||||
Setup.Set("SystemLastVersionReg", VersionCode)
|
||||
Settings.Set("SystemLastVersionReg", VersionCode)
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
@@ -655,7 +666,7 @@ Public Class FormMain
|
||||
Sub()
|
||||
Log("[System] 正在强行停止任务")
|
||||
For Each Task As LoaderBase In LoaderTaskbar.ToList()
|
||||
Task.Abort()
|
||||
Task.Interrupt()
|
||||
Next
|
||||
End Sub, "强行停止下载任务")
|
||||
End If
|
||||
@@ -730,8 +741,8 @@ Public Class FormMain
|
||||
Public IsSizeSaveable As Boolean = False
|
||||
Private Sub FormMain_SizeChanged() Handles Me.SizeChanged, Me.Loaded
|
||||
If IsSizeSaveable Then
|
||||
Setup.Set("WindowHeight", Height)
|
||||
Setup.Set("WindowWidth", Width)
|
||||
Settings.Set("WindowHeight", Height)
|
||||
Settings.Set("WindowWidth", Width)
|
||||
End If
|
||||
RectForm.Rect = New Rect(0, 0, BorderForm.ActualWidth, BorderForm.ActualHeight)
|
||||
PanForm.Width = BorderForm.ActualWidth + 0.001
|
||||
@@ -746,6 +757,131 @@ Public Class FormMain
|
||||
WindowState = WindowState.Minimized
|
||||
End Sub
|
||||
|
||||
'背景图片与标题栏
|
||||
Public Shared Sub UpdateBackgroundAndTitleBar(Value) '从设置更新
|
||||
If FrmMain Is Nothing OrElse Not FrmMain.IsLoaded Then Return
|
||||
FrmMain.UpdateBackgroundAndTitleBar()
|
||||
End Sub
|
||||
Public Sub UpdateBackgroundAndTitleBar()
|
||||
Log("[FormMain] 从设置更新背景图片与标题栏样式")
|
||||
'背景图片透明度
|
||||
ImgBack.Opacity = Settings.Get("UiBackgroundOpacity") / 1000
|
||||
'背景图片模糊
|
||||
Dim BlurRadius As Double = Settings.Get("UiBackgroundBlur") + 1
|
||||
If BlurRadius = 1 Then
|
||||
ImgBack.Effect = Nothing
|
||||
Else
|
||||
ImgBack.Effect = New Effects.BlurEffect With {.Radius = BlurRadius}
|
||||
End If
|
||||
ImgBack.Margin = New Thickness(-BlurRadius / 1.8)
|
||||
'背景图片适应方式
|
||||
Dim BackgroundType As Integer = Settings.Get("UiBackgroundSuit")
|
||||
If ImgBack.Background IsNot Nothing Then
|
||||
Dim Brush As ImageBrush = CType(ImgBack.Background, ImageBrush)
|
||||
If BackgroundType = 0 Then
|
||||
'智能:当图片较小时平铺,较大时适应
|
||||
If Brush.ImageSource.Width < PanMain.ActualWidth / 2 AndAlso Brush.ImageSource.Height < PanMain.ActualHeight / 2 Then
|
||||
BackgroundType = 4 '平铺
|
||||
Else
|
||||
BackgroundType = 2 '适应
|
||||
End If
|
||||
End If
|
||||
Brush.Stretch = Stretch.UniformToFill
|
||||
Brush.TileMode = TileMode.None
|
||||
Brush.Viewport = New Rect(0, 0, 1, 1)
|
||||
Brush.ViewportUnits = BrushMappingMode.RelativeToBoundingBox
|
||||
Brush.AlignmentX = AlignmentX.Center
|
||||
Brush.AlignmentY = AlignmentY.Center
|
||||
Select Case BackgroundType
|
||||
Case 1 '中
|
||||
Brush.Stretch = Stretch.None
|
||||
Case 3 '拉伸
|
||||
Brush.Stretch = Stretch.Fill
|
||||
Case 4 '平铺
|
||||
Brush.Stretch = Stretch.None
|
||||
Brush.TileMode = TileMode.Tile
|
||||
Brush.Viewport = New Rect(0, 0, Brush.ImageSource.Width, Brush.ImageSource.Height)
|
||||
Brush.ViewportUnits = BrushMappingMode.Absolute
|
||||
|
||||
Case 2 '适应
|
||||
Case 5 '左上
|
||||
Brush.AlignmentX = AlignmentX.Left
|
||||
Brush.AlignmentY = AlignmentY.Top
|
||||
Case 6 '右上
|
||||
Brush.AlignmentX = AlignmentX.Right
|
||||
Brush.AlignmentY = AlignmentY.Top
|
||||
Case 7 '左下
|
||||
Brush.AlignmentX = AlignmentX.Left
|
||||
Brush.AlignmentY = AlignmentY.Bottom
|
||||
Case 8 '右下
|
||||
Brush.AlignmentX = AlignmentX.Right
|
||||
Brush.AlignmentY = AlignmentY.Bottom
|
||||
Case 9 '左
|
||||
Brush.AlignmentX = AlignmentX.Left
|
||||
Brush.AlignmentY = AlignmentY.Center
|
||||
Case 10 '右
|
||||
Brush.AlignmentX = AlignmentX.Right
|
||||
Brush.AlignmentY = AlignmentY.Center
|
||||
Case 11 '上
|
||||
Brush.AlignmentX = AlignmentX.Center
|
||||
Brush.AlignmentY = AlignmentY.Top
|
||||
Case 12 '下
|
||||
Brush.AlignmentX = AlignmentX.Center
|
||||
Brush.AlignmentY = AlignmentY.Bottom
|
||||
End Select
|
||||
End If
|
||||
'标题栏显示类型
|
||||
Select Case Settings.Get("UiLogoType")
|
||||
Case 0 '无
|
||||
ShapeTitleLogo.Visibility = Visibility.Collapsed
|
||||
LabTitleLogo.Visibility = Visibility.Collapsed
|
||||
ImageTitleLogo.Visibility = Visibility.Collapsed
|
||||
If Not IsNothing(FrmSetupUI) Then 'TODO: 和 FrmSetupUI 解耦
|
||||
FrmSetupUI.CheckLogoLeft.Visibility = Visibility.Visible
|
||||
FrmSetupUI.PanLogoText.Visibility = Visibility.Collapsed
|
||||
FrmSetupUI.PanLogoChange.Visibility = Visibility.Collapsed
|
||||
End If
|
||||
Case 1 '默认
|
||||
ShapeTitleLogo.Visibility = Visibility.Visible
|
||||
LabTitleLogo.Visibility = Visibility.Collapsed
|
||||
ImageTitleLogo.Visibility = Visibility.Collapsed
|
||||
If Not IsNothing(FrmSetupUI) Then
|
||||
FrmSetupUI.CheckLogoLeft.Visibility = Visibility.Collapsed
|
||||
FrmSetupUI.PanLogoText.Visibility = Visibility.Collapsed
|
||||
FrmSetupUI.PanLogoChange.Visibility = Visibility.Collapsed
|
||||
End If
|
||||
Case 2 '文本
|
||||
ShapeTitleLogo.Visibility = Visibility.Collapsed
|
||||
LabTitleLogo.Visibility = Visibility.Visible
|
||||
ImageTitleLogo.Visibility = Visibility.Collapsed
|
||||
If Not IsNothing(FrmSetupUI) Then
|
||||
FrmSetupUI.CheckLogoLeft.Visibility = Visibility.Collapsed
|
||||
FrmSetupUI.PanLogoText.Visibility = Visibility.Visible
|
||||
FrmSetupUI.PanLogoChange.Visibility = Visibility.Collapsed
|
||||
End If
|
||||
Case 3 '图片
|
||||
ShapeTitleLogo.Visibility = Visibility.Collapsed
|
||||
LabTitleLogo.Visibility = Visibility.Collapsed
|
||||
ImageTitleLogo.Visibility = Visibility.Visible
|
||||
If Not IsNothing(FrmSetupUI) Then
|
||||
FrmSetupUI.CheckLogoLeft.Visibility = Visibility.Collapsed
|
||||
FrmSetupUI.PanLogoText.Visibility = Visibility.Collapsed
|
||||
FrmSetupUI.PanLogoChange.Visibility = Visibility.Visible
|
||||
End If
|
||||
Try
|
||||
ImageTitleLogo.Source = Path & "PCL\Logo.png"
|
||||
Catch ex As Exception
|
||||
ImageTitleLogo.Source = Nothing
|
||||
Log(ex, "显示标题栏图片失败", LogLevel.Msgbox)
|
||||
End Try
|
||||
End Select
|
||||
FrmSetupUI?.CardLogo.TriggerForceResize()
|
||||
'标题栏文本
|
||||
LabTitleLogo.Text = Settings.Get("UiLogoText")
|
||||
'标题栏文本是否居左
|
||||
PanTitleMain.ColumnDefinitions(0).Width = New GridLength(If(Settings.Get("UiLogoLeft") AndAlso Settings.Get("UiLogoType") = 0, 0, 1), GridUnitType.Star)
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "窗体事件"
|
||||
@@ -837,13 +973,13 @@ Public Class FormMain
|
||||
Log(ex, "切回窗口时出错", LogLevel.Feedback)
|
||||
End Try
|
||||
'读取剪贴板,自动加入联机房间
|
||||
Return 'UNDONE: 联机复活赛
|
||||
Return 'TODO: 联机复活赛
|
||||
If PageLinkMain.LinkState <> PageLinkMain.LinkStates.Waiting Then Return '已启动联机
|
||||
If PageCurrent = PageType.Link Then Return '已在联机界面
|
||||
Dim Code = ClipboardGetText() : If Code Is Nothing Then Return '剪贴板无文本
|
||||
If Setup.Get("LinkLastAutoJoinInviteCode") = Code Then Return
|
||||
If Settings.Get("LinkLastAutoJoinInviteCode") = Code Then Return
|
||||
If PageLinkMain.ValidateCodeFormat(Code) IsNot Nothing Then Return '不是邀请码
|
||||
Setup.Set("LinkLastAutoJoinInviteCode", Code)
|
||||
Settings.Set("LinkLastAutoJoinInviteCode", Code)
|
||||
RunInThread(
|
||||
Sub()
|
||||
If MyMsgBox("嘿,是否使用复制的邀请码加入房间?", "加入联机房间", "加入", "取消") = 2 Then Return '防止弹窗阻碍主线程,所以必须放在工作线程
|
||||
@@ -917,10 +1053,10 @@ Public Class FormMain
|
||||
"你可以在 版本设置 → 设置 → 服务器选项 中修改登录方式。", "第三方登录开启确认", "确定", "取消") = 2 Then
|
||||
Return
|
||||
End If
|
||||
Setup.Set("VersionServerLogin", 4, Instance:=Target)
|
||||
Setup.Set("VersionServerAuthServer", "https://littleskin.cn/api/yggdrasil", Instance:=Target)
|
||||
Setup.Set("VersionServerAuthRegister", "https://littleskin.cn/auth/register", Instance:=Target)
|
||||
Setup.Set("VersionServerAuthName", "LittleSkin 登录", Instance:=Target)
|
||||
Settings.Set("VersionServerLogin", 4, Instance:=Target)
|
||||
Settings.Set("VersionServerAuthServer", "https://littleskin.cn/api/yggdrasil", Instance:=Target)
|
||||
Settings.Set("VersionServerAuthRegister", "https://littleskin.cn/auth/register", Instance:=Target)
|
||||
Settings.Set("VersionServerAuthName", "LittleSkin 登录", Instance:=Target)
|
||||
Else
|
||||
'第三方 Authlib 服务器
|
||||
If MyMsgBox($"是否要在版本 {Target.Name} 中开启第三方登录?" & vbCrLf &
|
||||
@@ -928,10 +1064,10 @@ Public Class FormMain
|
||||
"你可以在 版本设置 → 设置 → 服务器选项 中修改登录方式。", "第三方登录开启确认", "确定", "取消") = 2 Then
|
||||
Return
|
||||
End If
|
||||
Setup.Set("VersionServerLogin", 4, Instance:=Target)
|
||||
Setup.Set("VersionServerAuthServer", AuthlibServer, Instance:=Target)
|
||||
Setup.Set("VersionServerAuthRegister", AuthlibServer.Replace("api/yggdrasil", "auth/register"), Instance:=Target)
|
||||
Setup.Set("VersionServerAuthName", "", Instance:=Target)
|
||||
Settings.Set("VersionServerLogin", 4, Instance:=Target)
|
||||
Settings.Set("VersionServerAuthServer", AuthlibServer, Instance:=Target)
|
||||
Settings.Set("VersionServerAuthRegister", AuthlibServer.Replace("api/yggdrasil", "auth/register"), Instance:=Target)
|
||||
Settings.Set("VersionServerAuthName", "", Instance:=Target)
|
||||
End If
|
||||
If PageCurrent = PageType.InstanceSetup AndAlso PageCurrentSub = PageSubType.InstanceSetup Then
|
||||
'正在服务器选项页,需要刷新设置项显示
|
||||
@@ -983,14 +1119,14 @@ Public Class FormMain
|
||||
If FilePathList.Count > 1 Then
|
||||
'必须要求全部为 jar 文件
|
||||
For Each File In FilePathList
|
||||
If Not {"jar", "litemod", "disabled", "old"}.Contains(File.AfterLast(".").ToLower) Then
|
||||
If Not {"jar", "litemod", "disabled", "old"}.Contains(File.AfterLast(".").Lower) Then
|
||||
Hint("一次请只拖入一个文件!", HintType.Red)
|
||||
Return
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
'主页
|
||||
Dim Extension As String = FilePath.AfterLast(".").ToLower
|
||||
Dim Extension As String = FilePath.AfterLast(".").Lower
|
||||
If Extension = "xaml" Then
|
||||
Log("[System] 文件后缀为 XAML,作为主页加载")
|
||||
If File.Exists(Path & "PCL\Custom.xaml") Then
|
||||
@@ -1001,7 +1137,7 @@ Public Class FormMain
|
||||
CopyFile(FilePath, Path & "PCL\Custom.xaml")
|
||||
RunInUi(
|
||||
Sub()
|
||||
Setup.Set("UiCustomType", 1)
|
||||
Settings.Set("UiCustomType", 1)
|
||||
FrmLaunchRight.ForceRefresh()
|
||||
Hint("已加载主页自定义文件!", HintType.Green)
|
||||
End Sub)
|
||||
@@ -1614,7 +1750,7 @@ Public Class FormMain
|
||||
'关闭 Minecraft
|
||||
Public Sub BtnExtraShutdown_Click() Handles BtnExtraShutdown.Click
|
||||
Try
|
||||
If McLaunchLoaderReal IsNot Nothing Then McLaunchLoaderReal.Abort()
|
||||
If McLaunchLoaderReal IsNot Nothing Then McLaunchLoaderReal.Interrupt()
|
||||
For Each Watcher In McWatcherList
|
||||
Watcher.Kill()
|
||||
Next
|
||||
|
||||
Reference in New Issue
Block a user