fix: NeoForge 版本列表排序,但是抽象实现
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user