fix: NeoForge 版本列表排序,但是抽象实现

This commit is contained in:
Pigeon0v0
2024-06-15 23:12:42 +08:00
parent e731ef69d4
commit 8d9dc4712b
3 changed files with 14 additions and 7 deletions
@@ -752,6 +752,10 @@
''' 是否是 Beta 版。若未提供则默认为 False。 ''' 是否是 Beta 版。若未提供则默认为 False。
''' </summary> ''' </summary>
Public IsBeta As Boolean = False Public IsBeta As Boolean = False
''' <summary>
''' 标准的版本号
''' </summary>
Public StdVersion As String
Public Structure DlNeoForgeListResult Public Structure DlNeoForgeListResult
''' <summary> ''' <summary>
''' 数据来源名称,如“Official”,“BMCLAPI”。 ''' 数据来源名称,如“Official”,“BMCLAPI”。
@@ -897,17 +901,19 @@
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 Dim Name As String '存储 rawVersion,貌似变化更加频繁
Dim StdVersion As String '存储 version,相对规则
Dim IsBeta As Boolean Dim IsBeta As Boolean
If Token("version").Contains("-beta") Then If Token("version").Contains("-beta") Then
Name = Token("version").ToString() - "-beta" StdVersion = Token("version").ToString() - "-beta"
IsBeta = True IsBeta = True
Else Else
Name = Token("version") StdVersion = Token("version").ToString()
IsBeta = False IsBeta = False
End If End If
Name = Token("rawVersion")
Dim Inherit As String = Token("mcversion") Dim Inherit As String = Token("mcversion")
Dim Entry = New DlNeoForgeVersionEntry With {.Version = Name, .Inherit = Inherit, .IsBeta = IsBeta} Dim Entry = New DlNeoForgeVersionEntry With {.Version = Name, .Inherit = Inherit, .IsBeta = IsBeta, .StdVersion = StdVersion}
Versions.Add(Entry) Versions.Add(Entry)
Next Next
'For Each Token As JObject In Json 'For Each Token As JObject In Json
@@ -2241,11 +2241,10 @@ Retry:
'获取最新版本 '获取最新版本
Dim FreshVersion As DlNeoForgeVersionEntry = Nothing Dim FreshVersion As DlNeoForgeVersionEntry = Nothing
If Entrys.Any Then If Entrys.Any Then
FreshVersion = Entrys(0) FreshVersion = Entrys.Last()
Else Else
Log("[System] 未找到可用的 NeoForge 版本", LogLevel.Debug) Log("[System] 未找到可用的 NeoForge 版本", LogLevel.Debug)
End If End If
Dim RecommendedVersion As DlNeoForgeVersionEntry = Nothing
'显示各个版本 '显示各个版本
If FreshVersion IsNot Nothing Then If FreshVersion IsNot Nothing Then
Dim Fresh = NeoForgeDownloadListItem(FreshVersion, OnClick, IsSaveOnly) Dim Fresh = NeoForgeDownloadListItem(FreshVersion, OnClick, IsSaveOnly)
@@ -974,9 +974,11 @@
If Not Loader.Output.Any() Then Exit Sub If Not Loader.Output.Any() Then Exit Sub
PanNeoForge.Children.Clear() PanNeoForge.Children.Clear()
Dim VersionsArray As Array = Versions.ToArray()
VersionsArray.Reverse(VersionsArray)
'Versions = Sort(Versions, Function(a, b) New Version(a.Version) > New Version(b.Version)).ToList 'Versions = Sort(Versions, Function(a, b) New Version(a.Version) > New Version(b.Version)).ToList
NeoForgeDownloadListItemPreload(PanNeoForge, Versions, AddressOf NeoForge_Selected, False) NeoForgeDownloadListItemPreload(PanNeoForge, Versions, AddressOf NeoForge_Selected, False)
For Each Version In Versions For Each Version In VersionsArray
PanNeoForge.Children.Add(NeoForgeDownloadListItem(Version, AddressOf NeoForge_Selected, False)) PanNeoForge.Children.Add(NeoForgeDownloadListItem(Version, AddressOf NeoForge_Selected, False))
Next Next
Catch ex As Exception Catch ex As Exception