ui: 显示 NeoForge 版本属性(测试版 / 稳定版)

This commit is contained in:
Pigeon0v0
2024-06-15 22:38:39 +08:00
parent 7ba79db82c
commit e731ef69d4
3 changed files with 21 additions and 5 deletions
@@ -748,6 +748,10 @@
''' 版本分支。若无分支则为 Nothing。 ''' 版本分支。若无分支则为 Nothing。
''' </summary> ''' </summary>
Public Branch As String = Nothing Public Branch As String = Nothing
''' <summary>
''' 是否是 Beta 版。若未提供则默认为 False。
''' </summary>
Public IsBeta As Boolean = False
Public Structure DlNeoForgeListResult Public Structure DlNeoForgeListResult
''' <summary> ''' <summary>
''' 数据来源名称,如“Official”,“BMCLAPI”。 ''' 数据来源名称,如“Official”,“BMCLAPI”。
@@ -857,7 +861,6 @@
ResultJson = GetJson(Result) ResultJson = GetJson(Result)
Dim Versions As New List(Of DlNeoForgeVersionEntry) Dim Versions As New List(Of DlNeoForgeVersionEntry)
Dim VersionList As String = ResultJson("versions") Dim VersionList As String = ResultJson("versions")
MyMsgBox(VersionList, "VersionList 获取测试")
'Try 'Try
' Try ' Try
' '基础信息获取 ' '基础信息获取
@@ -894,9 +897,17 @@
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 = Token("version") Dim Name As String
Dim IsBeta As Boolean
If Token("version").Contains("-beta") Then
Name = Token("version").ToString() - "-beta"
IsBeta = True
Else
Name = Token("version")
IsBeta = False
End If
Dim Inherit As String = Token("mcversion") Dim Inherit As String = Token("mcversion")
Dim Entry = New DlNeoForgeVersionEntry With {.Version = Name, .Inherit = Inherit} Dim Entry = New DlNeoForgeVersionEntry With {.Version = Name, .Inherit = Inherit, .IsBeta = IsBeta}
Versions.Add(Entry) Versions.Add(Entry)
Next Next
'For Each Token As JObject In Json 'For Each Token As JObject In Json
@@ -2258,8 +2258,9 @@ Retry:
Public Function NeoForgeDownloadListItem(Entry As DlNeoForgeVersionEntry, OnClick As MyListItem.ClickEventHandler, IsSaveOnly As Boolean) As MyListItem Public Function NeoForgeDownloadListItem(Entry As DlNeoForgeVersionEntry, OnClick As MyListItem.ClickEventHandler, IsSaveOnly As Boolean) As MyListItem
'建立控件 '建立控件
Dim NewItem As New MyListItem With { Dim NewItem As New MyListItem With {
.Title = Entry.Version, .SnapsToDevicePixels = True, .Height = 42, .Type = MyListItem.CheckType.Clickable, .Tag = Entry, .Title = If(Entry.IsBeta, Entry.Version & "-beta", Entry.Version), .SnapsToDevicePixels = True, .Height = 42, .Type = MyListItem.CheckType.Clickable, .Tag = Entry,
.Info = If(Entry.ReleaseTime = "", .Info = If(Entry.IsBeta, "稳定版", "测试版") &
If(Entry.ReleaseTime = "",
If(ModeDebug, "种类:" & Entry.Category & If(Entry.Branch Is Nothing, "", ",开发分支:" & Entry.Branch), ""), If(ModeDebug, "种类:" & Entry.Category & If(Entry.Branch Is Nothing, "", ",开发分支:" & Entry.Branch), ""),
"发布于 " & Entry.ReleaseTime & If(ModeDebug, ",种类:" & Entry.Category & If(Entry.Branch Is Nothing, "", ",开发分支:" & Entry.Branch), "")), "发布于 " & Entry.ReleaseTime & If(ModeDebug, ",种类:" & Entry.Category & If(Entry.Branch Is Nothing, "", ",开发分支:" & Entry.Branch), "")),
.Logo = PathImage & "Blocks/Anvil.png" .Logo = PathImage & "Blocks/Anvil.png"
@@ -787,6 +787,7 @@
If LoadLiteLoader Is Nothing OrElse LoadLiteLoader.State.LoadingState = MyLoading.MyLoadingState.Run Then Return "正在获取版本列表……" If LoadLiteLoader Is Nothing OrElse LoadLiteLoader.State.LoadingState = MyLoading.MyLoadingState.Run Then Return "正在获取版本列表……"
If LoadLiteLoader.State.LoadingState = MyLoading.MyLoadingState.Error Then Return "获取版本列表失败:" & CType(LoadLiteLoader.State, Object).Error.Message If LoadLiteLoader.State.LoadingState = MyLoading.MyLoadingState.Error Then Return "获取版本列表失败:" & CType(LoadLiteLoader.State, Object).Error.Message
For Each Version As DlLiteLoaderListEntry In DlLiteLoaderListLoader.Output.Value For Each Version As DlLiteLoaderListEntry In DlLiteLoaderListLoader.Output.Value
If SelectedNeoForge IsNot Nothing Then Return "与 NeoForge 不兼容"
If Version.Inherit = SelectedMinecraftId Then Return Nothing If Version.Inherit = SelectedMinecraftId Then Return Nothing
Next Next
Return "没有可用版本" Return "没有可用版本"
@@ -857,6 +858,7 @@
Dim NotSuitForOptiFine As Boolean = False Dim NotSuitForOptiFine As Boolean = False
For Each Version In Loader.Output For Each Version In Loader.Output
If Version.Category = "universal" OrElse Version.Category = "client" Then Continue For '跳过无法自动安装的版本 If Version.Category = "universal" OrElse Version.Category = "client" Then Continue For '跳过无法自动安装的版本
If SelectedNeoForge IsNot Nothing Then Return "与 NeoForge 不兼容"
If SelectedFabric IsNot Nothing Then Return "与 Fabric 不兼容" If SelectedFabric IsNot Nothing Then Return "与 Fabric 不兼容"
If SelectedOptiFine IsNot Nothing AndAlso If SelectedOptiFine IsNot Nothing AndAlso
VersionSortInteger(SelectedMinecraftId, "1.13") >= 0 AndAlso VersionSortInteger("1.14.3", SelectedMinecraftId) >= 0 Then VersionSortInteger(SelectedMinecraftId, "1.13") >= 0 AndAlso VersionSortInteger("1.14.3", SelectedMinecraftId) >= 0 Then
@@ -945,6 +947,7 @@
If Loader.State <> LoadState.Finished Then Return "获取版本列表失败:未知错误,状态为 " & GetStringFromEnum(Loader.State) If Loader.State <> LoadState.Finished Then Return "获取版本列表失败:未知错误,状态为 " & GetStringFromEnum(Loader.State)
For Each Version In Loader.Output For Each Version In Loader.Output
If Version.Category = "universal" OrElse Version.Category = "client" Then Continue For '跳过无法自动安装的版本 If Version.Category = "universal" OrElse Version.Category = "client" Then Continue For '跳过无法自动安装的版本
If SelectedForge IsNot Nothing Then Return "与 Forge 不兼容"
If SelectedFabric IsNot Nothing Then Return "与 Fabric 不兼容" If SelectedFabric IsNot Nothing Then Return "与 Fabric 不兼容"
Return Nothing Return Nothing
Next Next
@@ -1008,6 +1011,7 @@
If LoadFabric.State.LoadingState = MyLoading.MyLoadingState.Error Then Return "获取版本列表失败:" & CType(LoadFabric.State, Object).Error.Message If LoadFabric.State.LoadingState = MyLoading.MyLoadingState.Error Then Return "获取版本列表失败:" & CType(LoadFabric.State, Object).Error.Message
For Each Version As JObject In DlFabricListLoader.Output.Value("game") For Each Version As JObject In DlFabricListLoader.Output.Value("game")
If Version("version").ToString = SelectedMinecraftId.Replace("∞", "infinite").Replace("Combat Test 7c", "1.16_combat-3") Then If Version("version").ToString = SelectedMinecraftId.Replace("∞", "infinite").Replace("Combat Test 7c", "1.16_combat-3") Then
If SelectedNeoForge IsNot Nothing Then Return "与 NeoForge 不兼容"
If SelectedForge IsNot Nothing Then Return "与 Forge 不兼容" If SelectedForge IsNot Nothing Then Return "与 Forge 不兼容"
'If SelectedOptiFine IsNot Nothing Then Return "与 OptiFine 不兼容" 'If SelectedOptiFine IsNot Nothing Then Return "与 OptiFine 不兼容"
Return Nothing Return Nothing