feat(neoforge): NeoForge 官方源版本列表
feat(neoforge): NeoForge Minecraft 版本列表(官方源 Only) fix: NeoForge 手动安装无法正常加载(只修了一半) ui: 在自动安装的 NeoForge 卡片中显示最新稳定版和最新测试版 chores: 代码清理
This commit is contained in:
@@ -721,6 +721,108 @@
|
|||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
|
#Region "DlNeoForgeList | NeoForge Minecraft 版本列表"
|
||||||
|
|
||||||
|
Public Structure DlNeoForgeListResult
|
||||||
|
''' <summary>
|
||||||
|
''' 数据来源名称,如“Official”,“BMCLAPI”。
|
||||||
|
''' </summary>
|
||||||
|
Public SourceName As String
|
||||||
|
''' <summary>
|
||||||
|
''' 是否为官方的实时数据。
|
||||||
|
''' </summary>
|
||||||
|
Public IsOfficial As Boolean
|
||||||
|
''' <summary>
|
||||||
|
''' 获取到的数据。
|
||||||
|
''' </summary>
|
||||||
|
Public Value As List(Of String)
|
||||||
|
End Structure
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' NeoForge 版本列表,主加载器。
|
||||||
|
''' </summary>
|
||||||
|
Public DlNeoForgeListLoader As New LoaderTask(Of Integer, DlNeoForgeListResult)("DlNeoForgeList Main", AddressOf DlNeoForgeListMain)
|
||||||
|
Private Sub DlNeoForgeListMain(Loader As LoaderTask(Of Integer, DlNeoForgeListResult))
|
||||||
|
Select Case Setup.Get("ToolDownloadVersion")
|
||||||
|
Case 0
|
||||||
|
DlSourceLoader(Loader, New List(Of KeyValuePair(Of LoaderTask(Of Integer, DlNeoForgeListResult), Integer)) From {
|
||||||
|
New KeyValuePair(Of LoaderTask(Of Integer, DlNeoForgeListResult), Integer)(DlNeoForgeListOfficialLoader, 30),
|
||||||
|
New KeyValuePair(Of LoaderTask(Of Integer, DlNeoForgeListResult), Integer)(DlNeoForgeListOfficialLoader, 60)
|
||||||
|
}, Loader.IsForceRestarting)
|
||||||
|
Case 1
|
||||||
|
DlSourceLoader(Loader, New List(Of KeyValuePair(Of LoaderTask(Of Integer, DlNeoForgeListResult), Integer)) From {
|
||||||
|
New KeyValuePair(Of LoaderTask(Of Integer, DlNeoForgeListResult), Integer)(DlNeoForgeListOfficialLoader, 5),
|
||||||
|
New KeyValuePair(Of LoaderTask(Of Integer, DlNeoForgeListResult), Integer)(DlNeoForgeListOfficialLoader, 35)
|
||||||
|
}, Loader.IsForceRestarting)
|
||||||
|
Case Else
|
||||||
|
DlSourceLoader(Loader, New List(Of KeyValuePair(Of LoaderTask(Of Integer, DlNeoForgeListResult), Integer)) From {
|
||||||
|
New KeyValuePair(Of LoaderTask(Of Integer, DlNeoForgeListResult), Integer)(DlNeoForgeListOfficialLoader, 60),
|
||||||
|
New KeyValuePair(Of LoaderTask(Of Integer, DlNeoForgeListResult), Integer)(DlNeoForgeListOfficialLoader, 60)
|
||||||
|
}, Loader.IsForceRestarting)
|
||||||
|
End Select
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' NeoForge 版本列表,官方源。
|
||||||
|
''' </summary>
|
||||||
|
Public DlNeoForgeListOfficialLoader As New LoaderTask(Of Integer, DlNeoForgeListResult)("DlNeoForgeList Official", AddressOf DlNeoForgeListOfficialMain)
|
||||||
|
Private Sub DlNeoForgeListOfficialMain(Loader As LoaderTask(Of Integer, DlNeoForgeListResult))
|
||||||
|
'Dim Result As String = NetGetCodeByRequestRetry("https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.2.4.html", Encoding.Default, "text/html", UseBrowserUserAgent:=True)
|
||||||
|
'If Result.Length < 200 Then Throw New Exception("获取到的版本列表长度不足(" & Result & ")")
|
||||||
|
''获取所有版本信息
|
||||||
|
'Dim Names As List(Of String) = RegexSearch(Result, "(?<=a href=""index_)[0-9.]+(_pre[0-9]?)?(?=.html)")
|
||||||
|
'If Names.Count < 10 Then Throw New Exception("获取到的版本数量不足(" & Result & ")")
|
||||||
|
'Loader.Output = New DlNeoForgeListResult With {.IsOfficial = True, .SourceName = "NeoForge 官方源", .Value = Names}
|
||||||
|
Dim ResultLatest As String
|
||||||
|
Dim VersionsJArray As JArray
|
||||||
|
Try
|
||||||
|
ResultLatest = NetGetCodeByDownload("https://maven.neoforged.net/api/maven/versions/releases/net/neoforged/neoforge", UseBrowserUserAgent:=True)
|
||||||
|
Catch ex As Exception
|
||||||
|
If GetExceptionSummary(ex).Contains("(404)") Then
|
||||||
|
Throw New Exception("没有可用版本")
|
||||||
|
Else
|
||||||
|
Throw
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
|
If ResultLatest.Length < 50 Then Throw New Exception("获取到的版本列表长度不足(" & ResultLatest & ")")
|
||||||
|
VersionsJArray = GetJson(ResultLatest)("versions")
|
||||||
|
Dim Versions As List(Of String) = New List(Of String)
|
||||||
|
Versions.Add("1.20.1")
|
||||||
|
Try
|
||||||
|
For Each Token As String In VersionsJArray
|
||||||
|
Dim Version As String = Token.ToString().Replace("neoforge-", "")
|
||||||
|
Dim Inherit As String = "1." & Version.ToString().Split(".")(0) & "." & Token.ToString().Split(".")(1)
|
||||||
|
If Inherit.EndsWith(".0") Then
|
||||||
|
Inherit = Inherit.Replace(".0", "")
|
||||||
|
End If
|
||||||
|
If Versions.Contains(Inherit) Then
|
||||||
|
Continue For
|
||||||
|
Else
|
||||||
|
Versions.Add(Inherit)
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Catch ex As Exception
|
||||||
|
MyMsgBox(ex.ToString(), "错误")
|
||||||
|
Throw New Exception("版本列表解析失败(" & VersionsJArray.ToString & ")", ex)
|
||||||
|
End Try
|
||||||
|
If Not Versions.Any() Then Throw New Exception("没有可用版本")
|
||||||
|
Loader.Output = New DlNeoForgeListResult With {.IsOfficial = True, .SourceName = "NeoForge 官方源", .Value = Versions}
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' NeoForge 版本列表,BMCLAPI。
|
||||||
|
''' </summary>
|
||||||
|
'Public DlNeoForgeListBmclapiLoader As New LoaderTask(Of Integer, DlNeoForgeListResult)("DlNeoForgeList Bmclapi", AddressOf DlNeoForgeListBmclapiMain)
|
||||||
|
'Private Sub DlNeoForgeListBmclapiMain(Loader As LoaderTask(Of Integer, DlNeoForgeListResult))
|
||||||
|
' Dim Result As String = NetGetCodeByRequestRetry("https://bmclapi2.bangbang93.com/forge/minecraft", Encoding.Default)
|
||||||
|
' If Result.Length < 200 Then Throw New Exception("获取到的版本列表长度不足(" & Result & ")")
|
||||||
|
' '获取所有版本信息
|
||||||
|
' Dim Names As List(Of String) = RegexSearch(Result, "[0-9.]+(_pre[0-9]?)?")
|
||||||
|
' If Names.Count < 10 Then Throw New Exception("获取到的版本数量不足(" & Result & ")")
|
||||||
|
' Loader.Output = New DlNeoForgeListResult With {.IsOfficial = False, .SourceName = "BMCLAPI", .Value = Names}
|
||||||
|
'End Sub
|
||||||
|
#End Region
|
||||||
|
|
||||||
#Region "DlNeoForgeVersion | NeoForge 版本列表"
|
#Region "DlNeoForgeVersion | NeoForge 版本列表"
|
||||||
|
|
||||||
Public Class DlNeoForgeVersionEntry
|
Public Class DlNeoForgeVersionEntry
|
||||||
@@ -811,7 +913,6 @@
|
|||||||
''' <summary>
|
''' <summary>
|
||||||
''' NeoForge 版本列表,主加载器。
|
''' NeoForge 版本列表,主加载器。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public DlNeoForgeListLoader As New LoaderTask(Of String, List(Of DlNeoForgeVersionEntry))("DlNeoForgeList Main", AddressOf DlNeoForgeVersionMain)
|
|
||||||
Public Sub DlNeoForgeVersionMain(Loader As LoaderTask(Of String, List(Of DlNeoForgeVersionEntry))) 'BMCLAPI 不会返回完整的 NeoForge 版本列表,而貌似也没有办法获取 NeoForge 支持的所有 Minecraft 版本
|
Public Sub DlNeoForgeVersionMain(Loader As LoaderTask(Of String, List(Of DlNeoForgeVersionEntry))) 'BMCLAPI 不会返回完整的 NeoForge 版本列表,而貌似也没有办法获取 NeoForge 支持的所有 Minecraft 版本
|
||||||
Dim DlNeoForgeVersionOfficialLoader As New LoaderTask(Of String, List(Of DlNeoForgeVersionEntry))("DlNeoForgeVersion Official", AddressOf DlNeoForgeVersionOfficialMain)
|
Dim DlNeoForgeVersionOfficialLoader As New LoaderTask(Of String, List(Of DlNeoForgeVersionEntry))("DlNeoForgeVersion Official", AddressOf DlNeoForgeVersionOfficialMain)
|
||||||
Dim DlNeoForgeVersionBmclapiLoader As New LoaderTask(Of String, List(Of DlNeoForgeVersionEntry))("DlNeoForgeVersion Bmclapi", AddressOf DlNeoForgeVersionBmclapiMain)
|
Dim DlNeoForgeVersionBmclapiLoader As New LoaderTask(Of String, List(Of DlNeoForgeVersionEntry))("DlNeoForgeVersion Bmclapi", AddressOf DlNeoForgeVersionBmclapiMain)
|
||||||
@@ -838,10 +939,15 @@
|
|||||||
''' NeoForge 版本列表,官方源。
|
''' NeoForge 版本列表,官方源。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Sub DlNeoForgeVersionOfficialMain(Loader As LoaderTask(Of String, List(Of DlNeoForgeVersionEntry)))
|
Public Sub DlNeoForgeVersionOfficialMain(Loader As LoaderTask(Of String, List(Of DlNeoForgeVersionEntry)))
|
||||||
Dim Result As String
|
Dim ResultLatest As String
|
||||||
Dim ResultJson As JObject
|
Dim ResultLegacy As String
|
||||||
|
Dim ResultJson As String
|
||||||
|
Dim ResultLatestJson As JObject
|
||||||
|
Dim ResultLegacyJson As JObject
|
||||||
|
Dim VersionsJArray As JArray
|
||||||
Try
|
Try
|
||||||
Result = NetGetCodeByDownload("https://maven.neoforged.net/api/maven/versions/releases/net/neoforged/neoforge", UseBrowserUserAgent:=True)
|
ResultLatest = NetGetCodeByDownload("https://maven.neoforged.net/api/maven/versions/releases/net/neoforged/neoforge", UseBrowserUserAgent:=True)
|
||||||
|
ResultLegacy = NetGetCodeByDownload("https://maven.neoforged.net/api/maven/versions/releases/net/neoforged/forge", UseBrowserUserAgent:=True)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
If GetExceptionSummary(ex).Contains("(404)") Then
|
If GetExceptionSummary(ex).Contains("(404)") Then
|
||||||
Throw New Exception("没有可用版本")
|
Throw New Exception("没有可用版本")
|
||||||
@@ -849,10 +955,52 @@
|
|||||||
Throw
|
Throw
|
||||||
End If
|
End If
|
||||||
End Try
|
End Try
|
||||||
If Result.Length < 50 Then Throw New Exception("获取到的版本列表长度不足(" & Result & ")")
|
If ResultLatest.Length < 50 AndAlso ResultLegacy.Length < 50 Then Throw New Exception("获取到的版本列表长度不足(" & ResultLatest & ")")
|
||||||
ResultJson = GetJson(Result)
|
ResultLatestJson = GetJson(ResultLatest)
|
||||||
Dim VersionArray As Array = ResultJson("versions")
|
ResultLegacyJson = GetJson(ResultLegacy)
|
||||||
|
If Loader.Input IsNot Nothing Then
|
||||||
|
If Loader.Input Is "1.20.1" Then
|
||||||
|
VersionsJArray = ResultLegacyJson("versions")
|
||||||
|
Else
|
||||||
|
VersionsJArray = ResultLatestJson("versions")
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
VersionsJArray = ResultLatestJson("versions")
|
||||||
|
End If
|
||||||
Dim Versions As New List(Of DlNeoForgeVersionEntry)
|
Dim Versions As New List(Of DlNeoForgeVersionEntry)
|
||||||
|
Try
|
||||||
|
For Each Token As String In VersionsJArray
|
||||||
|
Dim StdVersion As String
|
||||||
|
Dim IsBeta As Boolean
|
||||||
|
Dim rawVersion As String = Token.ToString()
|
||||||
|
If rawVersion.Contains("-beta") Then
|
||||||
|
StdVersion = Token.ToString().Replace("neoforge-", "").Replace("-beta", "")
|
||||||
|
IsBeta = True
|
||||||
|
Else
|
||||||
|
StdVersion = Token.ToString().Replace("neoforge-", "")
|
||||||
|
IsBeta = False
|
||||||
|
End If
|
||||||
|
Dim Inherit As String = "1." & StdVersion.ToString().Split(".")(0) & "." & StdVersion.ToString().Split(".")(1)
|
||||||
|
If Inherit.EndsWith(".0") Then
|
||||||
|
Inherit = Inherit.Replace(".0", "")
|
||||||
|
End If
|
||||||
|
Dim Entry = New DlNeoForgeVersionEntry
|
||||||
|
If Loader.Input IsNot Nothing Then
|
||||||
|
If Inherit Is Loader.Input Then
|
||||||
|
Entry = New DlNeoForgeVersionEntry With {.Version = rawVersion, .Inherit = Inherit, .IsBeta = IsBeta, .StdVersion = StdVersion}
|
||||||
|
Versions.Add(Entry)
|
||||||
|
Continue For
|
||||||
|
Else
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Entry = New DlNeoForgeVersionEntry With {.Version = rawVersion, .Inherit = Inherit, .IsBeta = IsBeta, .StdVersion = StdVersion}
|
||||||
|
Versions.Add(Entry)
|
||||||
|
Next
|
||||||
|
Catch ex As Exception
|
||||||
|
MyMsgBox(ex.ToString(), "错误")
|
||||||
|
Throw New Exception("版本列表解析失败(" & VersionsJArray.ToString & ")", ex)
|
||||||
|
End Try
|
||||||
If Not Versions.Any() Then Throw New Exception("没有可用版本")
|
If Not Versions.Any() Then Throw New Exception("没有可用版本")
|
||||||
Loader.Output = Versions
|
Loader.Output = Versions
|
||||||
End Sub
|
End Sub
|
||||||
@@ -865,8 +1013,7 @@
|
|||||||
Dim Versions As New List(Of DlNeoForgeVersionEntry)
|
Dim Versions As New List(Of DlNeoForgeVersionEntry)
|
||||||
Try
|
Try
|
||||||
For Each Token As JObject In Json
|
For Each Token As JObject In Json
|
||||||
Dim Name As String '存储 rawVersion,貌似变化更加频繁
|
Dim StdVersion As String
|
||||||
Dim StdVersion As String '存储 version,相对规则
|
|
||||||
Dim IsBeta As Boolean
|
Dim IsBeta As Boolean
|
||||||
Dim rawVersion As String = Token("rawVersion")
|
Dim rawVersion As String = Token("rawVersion")
|
||||||
If rawVersion.Contains("-beta") Then
|
If rawVersion.Contains("-beta") Then
|
||||||
@@ -876,9 +1023,8 @@
|
|||||||
StdVersion = Token("version").ToString().Replace("neoforge-", "").Replace("1.20.1-", "")
|
StdVersion = Token("version").ToString().Replace("neoforge-", "").Replace("1.20.1-", "")
|
||||||
IsBeta = False
|
IsBeta = False
|
||||||
End If
|
End If
|
||||||
Name = rawVersion
|
|
||||||
Dim Inherit As String = Token("mcversion")
|
Dim Inherit As String = Token("mcversion")
|
||||||
Dim Entry = New DlNeoForgeVersionEntry With {.Version = Name, .Inherit = Inherit, .IsBeta = IsBeta, .StdVersion = StdVersion}
|
Dim Entry = New DlNeoForgeVersionEntry With {.Version = rawVersion, .Inherit = Inherit, .IsBeta = IsBeta, .StdVersion = StdVersion}
|
||||||
Versions.Add(Entry)
|
Versions.Add(Entry)
|
||||||
Next
|
Next
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
|
|||||||
@@ -2187,16 +2187,28 @@ Retry:
|
|||||||
#Region "NeoForge 下载菜单"
|
#Region "NeoForge 下载菜单"
|
||||||
|
|
||||||
Public Sub NeoForgeDownloadListItemPreload(Stack As StackPanel, Entrys As List(Of DlNeoForgeVersionEntry), OnClick As MyListItem.ClickEventHandler, IsSaveOnly As Boolean)
|
Public Sub NeoForgeDownloadListItemPreload(Stack As StackPanel, Entrys As List(Of DlNeoForgeVersionEntry), OnClick As MyListItem.ClickEventHandler, IsSaveOnly As Boolean)
|
||||||
'获取最新版本
|
'获取最新稳定版和测试版
|
||||||
Dim FreshVersion As DlNeoForgeVersionEntry = Nothing
|
Dim FreshStableVersion As DlNeoForgeVersionEntry = Nothing
|
||||||
|
Dim FreshBetaVersion As DlNeoForgeVersionEntry = Nothing
|
||||||
If Entrys.Any Then
|
If Entrys.Any Then
|
||||||
FreshVersion = Entrys.Last()
|
For Each Entry In Entrys
|
||||||
|
If Entry.IsBeta Then
|
||||||
|
FreshBetaVersion = Entry
|
||||||
|
Else
|
||||||
|
FreshStableVersion = Entry
|
||||||
|
End If
|
||||||
|
Next
|
||||||
Else
|
Else
|
||||||
Log("[System] 未找到可用的 NeoForge 版本", LogLevel.Debug)
|
Log("[System] 未找到可用的 NeoForge 版本", LogLevel.Debug)
|
||||||
End If
|
End If
|
||||||
'显示各个版本
|
'显示各个版本
|
||||||
If FreshVersion IsNot Nothing Then
|
If FreshStableVersion IsNot Nothing Then
|
||||||
Dim Fresh = NeoForgeDownloadListItem(FreshVersion, OnClick, IsSaveOnly)
|
Dim Fresh = NeoForgeDownloadListItem(FreshStableVersion, OnClick, IsSaveOnly)
|
||||||
|
Fresh.Info = "最新版" & If(Fresh.Info = "", "", "," & Fresh.Info)
|
||||||
|
Stack.Children.Add(Fresh)
|
||||||
|
End If
|
||||||
|
If FreshBetaVersion IsNot Nothing Then
|
||||||
|
Dim Fresh = NeoForgeDownloadListItem(FreshBetaVersion, OnClick, IsSaveOnly)
|
||||||
Fresh.Info = "最新版" & If(Fresh.Info = "", "", "," & Fresh.Info)
|
Fresh.Info = "最新版" & If(Fresh.Info = "", "", "," & Fresh.Info)
|
||||||
Stack.Children.Add(Fresh)
|
Stack.Children.Add(Fresh)
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -17,10 +17,11 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</local:MyCard>
|
</local:MyCard>
|
||||||
<local:MyCard x:Name="CardVersions" Margin="20,15,20,20" Title="版本列表">
|
<!--<local:MyCard x:Name="CardVersions" Margin="20,15,20,20" Title="版本列表">
|
||||||
<StackPanel x:Name="PanVersions" Margin="20,40,18,20" />
|
<StackPanel x:Name="PanVersions" Margin="20,40,18,20" />
|
||||||
</local:MyCard>
|
</local:MyCard>-->
|
||||||
<local:MyCard HorizontalAlignment="Center" SnapsToDevicePixels="True" x:Name="PanLoad" UseAnimation="False" Margin="40,50">
|
<StackPanel Name="PanMain" Margin="20,15,20,5" Grid.IsSharedSizeScope="True" />
|
||||||
|
<local:MyCard HorizontalAlignment="Center" Margin="40,50" SnapsToDevicePixels="True" x:Name="PanLoad" UseAnimation="False">
|
||||||
<local:MyLoading Text="正在获取 NeoForge 列表" Margin="20,20,20,17" x:Name="Load" HorizontalAlignment="Center" VerticalAlignment="Center" />
|
<local:MyLoading Text="正在获取 NeoForge 列表" Margin="20,20,20,17" x:Name="Load" HorizontalAlignment="Center" VerticalAlignment="Center" />
|
||||||
</local:MyCard>
|
</local:MyCard>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
Public Class PageDownloadNeoForge
|
Public Class PageDownloadNeoForge
|
||||||
|
|
||||||
Private Sub LoaderInit() Handles Me.Initialized
|
Private Sub LoaderInit() Handles Me.Initialized
|
||||||
PageLoaderInit(Load, PanLoad, CardVersions, CardTip, DlNeoForgeListLoader, AddressOf Load_OnFinish)
|
PageLoaderInit(Load, PanLoad, PanMain, CardTip, DlNeoForgeListLoader, AddressOf Load_OnFinish)
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub Init() Handles Me.Loaded
|
Private Sub Init() Handles Me.Loaded
|
||||||
PanBack.ScrollToHome()
|
PanBack.ScrollToHome()
|
||||||
@@ -10,21 +10,44 @@
|
|||||||
Private Sub Load_OnFinish()
|
Private Sub Load_OnFinish()
|
||||||
'结果数据化
|
'结果数据化
|
||||||
Try
|
Try
|
||||||
Dim Versions As List(Of DlNeoForgeVersionEntry) = DlNeoForgeListLoader.Output
|
Dim Versions = Sort(DlNeoForgeListLoader.Output.Value, AddressOf VersionSortBoolean)
|
||||||
PanVersions.Children.Clear()
|
'Dim Versions As List(Of DlNeoForgeVersionEntry) = DlNeoForgeListLoader.Output
|
||||||
For Each Version In Versions
|
PanMain.Children.Clear()
|
||||||
PanVersions.Children.Add(NeoForgeDownloadListItem(Version, AddressOf NeoForge_Selected, True))
|
For Each Version As String In Versions
|
||||||
|
'增加卡片
|
||||||
|
Dim NewCard As New MyCard With {.Title = Version.Replace("_p", " P"), .Margin = New Thickness(0, 0, 0, 15), .SwapType = 5}
|
||||||
|
Dim NewStack As New StackPanel With {.Margin = New Thickness(20, MyCard.SwapedHeight, 18, 0), .VerticalAlignment = VerticalAlignment.Top, .RenderTransform = New TranslateTransform(0, 0), .Tag = Version}
|
||||||
|
NewCard.Children.Add(NewStack)
|
||||||
|
NewCard.SwapControl = NewStack
|
||||||
|
NewCard.IsSwaped = True
|
||||||
|
PanMain.Children.Add(NewCard)
|
||||||
Next
|
Next
|
||||||
CardVersions.Title = "版本列表 (" & Versions.Count & ")"
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Log(ex, "可视化 NeoForge 版本列表出错", LogLevel.Feedback)
|
Log(ex, "可视化 NeoForge 版本列表出错", LogLevel.Feedback)
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
Public Sub NeoForge_StateChanged(sender As MyLoading, newState As MyLoading.MyLoadingState, oldState As MyLoading.MyLoadingState)
|
||||||
|
If newState <> MyLoading.MyLoadingState.Stop Then Exit Sub
|
||||||
|
|
||||||
|
Dim Card As MyCard = CType(sender.Parent, FrameworkElement).Parent
|
||||||
|
Dim Loader As LoaderTask(Of String, List(Of DlNeoForgeVersionEntry)) = sender.State
|
||||||
|
'载入列表
|
||||||
|
Card.SwapControl.Children.Clear()
|
||||||
|
Card.SwapControl.Tag = Loader.Output
|
||||||
|
Card.SwapType = 6
|
||||||
|
Card.StackInstall()
|
||||||
|
End Sub
|
||||||
|
Public Sub NeoForge_Click(sender As MyLoading, e As MouseButtonEventArgs)
|
||||||
|
If sender.State.LoadingState = MyLoading.MyLoadingState.Error Then
|
||||||
|
CType(sender.State, LoaderTask(Of String, List(Of DlNeoForgeVersionEntry))).Start(IsForceRestart:=True)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
Private Sub NeoForge_Selected(sender As MyListItem, e As EventArgs)
|
Private Sub NeoForge_Selected(sender As MyListItem, e As EventArgs)
|
||||||
McDownloadNeoForgeSave(sender.Tag)
|
McDownloadNeoForgeSave(sender.Tag)
|
||||||
End Sub
|
End Sub
|
||||||
|
Public Sub DownloadStart(sender As MyListItem, e As Object)
|
||||||
|
McDownloadNeoForge(sender.Tag)
|
||||||
|
End Sub
|
||||||
Private Sub BtnWeb_Click(sender As Object, e As EventArgs) Handles BtnWeb.Click
|
Private Sub BtnWeb_Click(sender As Object, e As EventArgs) Handles BtnWeb.Click
|
||||||
OpenWebsite("https://neoforged.net/")
|
OpenWebsite("https://neoforged.net/")
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
Reference in New Issue
Block a user