From 2a7d6cba6f51240c57c6ea5c123d7471b94b1488 Mon Sep 17 00:00:00 2001 From: lilingfengdev Date: Sat, 21 Dec 2024 14:28:15 +0800 Subject: [PATCH] add PackSquash --- .../advance/Resource-pack-distribution.md | 133 +++++++++++++++++- 1 file changed, 126 insertions(+), 7 deletions(-) diff --git a/docs-java/advance/Resource-pack-distribution.md b/docs-java/advance/Resource-pack-distribution.md index 69d151affd..8f465be436 100644 --- a/docs-java/advance/Resource-pack-distribution.md +++ b/docs-java/advance/Resource-pack-distribution.md @@ -75,7 +75,7 @@ import TabItem from '@theme/TabItem'; -官网: https://cloudflare.com +官网: https://cloudflare.com 提供两种存储方式,分别是 R2 和 KV @@ -83,7 +83,8 @@ import TabItem from '@theme/TabItem'; 免费的 Cloudflare R2 提供 10 GB 的免费空间,只不过需要**绑定银行卡或者 PayPal**(不会花钱),非常推荐 -- 使用方法:创建一个 R2 存储桶,名称自选,位置选择`亚太地区 (APAC)`(速度最快),默认存储类一定要选择`标准`,创建好后直接上传资源包就可以了(可以设置自定义域) +- 使用方法:创建一个 R2 存储桶,名称自选,位置选择`亚太地区 (APAC)`(速度最快),默认存储类一定要选择`标准` + ,创建好后直接上传资源包就可以了(可以设置自定义域) - 无域名方案:完成上一步后,打开设置,找到`R2.dev 子域`,点击`允许访问`即可使用CF提供的免费域名 @@ -148,7 +149,8 @@ CF Worker 的一个附属品,用来当可持久存储的,用来当资源包分 国内的网络环境不建议用这个 -- 方案一:首先创建一个新的仓库,接着创建发行版,把资源包上传至发行版,复制下载链接,将链接填入ia的 第三方平台托管(external-host) 或使用 server.properties +- 方案一:首先创建一个新的仓库,接着创建发行版,把资源包上传至发行版,复制下载链接,将链接填入ia的 第三方平台托管( + external-host) 或使用 server.properties - 方案二:首先创建一个新的仓库,接着上传资源包文件到仓库中,点击你上传的文件,复制这单个文件的下载链接 @@ -171,7 +173,8 @@ CF Worker 的一个附属品,用来当可持久存储的,用来当资源包分 国内的代码托管平台,访问速度快,推荐使用 -- 方案一:首先创建一个新的仓库,接着创建发行版,把资源包上传至发行版,复制下载链接,将链接填入ia的 第三方平台托管(external-host) 或使用 server.properties +- 方案一:首先创建一个新的仓库,接着创建发行版,把资源包上传至发行版,复制下载链接,将链接填入ia的 第三方平台托管( + external-host) 或使用 server.properties - 方案二:首先创建一个新的仓库,接着上传资源包文件到仓库中,点击你上传的文件,复制这单个文件的下载链接 @@ -193,7 +196,8 @@ CF Worker 的一个附属品,用来当可持久存储的,用来当资源包分 国内访问比较稳定的代码托管平台 -- 方案一:首先创建一个新的仓库,接着创建发行版,把资源包上传至发行版,复制下载链接,将链接填入ia的 第三方平台托管(external-host) 或使用 server.properties +- 方案一:首先创建一个新的仓库,接着创建发行版,把资源包上传至发行版,复制下载链接,将链接填入ia的 第三方平台托管( + external-host) 或使用 server.properties - 方案二:首先创建一个新的仓库,接着上传资源包文件到仓库中,点击你上传的文件,复制这单个文件的下载链接 @@ -238,7 +242,8 @@ ia的文档教了如何使用 -使用 ItemsAdder,可以直接在服务器上托管资源包:https://itemsadder.devs.beer/v/chinese/plugin-usage/resourcepack-hosting/resourcepack-self-hosting +使用 +ItemsAdder,可以直接在服务器上托管资源包:https://itemsadder.devs.beer/v/chinese/plugin-usage/resourcepack-hosting/resourcepack-self-hosting 或者自己搭建个直链下载站来用 @@ -256,6 +261,119 @@ ia的文档教了如何使用 +## 压缩 + +为了让玩家更快的下载资源包(并节省你的流量),你需要对资源包进行压缩 + +推荐使用 [PackSquash](https://packsquash.aylas.org/) 进行压缩 + +### 下载 + +前往[官网](https://packsquash.aylas.org/) 下载即可 + +### 使用 + +PackSquash 需要你在目录下创建配置文件`packsquash.toml`才可以使用 + +然后向文件中写入以下内容 + +```toml +pack_directory = 'C:\path\to\pack(填写你的资源包所在目录)' +``` + +然后在当前目录运行`packsquash` 即可 + +### 其他选项 + +:::tip + +这并不是所有的选项,**只列出了一些**对于新手有用的选项 + +同时简化了一些选项表达,完整版请参考[GitHub Wiki](https://github.com/ComunidadAylas/PackSquash/wiki/Options-files) + +::: + +#### 指定输出文件位置 + +```toml +output_file_path = 'C:\path\to\result\pack\zip\file\my_pack.zip' +``` + +#### 压缩标准 + +```toml +zip_spec_conformance_level = 'pedantic' +``` + +默认取值为`pedantic`,表示完全遵循 ZIP 文件规范,所有的查看和托管都可以识别 + +`disregard`为加料模式,包括提取保护和改进的内部 ZIP 文件结构压缩,会获得更好的性能,非常推荐 + +:::warning + +并不是所有的托管和查看程序都能识别`disregard`模式的 zip 文件 + +::: + +#### ZIP 混淆 + +```toml +size_increasing_zip_obfuscation = true +``` + +当使用`disregard`模式时,启用此选项将增加对生成的 ZIP +文件进行查看、提取或篡改的保护,这会略微增加其大小。此选项不影响是否添加**不增加文件大小**的保护,并且如果ZIP标准不提供保护,则没有任何影响 + +#### 压缩保密性 + +```toml +percentage_of_zip_structures_tuned_for_obfuscation_discretion = 100 +``` + +当此选项设置为 0(最小值)时,每个 ZIP 记录将优先存储以提高压缩性。相反,当设置为 100(最大值)时,每个 ZIP +记录将优先存储以提高保密性。其他值将结合提高保密性和压缩性。 + +#### OGG 混淆 + +```toml +ogg_obfuscation = true +two_pass_vorbis_optimization_and_validation = true +``` + +如果开启该选项,生成的 Ogg 文件将会被破坏,使得它们在 Minecraft 之外难以播放 + +### FAQ + +#### ItemsAdder Armor 在使用 PackSquash 后无法正常工作 + +在配置文件中添加如下内容 + +```toml +['**/*?.{fsh,vsh,glsl}'] +minify_shader = false + +['**/textures/models/armor/*?.png'] +image_data_compression_iterations = 0 +skip_alpha_optimizations = true +color_quantization_target = 'none' +``` + +### 战绩 + +对测试资源包使用 PackSquash 进行压缩,其体积从 79 MB 下降至 35 MB + +使用 OGG 混淆后,7 款音频播放器均无法播放(MC 内正常) + +使用 ZIP 混淆后,大部分 ZIP 查看器无法打开(不是合法的 ZIP 文件),仅 BandiZIP 成功解压 + +当压缩保密性设为 100 时,所有 ZIP 查看器陨落,无人打开,测试配置文件: + +```toml +zip_spec_conformance_level = 'disregard' +size_increasing_zip_obfuscation = true +percentage_of_zip_structures_tuned_for_obfuscation_discretion = 100 +``` + ## FAQ ### 我想让客户端不要下载重复的资源包可以吗? @@ -266,7 +384,8 @@ ia的文档教了如何使用 resource-pack-sha1= ``` -填入资源包的sha1就行,如果你不知道怎么生成,你可以前往 [在线网站](https://www.strerr.com/cn/sha1_file.html),把你文件上传然后复制生成的哈希值到这里就可以 +填入资源包的sha1就行,如果你不知道怎么生成,你可以前往 [在线网站](https://www.strerr.com/cn/sha1_file.html) +,把你文件上传然后复制生成的哈希值到这里就可以 我们以 Slimefun 为例子