Skip to content

Commit

Permalink
add PackSquash
Browse files Browse the repository at this point in the history
  • Loading branch information
lilingfengdev committed Dec 21, 2024
1 parent d00c045 commit 2a7d6cb
Showing 1 changed file with 126 additions and 7 deletions.
133 changes: 126 additions & 7 deletions docs-java/advance/Resource-pack-distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,16 @@ import TabItem from '@theme/TabItem';
<Tabs queryString="store">
<TabItem value="cf" label="Cloudflare">

官网: https://cloudflare.com
官网: https://cloudflare.com

提供两种存储方式,分别是 R2 和 KV

### Cloudflare R2

免费的 Cloudflare R2 提供 10 GB 的免费空间,只不过需要**绑定银行卡或者 PayPal**(不会花钱),非常推荐

- 使用方法:创建一个 R2 存储桶,名称自选,位置选择`亚太地区 (APAC)`(速度最快),默认存储类一定要选择`标准`,创建好后直接上传资源包就可以了(可以设置自定义域)
- 使用方法:创建一个 R2 存储桶,名称自选,位置选择`亚太地区 (APAC)`(速度最快),默认存储类一定要选择`标准`
,创建好后直接上传资源包就可以了(可以设置自定义域)

- 无域名方案:完成上一步后,打开设置,找到`R2.dev 子域`,点击`允许访问`即可使用CF提供的免费域名

Expand Down Expand Up @@ -148,7 +149,8 @@ CF Worker 的一个附属品,用来当可持久存储的,用来当资源包分

国内的网络环境不建议用这个

- 方案一:首先创建一个新的仓库,接着创建发行版,把资源包上传至发行版,复制下载链接,将链接填入ia的 第三方平台托管(external-host) 或使用 server.properties
- 方案一:首先创建一个新的仓库,接着创建发行版,把资源包上传至发行版,复制下载链接,将链接填入ia的 第三方平台托管(
external-host) 或使用 server.properties

- 方案二:首先创建一个新的仓库,接着上传资源包文件到仓库中,点击你上传的文件,复制这单个文件的下载链接

Expand All @@ -171,7 +173,8 @@ CF Worker 的一个附属品,用来当可持久存储的,用来当资源包分

国内的代码托管平台,访问速度快,推荐使用

- 方案一:首先创建一个新的仓库,接着创建发行版,把资源包上传至发行版,复制下载链接,将链接填入ia的 第三方平台托管(external-host) 或使用 server.properties
- 方案一:首先创建一个新的仓库,接着创建发行版,把资源包上传至发行版,复制下载链接,将链接填入ia的 第三方平台托管(
external-host) 或使用 server.properties

- 方案二:首先创建一个新的仓库,接着上传资源包文件到仓库中,点击你上传的文件,复制这单个文件的下载链接

Expand All @@ -193,7 +196,8 @@ CF Worker 的一个附属品,用来当可持久存储的,用来当资源包分

国内访问比较稳定的代码托管平台

- 方案一:首先创建一个新的仓库,接着创建发行版,把资源包上传至发行版,复制下载链接,将链接填入ia的 第三方平台托管(external-host) 或使用 server.properties
- 方案一:首先创建一个新的仓库,接着创建发行版,把资源包上传至发行版,复制下载链接,将链接填入ia的 第三方平台托管(
external-host) 或使用 server.properties

- 方案二:首先创建一个新的仓库,接着上传资源包文件到仓库中,点击你上传的文件,复制这单个文件的下载链接

Expand Down Expand Up @@ -238,7 +242,8 @@ ia的文档教了如何使用
</TabItem>
<TabItem value="self" label="自托管">

使用 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

或者自己搭建个直链下载站来用

Expand All @@ -256,6 +261,119 @@ ia的文档教了如何使用
</TabItem>
</Tabs>

## 压缩

为了让玩家更快的下载资源包(并节省你的流量),你需要对资源包进行压缩

推荐使用 [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

### 我想让客户端不要下载重复的资源包可以吗?
Expand All @@ -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 为例子

Expand Down

0 comments on commit 2a7d6cb

Please sign in to comment.