This commit is contained in:
龙腾猫跃
2024-10-01 03:39:04 +08:00
parent d48ab143be
commit 76bf3c40d0
21 changed files with 242 additions and 287 deletions
@@ -359,7 +359,7 @@ Public Module ModDownloadLib
'添加 Java Wrapper 作为主 Jar
Dim Arguments As String
If UseJavaWrapper Then
Arguments = $"-Doolloo.jlw.tmpdir=""{GetJavaWrapperDir()}"" -Duser.home=""{BaseMcFolderHome}"" -cp ""{Target}"" -jar ""{ExtractJavaWrapper()}"" optifine.Installer"
Arguments = $"-Doolloo.jlw.tmpdir=""{GetPureASCIIDir()}"" -Duser.home=""{BaseMcFolderHome}"" -cp ""{Target}"" -jar ""{ExtractJavaWrapper()}"" optifine.Installer"
Else
Arguments = $"-Duser.home=""{BaseMcFolderHome}"" -cp ""{Target}"" optifine.Installer"
End If
@@ -1026,7 +1026,7 @@ Retry:
'添加 Java Wrapper 作为主 Jar
Dim Arguments As String
If UseJavaWrapper Then
Arguments = $"-Doolloo.jlw.tmpdir=""{GetJavaWrapperDir()}"" -cp ""{PathTemp}Cache\forge_installer.jar;{Target}"" -jar ""{ExtractJavaWrapper()}"" com.bangbang93.ForgeInstaller ""{McFolder}"
Arguments = $"-Doolloo.jlw.tmpdir=""{GetPureASCIIDir()}"" -cp ""{PathTemp}Cache\forge_installer.jar;{Target}"" -jar ""{ExtractJavaWrapper()}"" com.bangbang93.ForgeInstaller ""{McFolder}"
Else
Arguments = $"-cp ""{PathTemp}Cache\forge_installer.jar;{Target}"" com.bangbang93.ForgeInstaller ""{McFolder}"
End If
@@ -1,28 +0,0 @@
<Window x:Class="FormLoginOAuth"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:PCL"
mc:Ignorable="d"
Height="720" Width="580" MinHeight="720" MinWidth="580" ResizeMode="CanResize" WindowStartupLocation="CenterScreen" Title="Microsoft 账户登录">
<Grid>
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="White" Offset="0"/>
<GradientStop Color="{DynamicResource ColorObject8}" Offset="1"/>
</LinearGradientBrush>
</Grid.Background>
<StackPanel x:Name="PanLoading" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center">
<local:MyLoading x:Name="Loading" Text="正在加载登录页面" HorizontalAlignment="Center" />
<TextBlock Text="如果网络环境不佳,加载可能非常缓慢甚至一直加载不出来" Margin="0,25,0,0"
HorizontalAlignment="Center" Foreground="{DynamicResource ColorBrush1}" Opacity="0.7" />
<TextBlock Text="此时请尝试使用 VPN 或加速器,然后重试"
HorizontalAlignment="Center" Foreground="{DynamicResource ColorBrush1}" Opacity="0.7" />
</StackPanel>
<WebBrowser x:Name="Browser1" Visibility="Collapsed" Tag="1" Margin="0,0,0,25" />
<WebBrowser x:Name="Browser2" Visibility="Collapsed" Tag="2" Margin="0,0,0,25" />
<WebBrowser x:Name="Browser3" Visibility="Collapsed" Tag="3" Margin="0,0,0,25" />
<local:MyTextButton Text="如果遇到问题,可以点击这里使用系统浏览器登录" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,5" x:Name="HintSwitch" />
</Grid>
</Window>
@@ -1,100 +0,0 @@
Imports System.Windows.Navigation
Public Class FormLoginOAuth
Public Event OnLoginSuccess(code As String)
Public Event OnLoginCanceled(IsSwitch As Boolean)
'跳转事件
Private IsLoginSuccessed As Boolean = False
Private IsSwitch As Boolean = False
Private Sub Browser_Navigating(sender As WebBrowser, e As NavigatingCancelEventArgs) Handles Browser1.Navigating, Browser2.Navigating, Browser3.Navigating
Dim Url As String = e.Uri.AbsoluteUri
If ModeDebug Then Log("[Login] 登录浏览器 " & sender.Tag & " 导向:" & Url)
If Url.Contains("code=") Then
Dim Code As String = RegexSeek(Url, "(?<=code\=)[^&]+")
Log("[Login] 抓取到 OAuth 返回码:" & Code)
IsLoginSuccessed = True
RaiseEvent OnLoginSuccess(Code)
ElseIf Url.Contains("github.") Then
Hint("PCL 不支持使用 GitHub 登录微软账号!", HintType.Critical)
Close()
End If
End Sub
'已导航事件
Private IsFirstLoaded As Boolean = False
Private IsFirstLoadedLock As New Object
Private Sub Browser_Navigated(sender As WebBrowser, e As NavigationEventArgs) Handles Browser1.Navigated, Browser2.Navigated, Browser3.Navigated
SyncLock IsFirstLoadedLock
If IsFirstLoaded Then Exit Sub
IsFirstLoaded = True
End SyncLock
RunInThread(Sub()
Thread.Sleep(1000)
RunInUi(Sub()
sender.Visibility = Visibility.Visible
PanLoading.Visibility = Visibility.Collapsed
Log("[Login] 已将登录窗口切换至浏览器")
End Sub)
End Sub)
End Sub
'窗体的进出事件
Public Shared LoginUrl1 As String = "https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize?prompt=login&client_id=00000000402b5328&response_type=code&scope=service%3A%3Auser.auth.xboxlive.com%3A%3AMBI_SSL&redirect_uri=https:%2F%2Flogin.live.com%2Foauth20_desktop.srf"
Public Shared LoginUrl2 As String = "https://login.live.com/oauth20_authorize.srf?prompt=login&client_id=00000000402b5328&response_type=code&scope=service%3A%3Auser.auth.xboxlive.com%3A%3AMBI_SSL&redirect_uri=https:%2F%2Flogin.live.com%2Foauth20_desktop.srf"
Private Sub FrmLoginOAuth_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Browser1.Navigate(LoginUrl1)
RunInThread(Sub()
'估计是由于时间戳原因,同时导航会导致误报密码失败
Thread.Sleep(2500)
RunInUi(Sub()
Try '防止在 Dispose 之后调用
If Not IsFirstLoaded Then Browser2.Navigate(LoginUrl1)
Catch
End Try
End Sub)
Thread.Sleep(2500)
RunInUi(Sub()
Try
If Not IsFirstLoaded Then Browser3.Navigate(LoginUrl2)
Catch
End Try
End Sub)
End Sub)
End Sub
Private Sub FormLoginOAuth_Closed() Handles Me.Closed
RunInThread(Sub()
Thread.Sleep(1000) '释放会卡一下,所以稍等一下……
RunInUiWait(Sub()
Try
Browser1.Dispose()
Catch ex As Exception
Log(ex, "释放微软登录浏览器 1 失败")
End Try
End Sub)
Thread.Sleep(200)
RunInUiWait(Sub()
Try
Browser2.Dispose()
Catch ex As Exception
Log(ex, "释放微软登录浏览器 2 失败")
End Try
End Sub)
Thread.Sleep(200)
RunInUiWait(Sub()
Try
Browser3.Dispose()
Catch ex As Exception
Log(ex, "释放微软登录浏览器 3 失败")
End Try
End Sub)
End Sub)
If Not IsLoginSuccessed Then RaiseEvent OnLoginCanceled(IsSwitch)
FrmMain.Focus()
End Sub
Private Sub HintSwitch_Click() Handles HintSwitch.Click
IsSwitch = True
Close()
End Sub
End Class
@@ -56,6 +56,9 @@
}, "MyMsgBox " & Uuid)
End Sub
'实现回车和 Esc 的接口(#4857)
Public Sub Btn1_Click() Handles Btn1.Click
End Sub
Public Sub Btn3_Click() Handles Btn3.Click
Finished(New ThreadInterruptedException)
End Sub
@@ -93,7 +96,7 @@
End Sub
Private Sub WorkThread()
Thread.Sleep(4000)
Thread.Sleep(3000)
If MyConverter.IsExited Then Exit Sub
OpenWebsite(Website)
ClipboardSet(UserCode)
@@ -122,12 +125,15 @@
ElseIf ex.Message.Contains("expired_token") Then
Finished(New Exception("$登录用时太长啦,重新试试吧!"))
Return
ElseIf ex.Message.Contains("AADSTS70000") Then '可能不能判 “invalid_grant”,见 #269
Finished(New RetryException)
Return
ElseIf ex.Message.Contains("authorization_pending") Then
Thread.Sleep(1000)
Thread.Sleep(2000)
ElseIf UnknownFailureCount <= 2 Then
UnknownFailureCount += 1
Log(ex, $"登录轮询第 {UnknownFailureCount} 次失败")
Thread.Sleep(1000)
Thread.Sleep(2000)
Else
Finished(New Exception("登录轮询失败", ex))
Return
@@ -110,6 +110,10 @@ Download:
Log("[Page] 主页预设:主页市场")
Url = "https://homepage-market.pages.dev/Custom.xaml"
GoTo Download
Case 8
Log("[Page] 主页预设:更新日志")
Url = "https://updatehomepage.pages.dev/UpdateHomepage.xaml"
GoTo Download
End Select
End Select
RunInUi(Sub() LoadContent(Content))
@@ -136,7 +140,7 @@ Download:
Dim NeedDownload As Boolean = True
Try
Version = NetGetCodeByRequestOnce(VersionAddress, Timeout:=10000)
If Version.Length > 100 Then Throw New Exception($"获取的自定义主页版本过长({Version.Length} 字符)")
If Version.Length > 1000 Then Throw New Exception($"获取的自定义主页版本过长({Version.Length} 字符)")
Dim CurrentVersion As String = Setup.Get("CacheSavedPageVersion")
If Version <> "" AndAlso CurrentVersion <> "" AndAlso Version = CurrentVersion Then
Log($"[Page] 当前缓存的自定义主页已为最新,当前版本:{Version},检查源:{VersionAddress}")
@@ -104,82 +104,108 @@
</local:MyCard>
<local:MyCard Margin="0,0,0,15" Title="赞助者">
<StackPanel Margin="25,40,10,20">
<TextBlock HorizontalAlignment="Left" Text="以下是 2024 年 8 月的高级赞助者们!感谢各位对 PCL 和伟大的咕咕咕事业的支持!" Margin="0,0,25,5.5" TextTrimming="None" TextWrapping="WrapWithOverflow" />
<TextBlock HorizontalAlignment="Left" Text="以下是 2024 年 9 月的高级赞助者们!感谢各位对 PCL 和伟大的咕咕咕事业的支持!" Margin="0,0,25,5.5" TextTrimming="None" TextWrapping="WrapWithOverflow" />
<WrapPanel Margin="0,0,0,10">
<TextBlock Width="120" Margin="0,1.5" Text="没用的元元" />
<TextBlock Width="120" Margin="0,1.5" Text="鸮不是号鸟" />
<TextBlock Width="120" Margin="0,1.5" Text="兮兮要次糖糖" />
<TextBlock Width="120" Margin="0,1.5" Text="wxzsghh114514" />
<TextBlock Width="120" Margin="0,1.5" Text="地了排子" />
<TextBlock Width="120" Margin="0,1.5" Text="阿宅cheli" />
<TextBlock Width="120" Margin="0,1.5" Text="笑脸114514" />
<TextBlock Width="120" Margin="0,1.5" Text="小麦A" />
<TextBlock Width="120" Margin="0,1.5" Text="未名小七TAO" />
<TextBlock Width="120" Margin="0,1.5" Text="雪冥" />
<TextBlock Width="120" Margin="0,1.5" Text="氟西汀" />
<TextBlock Width="120" Margin="0,1.5" Text="阿巴阿巴" />
<TextBlock Width="120" Margin="0,1.5" Text="侦探hj" />
<TextBlock Width="120" Margin="0,1.5" Text="666" />
<TextBlock Width="120" Margin="0,1.5" Text="萬帆WanFan" />
<TextBlock Width="120" Margin="0,1.5" Text="swayst" />
<TextBlock Width="120" Margin="0,1.5" Text="yuchen" />
<TextBlock Width="120" Margin="0,1.5" Text="鲸落猫南北" />
<TextBlock Width="120" Margin="0,1.5" Text="念池鱼思故渊" />
<TextBlock Width="120" Margin="0,1.5" Text="No_1died" />
<TextBlock Width="120" Margin="0,1.5" Text="Error02" />
<TextBlock Width="120" Margin="0,1.5" Text="橙子皮" />
<TextBlock Width="120" Margin="0,1.5" Text="丨丨丨丨" />
<TextBlock Width="120" Margin="0,1.5" Text="零崽" />
<TextBlock Width="120" Margin="0,1.5" Text="叁無" />
<TextBlock Width="120" Margin="0,1.5" Text="火星上行走的柠檬精" />
<TextBlock Width="120" Margin="0,1.5" Text="北极椰子" />
<TextBlock Width="120" Margin="0,1.5" Text="流玉髓" />
<TextBlock Width="120" Margin="0,1.5" Text="咕咕" />
<TextBlock Width="120" Margin="0,1.5" Text="小鹏1098" />
<TextBlock Width="120" Margin="0,1.5" Text="风雪" />
<TextBlock Width="120" Margin="0,1.5" Text="梦幻の小店" />
<TextBlock Width="120" Margin="0,1.5" Text="nhrnick" />
<TextBlock Width="120" Margin="0,1.5" Text="天天的周末" />
<TextBlock Width="120" Margin="0,1.5" Text="雪梨" />
<TextBlock Width="120" Margin="0,1.5" Text="Z_ebra" />
<TextBlock Width="120" Margin="0,1.5" Text="acmzyh" />
<TextBlock Width="120" Margin="0,1.5" Text="yuyyyu" />
<TextBlock Width="120" Margin="0,1.5" Text="看看" />
<TextBlock Width="120" Margin="0,1.5" Text="墨霜夜" />
<TextBlock Width="120" Margin="0,1.5" Text="皇势力" />
<TextBlock Width="120" Margin="0,1.5" Text="曦予千山" />
<TextBlock Width="120" Margin="0,1.5" Text="Lv50.疾旋鼬" />
<TextBlock Width="120" Margin="0,1.5" Text="雪暮" />
<TextBlock Width="120" Margin="0,1.5" Text="铁树" />
<TextBlock Width="120" Margin="0,1.5" Text="ZHypocrite" />
<TextBlock Width="120" Margin="0,1.5" Text="花卉" />
<TextBlock Width="120" Margin="0,1.5" Text="hmmmfffll" />
<TextBlock Width="120" Margin="0,1.5" Text="夕阳下的余光" />
<TextBlock Width="120" Margin="0,1.5" Text="扶风°" />
<TextBlock Width="120" Margin="0,1.5" Text="唠叨的土豆" />
<TextBlock Width="120" Margin="0,1.5" Text="ulifx" />
<TextBlock Width="120" Margin="0,1.5" Text="DXX" />
<TextBlock Width="120" Margin="0,1.5" Text="小曲" />
<TextBlock Width="120" Margin="0,1.5" Text="0飞霜墨染0" />
<TextBlock Width="120" Margin="0,1.5" Text="Aminos1337" />
<TextBlock Width="120" Margin="0,1.5" Text="死亡旋风大魔王" />
<TextBlock Width="120" Margin="0,1.5" Text="风见翎" />
<TextBlock Width="120" Margin="0,1.5" Text="水阔鱼" />
<TextBlock Width="120" Margin="0,1.5" Text="无名氏" />
<TextBlock Width="120" Margin="0,1.5" Text="绘梨衣のGodzilla" />
<TextBlock Width="120" Margin="0,1.5" Text="521HERTZ" />
<TextBlock Width="120" Margin="0,1.5" Text="momotsuki" />
<TextBlock Width="120" Margin="0,1.5" Text="浩东流" />
<TextBlock Width="120" Margin="0,1.5" Text="破片南瓜" />
<TextBlock Width="120" Margin="0,1.5" Text="playalone" />
<TextBlock Width="120" Margin="0,1.5" Text="木丶九九" />
<TextBlock Width="120" Margin="0,1.5" Text="闫雁" />
<TextBlock Width="120" Margin="0,1.5" Text="不知道叫啥" />
<TextBlock Width="120" Margin="0,1.5" Text="隔壁家老张" />
<TextBlock Width="120" Margin="0,1.5" Text="DZY" />
<TextBlock Width="120" Margin="0,1.5" Text="Hugh" />
<TextBlock Width="120" Margin="0,1.5" Text="Jto" />
<TextBlock Width="120" Margin="0,1.5" Text="JO极名字" />
<TextBlock Width="120" Margin="0,1.5" Text="啊猫" />
<TextBlock Width="120" Margin="0,1.5" Text="章九连" />
<TextBlock Width="120" Margin="0,1.5" Text="zeq_killjsj" />
<TextBlock Width="120" Margin="0,1.5" Text="重庆你周哥" />
<TextBlock Width="120" Margin="0,1.5" Text="我是桶子哥" />
<TextBlock Width="120" Margin="0,1.5" Text="chenxingyin" />
<TextBlock Width="120" Margin="0,1.5" Text="koimiaori" />
<TextBlock Width="120" Margin="0,1.5" Text="Awfrlu+" />
<TextBlock Width="120" Margin="0,1.5" Text="古河渚上花" />
<TextBlock Width="120" Margin="0,1.5" Text="THE END" />
<TextBlock Width="120" Margin="0,1.5" Text="哎呀菜菜子" />
<TextBlock Width="120" Margin="0,1.5" Text="AptS:1547" />
<TextBlock Width="120" Margin="0,1.5" Text="安麓" />
<TextBlock Width="120" Margin="0,1.5" Text="彘彘彘彘彘彘" />
<TextBlock Width="120" Margin="0,1.5" Text="通大小学弟" />
<TextBlock Width="120" Margin="0,1.5" Text="Ender__sun" />
<TextBlock Width="120" Margin="0,1.5" Text="此生浮" />
<TextBlock Width="120" Margin="0,1.5" Text="皮皮恒" />
<TextBlock Width="120" Margin="0,1.5" Text="charlesmin" />
<TextBlock Width="120" Margin="0,1.5" Text="snow" />
<TextBlock Width="120" Margin="0,1.5" Text="雨季丶看花落丬" />
<TextBlock Width="120" Margin="0,1.5" Text="greenClemente" />
<TextBlock Width="120" Margin="0,1.5" Text="nfd" />
<TextBlock Width="120" Margin="0,1.5" Text="求阙" />
<TextBlock Width="120" Margin="0,1.5" Text="苏苏" />
<TextBlock Width="120" Margin="0,1.5" Text="冰魄凝华Iris" />
<TextBlock Width="120" Margin="0,1.5" Text="TNT" />
<TextBlock Width="120" Margin="0,1.5" Text="jokeresin" />
<TextBlock Width="120" Margin="0,1.5" Text="冻冻莓" />
<TextBlock Width="120" Margin="0,1.5" Text="木吉" />
<TextBlock Width="120" Margin="0,1.5" Text="寰辰" />
<TextBlock Width="120" Margin="0,1.5" Text="大智" />
<TextBlock Width="120" Margin="0,1.5" Text="晚吟" />
<TextBlock Width="120" Margin="0,1.5" Text="e_2" />
<TextBlock Width="120" Margin="0,1.5" Text="墨辞" />
<TextBlock Width="120" Margin="0,1.5" Text="CongYiXu1259" />
<TextBlock Width="120" Margin="0,1.5" Text="绀香十九" />
<TextBlock Width="120" Margin="0,1.5" Text="花十一" />
<TextBlock Width="120" Margin="0,1.5" Text="摸摸鱼" />
<TextBlock Width="120" Margin="0,1.5" Text="不想起名" />
<TextBlock Width="120" Margin="0,1.5" Text="Corazon" />
<TextBlock Width="120" Margin="0,1.5" Text="断幕" />
<TextBlock Width="120" Margin="0,1.5" Text="wuying" />
<TextBlock Width="120" Margin="0,1.5" Text="隐”" />
<TextBlock Width="120" Margin="0,1.5" Text="华子" />
<TextBlock Width="120" Margin="0,1.5" Text="Hikari" />
<TextBlock Width="120" Margin="0,1.5" Text="小辉joyb_" />
<TextBlock Width="120" Margin="0,1.5" Text="bluck" />
<TextBlock Width="120" Margin="0,1.5" Text="风人过" />
<TextBlock Width="120" Margin="0,1.5" Text="锦锋" />
<TextBlock Width="120" Margin="0,1.5" Text="初辟鸿蒙" />
<TextBlock Width="120" Margin="0,1.5" Text="YLF零度" />
<TextBlock Width="120" Margin="0,1.5" Text="ADB114514" />
<TextBlock Width="120" Margin="0,1.5" Text="晓乐" />
<TextBlock Width="120" Margin="0,1.5" Text="Raze" />
<TextBlock Width="120" Margin="0,1.5" Text="jj" />
<TextBlock Width="120" Margin="0,1.5" Text="社÷老登" />
<TextBlock Width="120" Margin="0,1.5" Text="仝圮" />
<TextBlock Width="240" Margin="0,1.5" Text="FSL Launcher - 小黄菌" />
<TextBlock Width="120" Margin="0,1.5" Text="华燃王小灭" />
<TextBlock Width="120" Margin="0,1.5" Text="Charlotte_Caius" />
<TextBlock Width="120" Margin="0,1.5" Text="木了丰" />
<TextBlock Width="120" Margin="0,1.5" Text="-夜-光-" />
<TextBlock Width="120" Margin="0,1.5" Text="蓝色骷髅" />
<TextBlock Width="120" Margin="0,1.5" Text="易游" />
<TextBlock Width="120" Margin="0,1.5" Text="祈绫参_UPE" />
<TextBlock Width="120" Margin="0,1.5" Text="卖梦的人" />
<TextBlock Width="120" Margin="0,1.5" Text="rking" />
<TextBlock Width="120" Margin="0,1.5" Text="柠果籽" />
<TextBlock Width="240" Margin="0,1.5" Text="真我 · 人之律者爱莉希雅" />
<TextBlock Width="120" Margin="0,1.5" Text="KevinREL" />
<TextBlock Width="120" Margin="0,1.5" Text="LEIBI" />
<TextBlock Width="120" Margin="0,1.5" Text="GNFDF" />
<TextBlock Width="120" Margin="0,1.5" Text="朱重八" />
<TextBlock Width="120" Margin="0,1.5" Text="TONYAF" />
<TextBlock Width="120" Margin="0,1.5" Text="Reshiram???" />
<TextBlock Width="120" Margin="0,1.5" Text="克罗44" />
<TextBlock Width="120" Margin="0,1.5" Text="社恐的波奇酱" />
<TextBlock Width="120" Margin="0,1.5" Text="Xylophone233" />
<TextBlock Width="120" Margin="0,1.5" Text="陌上如玉" />
<TextBlock Width="120" Margin="0,1.5" Text="lili66" />
<TextBlock Width="120" Margin="0,1.5" Text="小派呀" />
<TextBlock Width="120" Margin="0,1.5" Text="日想" />
<TextBlock Width="120" Margin="0,1.5" Text="墨处择" />
<TextBlock Width="120" Margin="0,1.5" Text="刘畅" />
<TextBlock Width="120" Margin="0,1.5" Text="做好事不留名的好心人" />
<TextBlock Width="120" Margin="0,1.5" Text="好将军" />
<TextBlock Width="120" Margin="0,1.5" Text="为生活而拼搏" />
<TextBlock Width="120" Margin="0,1.5" Text="韬光养晦" />
<TextBlock Width="120" Margin="0,1.5" Text="知芍" />
<TextBlock Width="120" Margin="0,1.5" Text="awa" />
<TextBlock Width="120" Margin="0,1.5" Text="CaTy" />
<TextBlock Width="120" Margin="0,1.5" Text="zhifeiwen" />
<TextBlock Width="120" Margin="0,1.5" Text="磁爆步兵" />
<TextBlock Width="120" Margin="0,1.5" Text="双开门冰箱AK15" />
<TextBlock Width="120" Margin="0,1.5" Text="泠羽" />
<TextBlock Width="120" Margin="0,1.5" Text="lupeihao" />
<TextBlock Width="120" Margin="0,1.5" Text="木子" />
</WrapPanel>
<Grid Height="35">
<Grid.ColumnDefinitions>
@@ -266,18 +292,18 @@
<local:MyButton Grid.Row="9" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
EventType="打开网页" EventData="https://iconmonstr.com/license/" />
<TextBlock Grid.Row="10" Grid.Column="0" Text="Iconfont" TextWrapping="Wrap" FontWeight="Bold" />
<TextBlock Grid.Row="10" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © ALIMAMA MUX, powered by alimama THX." TextWrapping="Wrap" />
<local:MyButton Grid.Row="11" Grid.Column="2" MinWidth="140" Text="查看原网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
EventType="打开网页" EventData="https://www.iconfont.cn/" />
<TextBlock Grid.Row="12" Grid.Column="0" Text="libwebp wrapper for .NET" TextWrapping="Wrap" FontWeight="Bold" />
<TextBlock Grid.Row="12" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2012 Imazen&#xa;Licensed under the MIT License." TextWrapping="Wrap" />
<local:MyButton Grid.Row="13" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
<TextBlock Grid.Row="10" Grid.Column="0" Text="libwebp wrapper for .NET" TextWrapping="Wrap" FontWeight="Bold" />
<TextBlock Grid.Row="10" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2012 Imazen&#xa;Licensed under the MIT License." TextWrapping="Wrap" />
<local:MyButton Grid.Row="11" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
EventType="打开网页" EventData="https://github.com/imazen/libwebp-net" />
<local:MyButton Grid.Row="13" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
<local:MyButton Grid.Row="11" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
EventType="打开网页" EventData="https://github.com/imazen/libwebp-net/blob/master/LICENSE.txt" />
<TextBlock Grid.Row="12" Grid.Column="0" Text="Iconfont" TextWrapping="Wrap" FontWeight="Bold" />
<TextBlock Grid.Row="12" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © ALIMAMA MUX, powered by alimama THX." TextWrapping="Wrap" />
<local:MyButton Grid.Row="13" Grid.Column="2" MinWidth="140" Text="查看原网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
EventType="打开网页" EventData="https://www.iconfont.cn/" />
</Grid>
</local:MyCard>
</StackPanel>
@@ -244,6 +244,7 @@
<local:MyComboBoxItem Content="Minecraft 皮肤推荐(作者:wkea)" />
<local:MyComboBoxItem Content="OpenBMCLAPI 仪表盘 Lite(作者:Silverteal、Mxmilu666)" />
<local:MyComboBoxItem Content="PCL 主页市场(作者:凌云)" />
<local:MyComboBoxItem Content="PCL 更新日志(作者:Joker2184)" />
</local:MyComboBox>
</Grid>
</StackPanel>
@@ -470,6 +470,11 @@
Dim IndexOfLoader As Integer = McModLoader.Output.IndexOf(ModEntity)
McModLoader.Output.RemoveAt(IndexOfLoader)
McModLoader.Output.Insert(IndexOfLoader, NewModEntity)
If SearchResult IsNot Nothing Then
Dim IndexOfResult As Integer = SearchResult.IndexOf(ModEntity)
SearchResult.Remove(ModEntity)
SearchResult.Insert(IndexOfResult, NewModEntity)
End If
'更改 UI 中的列表
Dim NewItem As MyLocalModItem = McModListItem(NewModEntity)
ModItems(ModEntity.RawFileName) = NewItem
@@ -574,7 +579,14 @@
'结果提示
Select Case Loader.State
Case LoadState.Finished
Hint(If(FinishedFileNames.Count > 1, $"已成功更新 {FinishedFileNames.Count} 个 Mod!", $"已成功更新:{FinishedFileNames.Single}"), HintType.Finish)
Select Case FinishedFileNames.Count
Case 0 '一般是由于 Mod 文件被占用,然后玩家主动取消
Log($"[Mod] 没有 Mod 被成功更新")
Case 1
Hint($"已成功更新 {FinishedFileNames.Single}!", HintType.Finish)
Case Else
Hint($"已成功更新 {FinishedFileNames.Count} 个 Mod!", HintType.Finish)
End Select
Case LoadState.Failed
Hint("Mod 更新失败:" & GetExceptionSummary(Loader.Error), HintType.Critical)
Case LoadState.Aborted