🚧 修改一些龙猫的审查

This commit is contained in:
youzi-2333
2024-07-12 21:42:07 +08:00
parent ae4f1b8672
commit ca07edc707
3 changed files with 46 additions and 47 deletions
@@ -859,8 +859,7 @@ Retry:
''' 整合包类型。
''' </summary>
Public Enum ModpackType
Modrinth = 4
Compressed = 9
Modrinth
End Enum
''' <summary>
''' 导出整合包的选项。
@@ -875,22 +874,22 @@ Retry:
''' </summary>
Public Dest As String
''' <summary>
''' 是否包括 PCL 文件。
''' </summary>
Public IncludePCL As Boolean
''' <summary>
''' 整合包类型。
''' </summary>
Public Type As ModpackType
''' <summary>
''' 要保留到整合包的存档。
''' 要保留到整合包的文件。
''' </summary>
Public Saves As String()
Public Remain As String()
''' <summary>
''' 是否需要保留 PCL 全局设置。仅在压缩包中有效。
''' </summary>
Public PCLSetupGlobal As Boolean = True
''' <summary>
''' 是否需要保留 PCL 版本设置。仅在压缩包中有效。
''' </summary>
Public PCLSetupVer As Boolean = True
''' <summary>
''' 整合包名称。仅在 Modrinth 有效。
''' </summary>
Public Name As String = ""
@@ -900,19 +899,17 @@ Retry:
Public VerID As String = ""
Public Sub New(Version As McVersion,
Dest As String,
Type As ModpackType,
Saves As String(),
IncludePCL As Boolean,
Remain As String(),
Optional PCLSetupGlobal As Boolean = True,
Optional PCLSetupVer As Boolean = True,
Optional Name As String = "",
Optional Author As String = "",
Optional VerID As String = "")
Me.Version = Version
Me.Dest = Dest
Me.Type = Type
Me.Saves = Saves
Me.IncludePCL = IncludePCL
Me.Remain = Remain
Me.PCLSetupGlobal = PCLSetupGlobal
Me.PCLSetupVer = PCLSetupVer
Me.Name = Name
Me.VerID = VerID
End Sub
@@ -930,32 +927,34 @@ Retry:
End Sub, "Modpack Export")
End Sub
Private Function ModpackExportBlocking(Options As ExportOptions) As Boolean
Select Case Options.Type
Case ModpackType.Modrinth
Return ExportModrinth(Options.Version, Options.Dest, Options.Saves, Options.Name, Options.VerID)
Case ModpackType.Compressed
Return ExportCompressed(Options.Version, Options.Dest, Options.Saves, Options.PCLSetupGlobal, Options.PCLSetupVer)
Case Else
Throw New ArgumentException($"未知的整合包类型:{Options.Type}")
End Select
If Options.IncludePCL Then
Return ExportCompressed(Options.Version, Options.Dest, Options.Remain, Options.PCLSetupGlobal)
End If
Return ExportModrinth(Options.Version, Options.Dest, Options.Remain, Options.Name, Options.VerID)
End Function
#Region "冗余"
Private VersionRedundant As String() = {"screenshots", "backups", "command_history\.txt", '个人文件
".*-natives", "server-resource-packs", "user.*cache\.json", "\.optifine", "\.fabric", '缓存
".*\.jar", "downloads", "realms_persistence.json", "\$\{natives_directory\}", '可联网更新
"logs", "crash-reports", ".*\.log", '日志
".*-natives", "server-resource-packs", "user.*cache\.json", "\.optifine", "\.fabric", "\.mixin\.out", '缓存
".*\.jar", "downloads", "realms_persistence.json", "\$\{natives_directory\}", "essential", '可联网更新
"logs", "crash-reports", ".*\.log", "debug", '日志
".*\.dat_old", ".*\.old", '备份
"\$\{quickPlayPath\}", '服务器
"\.replay_cache", "replay_recordings", "replay_videos", 'ReplayMod
"irisUpdateInfo\.json", 'Iris
"modernfix", 'ModernFix 模组
"modtranslations", 'Mod 翻译
"schematics", 'schematics 模组
".*\.BakaCoreInfo", 'BakaXL 配置
"hmclversion\.cfg", "log4j2\.xml", 'HMCL 配置
"PCL", "saves" '到时候会拷,别急
"hmclversion\.cfg", "log4j2\.xml" 'HMCL 配置
}
Private Function IsVerRedundant(FileName As String) As Boolean
Private Function IsVerRedundant(FilePath As String) As Boolean
For Each regex In VersionRedundant
If RegexCheck(FileName, regex) Then Return True
If RegexCheck(GetFileNameFromPath(FilePath).ToLower(), regex) Then Return True
If FilePath.Replace("/", "\").EndsWithF("\journeymap\data\") OrElse
FilePath.Replace("/", "\").EndsWithF("\journeymap\data") Then
Return True
End If
Next
Return False
End Function
@@ -972,7 +971,7 @@ Retry:
'步骤 1:从 Modrinth 获取 Mod 工程信息,得到 URL
Dim Mods As New List(Of McMod)
For Each m In Directory.EnumerateFiles(Version.Path & "mods\")
Mods.Add(New McMod(m))
If m.EndsWithF(".jar") Then Mods.Add(New McMod(m))
Next
'从 Modrinth 获取信息
@@ -1046,9 +1045,9 @@ Retry:
Return False
End Try
End Function
Private Function ExportCompressed(Version As McVersion, DestPath As String, Saves As String(), PCLSetupGlobal As Boolean, PCLSetupVer As Boolean)
Private Function ExportCompressed(Version As McVersion, DestPath As String, Saves As String(), PCLSetupGlobal As Boolean)
Try
Log($"[Export] 导出整合包(压缩包):{Version.Path} -> {DestPath},导出存档 {If(Saves Is Nothing OrElse Not Saves.Any, "不导出", Saves.Join(", "))},全局设置 {If(PCLSetupGlobal, "导出", "不导出")},版本设置 {If(PCLSetupVer, "导出", "不导出")}")
Log($"[Export] 导出整合包(压缩包):{Version.Path} -> {DestPath},导出存档 {If(Saves Is Nothing OrElse Not Saves.Any, "不导出", Saves.Join(", "))},全局设置 {If(PCLSetupGlobal, "导出", "不导出")}")
Dim tempDir As String = $"{ExpTempDir}{GetUuid()}\"
Log($"[Export] 缓存文件夹:{tempDir}")
Directory.CreateDirectory(tempDir)
@@ -1084,11 +1083,6 @@ Retry:
If Directory.Exists(Path & "PCL\Musics") Then CopyDirectory(Path & "PCL\Musics", tempDir & "PCL\Musics")
End If
If PCLSetupVer Then
Log($"[Export] 正在复制 PCL 版本设置")
If Directory.Exists(Version.Path & "PCL\") Then CopyDirectory(Version.Path & "PCL\", tempVerPath & "PCL\")
End If
If Directory.Exists($"{Version.PathIndie}libraries\optifine") Then '#114 OptiFine Libraries 缺失造成补全文件失败
Log($"[Export] 正在复制 OptiFine Libraries")
CopyDirectory($"{Version.PathIndie}libraries\optifine",
@@ -61,6 +61,7 @@
<local:MyTextBox x:Name="TbExportVersion" HintText="1.0.0" Grid.Column="2" Grid.Row="2" />
</Grid>
<local:MyButton x:Name="BtnExportExport" HorizontalAlignment="Left" Text="导出整合包" Height="35" Width="150" ColorType="Highlight" />
<local:MyListItem Title="游戏存档" />
</StackPanel>
</local:MyCard>
</StackPanel>
@@ -1,7 +1,7 @@
Public Class PageVersionExport
Private CurrentVersion As McVersion = PageVersionLeft.Version
Private Type As ModpackType = ModpackType.Compressed
Private Type As ModpackType = ModpackType.Modrinth
Private SelectedSaves As New List(Of Integer)
Private ReadOnly Property Saves As List(Of String)
Get
@@ -18,22 +18,27 @@
End Sub
#Region "控件事件"
Private Function IncludePCL() As Boolean
Return True
End Function
Private Sub ComboExportType_Change(sender As ComboBox, e As SelectionChangedEventArgs) Handles ComboExportType.SelectionChanged
If AniControlEnabled <> 0 Then Exit Sub
Type = If(sender.SelectedIndex = 0, ModpackType.Compressed, ModpackType.Modrinth)
Type = sender.SelectedIndex
Select Case Type
Case ModpackType.Modrinth
If GridCompressed IsNot Nothing Then GridCompressed.Visibility = Visibility.Collapsed
If GridModrinth IsNot Nothing Then GridModrinth.Visibility = Visibility.Visible
Case ModpackType.Compressed
If IncludePCL() Then 'TODO:修改这里的条件
If GridCompressed IsNot Nothing Then GridCompressed.Visibility = Visibility.Visible
If GridModrinth IsNot Nothing Then GridModrinth.Visibility = Visibility.Collapsed
Else
If GridCompressed IsNot Nothing Then GridCompressed.Visibility = Visibility.Collapsed
If GridModrinth IsNot Nothing Then GridModrinth.Visibility = Visibility.Visible
End If
End Select
CardExport.TriggerForceResize()
End Sub
Private Sub BtnExportExport_Click() Handles BtnExportExport.Click
If Type = ModpackType.Compressed AndAlso Val(VersionBranchCode) <> 50 Then
If IncludePCL() AndAlso Val(VersionBranchCode) <> 50 Then
If MyMsgBox("你当前的 PCL 不是正式版,有二次分发(制作压缩包)的限制。" & vbCrLf &
"请使用正式版再次尝试该操作!" & vbCrLf &
"其他类型的整合包(例如 Modrinth 整合包)没有该限制。", Button1:="下载正式版", Button2:="取消") = 1 Then
@@ -46,8 +51,7 @@
If(Type = ModpackType.Modrinth, "Modrinth 整合包(*.mrpack)|*.mrpack", "整合包文件(*.zip)|*.zip"))
If String.IsNullOrEmpty(savePath) Then Exit Sub
ModpackExport(New ExportOptions(CurrentVersion, savePath, Type, {TbExportSave.Text},
PCLSetupGlobal:=CheckExportGlobal.Checked,
PCLSetupVer:=CheckExportVersion.Checked, Name:=TbExportName.Text,
PCLSetupGlobal:=CheckExportGlobal.Checked, Name:=TbExportName.Text,
VerID:=TbExportVersion.Text))
End Sub