This commit is contained in:
龙腾猫跃
2024-07-07 02:17:36 +08:00
parent 7b0e925748
commit 7ee533ca43
8 changed files with 115 additions and 197 deletions
+5
View File
@@ -115,6 +115,11 @@ Public Class FormMain
'3:BUG+ IMP* FEAT- '3:BUG+ IMP* FEAT-
'2:BUG* IMP- '2:BUG* IMP-
'1:BUG- '1:BUG-
If LastVersion < 328 Then 'Snapshot 2.8.1
If LastVersion = 327 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复无法安装 Forge 1.12.2- 的 Bug"))
If LastVersion = 327 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复无法输入解锁码的 Bug"))
If LastVersion = 327 Then BugCount += 1
End If
If LastVersion < 327 Then 'Snapshot 2.8.0 If LastVersion < 327 Then 'Snapshot 2.8.0
FeatureList.Add(New KeyValuePair(Of Integer, String)(5, "NeoForge 兼容与自动安装")) FeatureList.Add(New KeyValuePair(Of Integer, String)(5, "NeoForge 兼容与自动安装"))
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "支持编译、运行 PCL 开源代码")) FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "支持编译、运行 PCL 开源代码"))
@@ -11,12 +11,12 @@ Public Module ModBase
#Region "声明" #Region "声明"
'下列版本信息由更新器自动修改 '下列版本信息由更新器自动修改
Public Const VersionBaseName As String = "2.8.0" '不含分支前缀的显示用版本名 Public Const VersionBaseName As String = "2.8.1" '不含分支前缀的显示用版本名
Public Const VersionStandardCode As String = "2.8.0." & VersionBranchCode '标准格式的四段式版本号 Public Const VersionStandardCode As String = "2.8.1." & VersionBranchCode '标准格式的四段式版本号
#If BETA Then #If BETA Then
Public Const VersionCode As Integer = 326 'Release Public Const VersionCode As Integer = 326 'Release
#Else #Else
Public Const VersionCode As Integer = 327 'Snapshot Public Const VersionCode As Integer = 328 'Snapshot
#End If #End If
'自动生成的版本信息 '自动生成的版本信息
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName
@@ -51,6 +51,6 @@ Imports System.Runtime.InteropServices
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 ' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
' 方法是按如下所示使用“*” ' 方法是按如下所示使用“*”
<Assembly: AssemblyVersion("2.8.0.0")> <Assembly: AssemblyVersion("2.8.1.0")>
<Assembly: AssemblyFileVersion("2.8.0.0")> <Assembly: AssemblyFileVersion("2.8.1.0")>
<Assembly: NeutralResourcesLanguage("")> <Assembly: NeutralResourcesLanguage("")>
@@ -1007,73 +1007,6 @@ Retry:
#Region "Forgelike 下载" #Region "Forgelike 下载"
Public Sub McDownloadForgelike(Info As DlForgelikeEntry)
'老版本提示
If Not Info.IsNeoForge Then
Dim ForgeInfo As DlForgeVersionEntry = Info
If ForgeInfo.Category = "client" Then
If MyMsgBox("该 Forge 版本过于古老,PCL 暂不支持该版本的自动安装。" & vbCrLf &
"若你仍然希望继续,PCL 将把安装程序下载到你指定的位置,但不会进行安装。",
"版本过老", "继续", "取消") = 1 Then
McDownloadForgelikeSave(Info)
End If
Exit Sub
End If
If ForgeInfo.Category = "universal" OrElse ForgeInfo.Inherit.StartsWithF("1.5") Then
If MyMsgBox("该 Forge 版本过于古老,PCL 暂不支持该版本的自动安装。" & vbCrLf &
"若你仍然希望继续,PCL 将把安装程序下载到你指定的位置,但不会进行安装。",
"版本过老", "继续", "取消") = 1 Then
McDownloadForgelikeSave(Info)
End If
Exit Sub
End If
End If
'初始化参数
Dim McVersionName As String = $"{Info.Inherit}-{Info.LoaderName.ToLower}-{Info.VersionName}"
Dim TempFolder As String = $"{PathTemp}Cache\Code\{Info.LoaderName}Install-{Info.Version}_{GetUuid()}.{Info.FileExtension}"
Dim McVersionFolder As String = $"{PathMcFolder}versions\{McVersionName}\"
Dim DisplayName As String = $"{Info.LoaderName} {Info.Inherit} - {Info.VersionName}"
Try
'重复任务检查
SyncLock LoaderTaskbarLock
For i = 0 To LoaderTaskbar.Count - 1
If LoaderTaskbar(i).Name = Info.LoaderName & " 下载" Then
Hint("该版本正在下载中!", HintType.Critical)
Exit Sub
End If
Next
End SyncLock
'已有版本检查
If File.Exists(McVersionFolder & McVersionName & ".json") Then
If MyMsgBox("版本 " & McVersionName & " 已存在,是否重新下载?" & vbCrLf & "这会覆盖版本的 json 和 jar 文件,但不会影响版本隔离的文件。", "版本已存在", "继续", "取消") = 1 Then
File.Delete(McVersionFolder & McVersionName & ".jar")
File.Delete(McVersionFolder & McVersionName & ".json")
Else
Exit Sub
End If
End If
'启动
Dim Loader As New LoaderCombo(Of String)(Info.LoaderName & " 下载",
McDownloadForgelikeLoader(Info.IsNeoForge, If(Info.IsNeoForge, CType(Info, DlNeoForgeListEntry).ApiName, Info.VersionName), Info.Inherit, Info)) With
{.OnStateChanged = AddressOf McInstallState}
Loader.Start(McVersionFolder)
LoaderTaskbarAdd(Loader)
FrmMain.BtnExtraDownload.ShowRefresh()
FrmMain.BtnExtraDownload.Ribble()
Catch ex As Exception
Log(ex, $"开始 {Info.LoaderName} 下载失败", LogLevel.Feedback)
Finally
'删除安装包
Try
If File.Exists(TempFolder) Then File.Delete(TempFolder)
Catch
End Try
End Try
End Sub
Public Sub McDownloadForgelikeSave(Info As DlForgelikeEntry) Public Sub McDownloadForgelikeSave(Info As DlForgelikeEntry)
Try Try
Dim Target As String = SelectAs("选择保存位置", $"{Info.LoaderName}-{Info.Inherit}-{Info.VersionName}.{Info.FileExtension}", Dim Target As String = SelectAs("选择保存位置", $"{Info.LoaderName}-{Info.Inherit}-{Info.VersionName}.{Info.FileExtension}",
@@ -1242,12 +1175,6 @@ Retry:
End SyncLock End SyncLock
End Sub End Sub
Private Sub ForgelikeInjectorLine(Content As String, Task As LoaderTask(Of Boolean, Boolean)) Private Sub ForgelikeInjectorLine(Content As String, Task As LoaderTask(Of Boolean, Boolean))
If Content.StartsWithF(" Data") OrElse Content.StartsWithF(" Slim") Then
If ModeDebug Then Log("[Installer] " & Content)
ElseIf Content.StartsWithF(" Reading patch ") Then
If ModeDebug Then Log("[Installer] " & Content)
Task.Progress = 0.86
Else
Select Case Content Select Case Content
Case "Extracting json" Case "Extracting json"
Log("[Installer] " & Content) Log("[Installer] " & Content)
@@ -1259,17 +1186,21 @@ Retry:
If ModeDebug Then Log("[Installer] " & Content) If ModeDebug Then Log("[Installer] " & Content)
Task.Progress += 0.003 Task.Progress += 0.003
Case "Building Processors" Case "Building Processors"
Task.Progress = 0.38 Task.Progress = 0.18
Case "Task: DOWNLOAD_MOJMAPS" 'B Case "Task: DOWNLOAD_MOJMAPS" 'B
Task.Progress = 0.4 Task.Progress = 0.2
Case "Task: MERGE_MAPPING" 'B Case "Task: MERGE_MAPPING" 'B
Task.Progress = 0.6 Task.Progress = 0.3
Case "Splitting: " Case "Splitting: "
Task.Progress = 0.62 Task.Progress = 0.35
Case "Parameter Annotations" 'B Case "Parameter Annotations" 'B
Task.Progress = 0.66 Task.Progress = 0.4
Case "Processing Complete" 'B Case "Processing Complete" 'B
Task.Progress = 0.7 Task.Progress = 0.5
Case "log: null" 'new
Task.Progress = 0.5
Case "Sorting" 'new
Task.Progress = 0.65
Case "Remapping final jar" 'A Case "Remapping final jar" 'A
Task.Progress = 0.72 Task.Progress = 0.72
Case "Remapping jar... 50%" 'A Case "Remapping jar... 50%" 'A
@@ -1283,38 +1214,35 @@ Retry:
Exit Sub Exit Sub
End Select End Select
Log("[Installer] " & Content) Log("[Installer] " & Content)
End If
End Sub End Sub
''' <summary> ''' <summary>
''' 获取下载某个 Forgelike 版本的加载器列表。 ''' 获取下载某个 Forgelike 版本的加载器列表。
''' </summary> ''' </summary>
Private Function McDownloadForgelikeLoader(IsNeoForge As Boolean, Version As String, Inherit As String, Optional Info As DlForgelikeEntry = Nothing, Optional McFolder As String = Nothing, Optional ClientDownloadLoader As LoaderCombo(Of String) = Nothing, Optional ClientFolder As String = Nothing, Optional FixLibrary As Boolean = True) As List(Of LoaderBase) Private Function McDownloadForgelikeLoader(IsNeoForge As Boolean, LoaderVersion As String, TargetVersion As String, Inherit As String, Optional Info As DlForgelikeEntry = Nothing, Optional McFolder As String = Nothing, Optional ClientDownloadLoader As LoaderCombo(Of String) = Nothing, Optional ClientFolder As String = Nothing) As List(Of LoaderBase)
'参数初始化 '参数初始化
McFolder = If(McFolder, PathMcFolder) McFolder = If(McFolder, PathMcFolder)
If IsNeoForge AndAlso Info Is Nothing Then If IsNeoForge AndAlso Info Is Nothing Then
'需要传入 API Name,但整合包版本可能不以 1.20.1- 开头,所以需要进行特别处理 '需要传入 API Name,但整合包版本可能不以 1.20.1- 开头,所以需要进行特别处理
If Inherit = "1.20.1" AndAlso Not Version.StartsWithF("1.20.1-") Then If Inherit = "1.20.1" AndAlso Not LoaderVersion.StartsWithF("1.20.1-") Then
Info = New DlNeoForgeListEntry("1.20.1-" & Version) Info = New DlNeoForgeListEntry("1.20.1-" & LoaderVersion)
Else Else
Info = New DlNeoForgeListEntry(Version) Info = New DlNeoForgeListEntry(LoaderVersion)
End If End If
End If End If
If Not IsNeoForge AndAlso Version.StartsWithF("1.") AndAlso Version.Contains("-") Then If Not IsNeoForge AndAlso LoaderVersion.StartsWithF("1.") AndAlso LoaderVersion.Contains("-") Then
'类似 1.19.3-41.2.8 格式,优先使用 Version 中要求的版本而非 Inherit(例如 1.19.3 却使用了 1.19 的 Forge) '类似 1.19.3-41.2.8 格式,优先使用 Version 中要求的版本而非 Inherit(例如 1.19.3 却使用了 1.19 的 Forge)
Inherit = Version.Before("-") Inherit = LoaderVersion.Before("-")
Version = Version.After("-") LoaderVersion = LoaderVersion.After("-")
End If End If
Dim LoaderName As String = If(IsNeoForge, "NeoForge", "Forge") Dim LoaderName As String = If(IsNeoForge, "NeoForge", "Forge")
Dim IsCustomFolder As Boolean = McFolder <> PathMcFolder Dim IsCustomFolder As Boolean = McFolder <> PathMcFolder
Dim InstallerAddress As String = $"{PathTemp}Cache\Code\{LoaderName}Install-{Version}_{RandomInteger(0, 100000)}" Dim InstallerAddress As String = $"{PathTemp}Cache\Code\{LoaderName}Install-{LoaderVersion}_{RandomInteger(0, 100000)}"
Dim VersionName As String = If(IsNeoForge, "neoforge-" & Version.Replace("1.20.1-", ""), "forge-" & Version) Dim VersionFolder As String = $"{McFolder}versions\{TargetVersion}\"
Dim VersionFolder As String = $"{McFolder}versions\{VersionName}\" Dim DisplayName As String = $"{LoaderName} {Inherit} - {LoaderVersion}"
Log($"[Download] Forgelike 安装目标版本文件夹:{VersionFolder}")
Dim DisplayName As String = $"{LoaderName} {Inherit} - {Version}"
Dim Loaders As New List(Of LoaderBase) Dim Loaders As New List(Of LoaderBase)
Dim LibVersionFolder As String = $"{PathMcFolder}versions\{VersionName}\" '作为 Lib 文件目标的版本文件夹 Dim LibVersionFolder As String = $"{PathMcFolder}versions\{TargetVersion}\" '作为 Lib 文件目标的版本文件夹
'获取 Forge 下载信息 '获取 Forge 下载信息
If Info Is Nothing Then If Info Is Nothing Then
@@ -1326,12 +1254,12 @@ Retry:
Task.Progress = 0.8 Task.Progress = 0.8
'查找对应版本 '查找对应版本
For Each ForgeVersion In ForgeLoader.Output For Each ForgeVersion In ForgeLoader.Output
If VersionSortInteger(ForgeVersion.Version.ToString, Version) = 0 Then If VersionSortInteger(ForgeVersion.Version.ToString, LoaderVersion) = 0 Then
Info = ForgeVersion Info = ForgeVersion
Exit Sub Exit Sub
End If End If
Next Next
Throw New Exception($"未能找到 {LoaderName} " & Inherit & "-" & Version & " 的详细信息!") Throw New Exception($"未能找到 {LoaderName} " & Inherit & "-" & LoaderVersion & " 的详细信息!")
End Sub) With {.ProgressWeight = 3}) End Sub) With {.ProgressWeight = 3})
End If End If
'下载 Forgelike 主文件 '下载 Forgelike 主文件
@@ -1364,8 +1292,8 @@ Retry:
Loaders.Add(New LoaderDownload($"下载 {LoaderName} 主文件", New List(Of NetFile)) With {.ProgressWeight = 9}) Loaders.Add(New LoaderDownload($"下载 {LoaderName} 主文件", New List(Of NetFile)) With {.ProgressWeight = 9})
'安装(仅在新版安装时需要原版 Jar) '安装(仅在新版安装时需要原版 Jar)
If IsNeoForge OrElse Version.Before(".") >= 20 Then If IsNeoForge OrElse LoaderVersion.Before(".") >= 20 Then
Log($"[Download] 检测为{If(IsNeoForge, " Neo", "新版 ")}Forge:" & Version) Log($"[Download] 检测为{If(IsNeoForge, " Neo", "新版 ")}Forge:" & LoaderVersion)
Dim Libs As List(Of McLibToken) = Nothing Dim Libs As List(Of McLibToken) = Nothing
Loaders.Add(New LoaderTask(Of String, List(Of NetFile))($"分析 {LoaderName} 支持库文件", Loaders.Add(New LoaderTask(Of String, List(Of NetFile))($"分析 {LoaderName} 支持库文件",
Sub(Task As LoaderTask(Of String, List(Of NetFile))) Sub(Task As LoaderTask(Of String, List(Of NetFile)))
@@ -1395,8 +1323,8 @@ Retry:
Task.Progress = 0.8 Task.Progress = 0.8
'去除其中的原始 Forgelike 项 '去除其中的原始 Forgelike 项
For i = 0 To Libs.Count - 1 For i = 0 To Libs.Count - 1
If Libs(i).LocalPath.EndsWithF($"{LoaderName.ToLower}-{Inherit}-{Version}.jar") OrElse If Libs(i).LocalPath.EndsWithF($"{LoaderName.ToLower}-{Inherit}-{LoaderVersion}.jar") OrElse
Libs(i).LocalPath.EndsWithF($"{LoaderName.ToLower}-{Inherit}-{Version}-client.jar") Then Libs(i).LocalPath.EndsWithF($"{LoaderName.ToLower}-{Inherit}-{LoaderVersion}-client.jar") Then
Log($"[Download] 已从待下载 {LoaderName} 支持库中移除:" & Libs(i).LocalPath, LogLevel.Debug) Log($"[Download] 已从待下载 {LoaderName} 支持库中移除:" & Libs(i).LocalPath, LogLevel.Debug)
Libs.RemoveAt(i) Libs.RemoveAt(i)
Exit For Exit For
@@ -1498,7 +1426,14 @@ Retry:
'如果没有新增文件夹,那么预测的文件夹名就是正确的 '如果没有新增文件夹,那么预测的文件夹名就是正确的
'如果只新增 1 个文件夹,那么拷贝 json 文件 '如果只新增 1 个文件夹,那么拷贝 json 文件
Dim JsonFile As FileInfo = DeltaList(0).EnumerateFiles.First() Dim JsonFile As FileInfo = DeltaList(0).EnumerateFiles.First()
WriteFile(VersionFolder & VersionName & ".json", ReadFile(JsonFile.FullName)) WriteFile(VersionFolder & TargetVersion & ".json", ReadFile(JsonFile.FullName))
Log($"[Download] 已拷贝新增的版本 JSON 文件:{JsonFile.FullName} -> {VersionFolder}{TargetVersion}.json")
ElseIf DeltaList.Count > 1 Then
'新增了多个文件夹
Log($"[Download] 有多个疑似的新增版本,无法确定:{DeltaList.Select(Function(d) d.Name).Join(";")}")
Else
'没有新增文件夹
Log("[Download] 未找到新增的版本文件夹")
End If End If
'新建 mods 文件夹 '新建 mods 文件夹
Directory.CreateDirectory(New McVersion(VersionFolder).GetPathIndie(True) & "mods\") Directory.CreateDirectory(New McVersion(VersionFolder).GetPathIndie(True) & "mods\")
@@ -1515,7 +1450,7 @@ Retry:
End Try End Try
End Sub) With {.ProgressWeight = 10}) End Sub) With {.ProgressWeight = 10})
Else Else
Log("[Download] 检测为非新版 Forge:" & Version) Log("[Download] 检测为非新版 Forge:" & LoaderVersion)
Loaders.Add(New LoaderTask(Of List(Of NetFile), Boolean)($"安装 {LoaderName}(方式 B)", Loaders.Add(New LoaderTask(Of List(Of NetFile), Boolean)($"安装 {LoaderName}(方式 B)",
Sub(Task As LoaderTask(Of List(Of NetFile), Boolean)) Sub(Task As LoaderTask(Of List(Of NetFile), Boolean))
Dim Installer As ZipArchive = Nothing Dim Installer As ZipArchive = Nothing
@@ -1533,8 +1468,8 @@ Retry:
Log("[Download] 开始进行 Forge 安装,Legacy 方式 1:" & InstallerAddress) Log("[Download] 开始进行 Forge 安装,Legacy 方式 1:" & InstallerAddress)
'建立 Json 文件 '建立 Json 文件
Dim JsonVersion As JObject = GetJson(ReadFile(Installer.GetEntry(Json("json").ToString.TrimStart("/")).Open)) Dim JsonVersion As JObject = GetJson(ReadFile(Installer.GetEntry(Json("json").ToString.TrimStart("/")).Open))
JsonVersion("id") = VersionName JsonVersion("id") = TargetVersion
WriteFile(VersionFolder & VersionName & ".json", JsonVersion.ToString) WriteFile(VersionFolder & TargetVersion & ".json", JsonVersion.ToString)
Task.Progress = 0.6 Task.Progress = 0.6
'解压支持库文件 '解压支持库文件
Installer.Dispose() Installer.Dispose()
@@ -1550,9 +1485,9 @@ Retry:
WriteFile(JarAddress, Installer.GetEntry(Json("install")("filePath")).Open) WriteFile(JarAddress, Installer.GetEntry(Json("install")("filePath")).Open)
Task.Progress = 0.9 Task.Progress = 0.9
'建立 Json 文件 '建立 Json 文件
Json("versionInfo")("id") = VersionName Json("versionInfo")("id") = TargetVersion
If Json("versionInfo")("inheritsFrom") Is Nothing Then CType(Json("versionInfo"), JObject).Add("inheritsFrom", Inherit) If Json("versionInfo")("inheritsFrom") Is Nothing Then CType(Json("versionInfo"), JObject).Add("inheritsFrom", Inherit)
WriteFile(VersionFolder & VersionName & ".json", Json("versionInfo").ToString) WriteFile(VersionFolder & TargetVersion & ".json", Json("versionInfo").ToString)
End If End If
'新建 mods 文件夹 '新建 mods 文件夹
Directory.CreateDirectory(New McVersion(VersionFolder).GetPathIndie(True) & "mods\") Directory.CreateDirectory(New McVersion(VersionFolder).GetPathIndie(True) & "mods\")
@@ -1569,11 +1504,6 @@ Retry:
End Try End Try
End Try End Try
End Sub) With {.ProgressWeight = 1}) End Sub) With {.ProgressWeight = 1})
If FixLibrary Then
If IsCustomFolder Then Throw New Exception("若需要补全支持库,就不能自定义 MC 文件夹")
Loaders.Add(New LoaderTask(Of String, List(Of NetFile))($"分析 {LoaderName} 支持库文件", Sub(Task As LoaderTask(Of String, List(Of NetFile))) Task.Output = McLibFix(New McVersion(VersionFolder))) With {.ProgressWeight = 1, .Show = False})
Loaders.Add(New LoaderDownload($"下载 {LoaderName} 支持库文件", New List(Of NetFile)) With {.ProgressWeight = 11})
End If
End If End If
Return Loaders Return Loaders
@@ -2138,7 +2068,7 @@ Retry:
If Request.OptiFineEntry IsNot Nothing Then OptiFineFolder = TempMcFolder & "versions\" & Request.OptiFineEntry.NameVersion If Request.OptiFineEntry IsNot Nothing Then OptiFineFolder = TempMcFolder & "versions\" & Request.OptiFineEntry.NameVersion
Dim ForgeFolder As String = Nothing Dim ForgeFolder As String = Nothing
If Request.ForgeEntry IsNot Nothing Then Request.ForgeVersion = If(Request.ForgeVersion, Request.ForgeEntry.VersionName) If Request.ForgeEntry IsNot Nothing Then Request.ForgeVersion = If(Request.ForgeVersion, Request.ForgeEntry.VersionName)
If Request.ForgeVersion IsNot Nothing Then ForgeFolder = TempMcFolder & "versions\" & Request.MinecraftName & "-forge-" & Request.ForgeVersion If Request.ForgeVersion IsNot Nothing Then ForgeFolder = TempMcFolder & "versions\forge-" & Request.ForgeVersion
Dim NeoForgeFolder As String = Nothing Dim NeoForgeFolder As String = Nothing
If Request.NeoForgeEntry IsNot Nothing Then Request.NeoForgeVersion = If(Request.NeoForgeVersion, Request.NeoForgeEntry.VersionName) If Request.NeoForgeEntry IsNot Nothing Then Request.NeoForgeVersion = If(Request.NeoForgeVersion, Request.NeoForgeEntry.VersionName)
If Request.NeoForgeVersion IsNot Nothing Then NeoForgeFolder = TempMcFolder & "versions\neoforge-" & Request.NeoForgeVersion If Request.NeoForgeVersion IsNot Nothing Then NeoForgeFolder = TempMcFolder & "versions\neoforge-" & Request.NeoForgeVersion
@@ -2193,11 +2123,11 @@ Retry:
End If End If
'Forge 'Forge
If Request.ForgeVersion IsNot Nothing Then If Request.ForgeVersion IsNot Nothing Then
LoaderList.Add(New LoaderCombo(Of String)("下载 Forge " & Request.ForgeVersion, McDownloadForgelikeLoader(False, Request.ForgeVersion, Request.MinecraftName, Request.ForgeEntry, TempMcFolder, ClientLoader, Request.TargetVersionFolder, False)) With {.Show = False, .ProgressWeight = 25, .Block = Request.FabricVersion Is Nothing AndAlso Request.LiteLoaderEntry Is Nothing AndAlso Request.NeoForgeEntry Is Nothing}) LoaderList.Add(New LoaderCombo(Of String)("下载 Forge " & Request.ForgeVersion, McDownloadForgelikeLoader(False, Request.ForgeVersion, "forge-" & Request.ForgeVersion, Request.MinecraftName, Request.ForgeEntry, TempMcFolder, ClientLoader, Request.TargetVersionFolder)) With {.Show = False, .ProgressWeight = 25, .Block = Request.FabricVersion Is Nothing AndAlso Request.LiteLoaderEntry Is Nothing AndAlso Request.NeoForgeEntry Is Nothing})
End If End If
'NeoForge 'NeoForge
If Request.NeoForgeVersion IsNot Nothing Then If Request.NeoForgeVersion IsNot Nothing Then
LoaderList.Add(New LoaderCombo(Of String)("下载 NeoForge " & Request.NeoForgeVersion, McDownloadForgelikeLoader(True, Request.NeoForgeVersion, Request.MinecraftName, Request.NeoForgeEntry, TempMcFolder, ClientLoader, Request.TargetVersionFolder, False)) With {.Show = False, .ProgressWeight = 25, .Block = Request.ForgeEntry Is Nothing AndAlso Request.FabricVersion Is Nothing AndAlso Request.LiteLoaderEntry Is Nothing}) LoaderList.Add(New LoaderCombo(Of String)("下载 NeoForge " & Request.NeoForgeVersion, McDownloadForgelikeLoader(True, Request.NeoForgeVersion, "neoforge-" & Request.NeoForgeVersion, Request.MinecraftName, Request.NeoForgeEntry, TempMcFolder, ClientLoader, Request.TargetVersionFolder)) With {.Show = False, .ProgressWeight = 25, .Block = Request.ForgeEntry Is Nothing AndAlso Request.FabricVersion Is Nothing AndAlso Request.LiteLoaderEntry Is Nothing})
End If End If
'LiteLoader 'LiteLoader
If Request.LiteLoaderEntry IsNot Nothing Then If Request.LiteLoaderEntry IsNot Nothing Then
@@ -55,10 +55,6 @@
Card.StackInstall() Card.StackInstall()
End Sub End Sub
Public Sub DownloadStart(sender As MyListItem, e As Object)
McDownloadForgelike(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://files.minecraftforge.net") OpenWebsite("https://files.minecraftforge.net")
@@ -27,7 +27,7 @@
Public Shared Sub CopyUniqueAddress() Handles BtnDonateCopy.Click Public Shared Sub CopyUniqueAddress() Handles BtnDonateCopy.Click
ClipboardSet(UniqueAddress) ClipboardSet(UniqueAddress)
End Sub End Sub
Private Sub DonateCodeInput() Handles BtnDonateInput.Click Private Sub BtnDonateCodeInput_Click() Handles BtnDonateInput.Click
DonateCodeInput() DonateCodeInput()
End Sub End Sub
@@ -364,7 +364,8 @@ Refresh:
End Sub End Sub
Private Sub BtnMusicClear_Click(sender As Object, e As EventArgs) Handles BtnMusicClear.Click Private Sub BtnMusicClear_Click(sender As Object, e As EventArgs) Handles BtnMusicClear.Click
If MyMsgBox("即将删除背景音乐文件夹中的所有文件。" & vbCrLf & "此操作不可撤销,是否确定?", "警告",, "取消", IsWarn:=True) = 1 Then If MyMsgBox("即将删除背景音乐文件夹中的所有文件。" & vbCrLf & "此操作不可撤销,是否确定?", "警告",, "取消", IsWarn:=True) = 1 Then
RunInThread(Sub() RunInThread(
Sub()
Hint("正在删除背景音乐……") Hint("正在删除背景音乐……")
'停止播放音乐 '停止播放音乐
MusicNAudio = Nothing MusicNAudio = Nothing
@@ -668,18 +669,10 @@ Refresh:
'滑动条 '滑动条
Private Sub SliderLoad() Private Sub SliderLoad()
SliderMusicVolume.GetHintText = Function(Value As Integer) SliderMusicVolume.GetHintText = Function(v) Math.Ceiling(v * 0.1) & "%"
Return Math.Ceiling(Value * 0.1) & "%" SliderLauncherOpacity.GetHintText = Function(v) Math.Round(40 + v * 0.1) & "%"
End Function SliderLauncherHue.GetHintText = Function(v) v & "°"
SliderLauncherOpacity.GetHintText = Function(Value As Integer) SliderLauncherSat.GetHintText = Function(v) v & "%"
Return Math.Round(40 + Value * 0.1) & "%"
End Function
SliderLauncherHue.GetHintText = Function(Value As Integer)
Return Value & "°"
End Function
SliderLauncherSat.GetHintText = Function(Value As Integer)
Return Value & "%"
End Function
SliderLauncherDelta.GetHintText = Function(Value As Integer) SliderLauncherDelta.GetHintText = Function(Value As Integer)
If Value > 90 Then If Value > 90 Then
Return "+" & (Value - 90) Return "+" & (Value - 90)
@@ -698,12 +691,8 @@ Refresh:
Return Value - 20 Return Value - 20
End If End If
End Function End Function
SliderBackgroundOpacity.GetHintText = Function(Value As Integer) SliderBackgroundOpacity.GetHintText = Function(v) Math.Round(v * 0.1) & "%"
Return Math.Round(Value * 0.1) & "%" SliderBackgroundBlur.GetHintText = Function(v) v & " 像素"
End Function
SliderBackgroundBlur.GetHintText = Function(Value As Integer)
Return Value & " 像素"
End Function
End Sub End Sub
End Class End Class
@@ -351,8 +351,6 @@ PreFin:
RamGive = (Value - 12) * 0.5 + 1.5 RamGive = (Value - 12) * 0.5 + 1.5
ElseIf Value <= 33 Then ElseIf Value <= 33 Then
RamGive = (Value - 25) * 1 + 8 RamGive = (Value - 25) * 1 + 8
ElseIf Value <= 41 Then
RamGive = (Value - 33) * 2 + 16
Else Else
RamGive = (Value - 33) * 2 + 16 RamGive = (Value - 33) * 2 + 16
End If End If