使用指南

ResourcePackServer 通过 HTTP 托管 .zip 资源包文件。Minecraft 客户端可通过 server.properties 中的 resource-pack 字段下载资源包。

快速开始

1. 准备你的资源包

.zip 资源包文件放入一个目录(默认: ./resource_packs):

resource_packs/
├── vanilla_tweaks.zip
├── xray_ultimate.zip
└── custom_sounds.zip

2. 启动服务器

python -m resource_pack_server --port 8080 --pack-dir ./resource_packs

3. 浏览资源包列表

在浏览器中打开 http://localhost:8080/。你会看到一个包含所有资源包及其 SHA1 哈希的表格。

4. 配置 Minecraft

编辑 server.properties

resource-pack=http://yourserver:8080/merged.zip
resource-pack-sha1=abc123...  (copy from the web page)

合并包将所有资源包合并为一个 zip 文件。合并选项参见 配置说明


独立模式 CLI 参数

python -m resource_pack_server [OPTIONS]

参数

默认值

描述

--host

0.0.0.0

绑定的 IP 地址

--port

8080

监听的端口

--pack-dir

./resource_packs

包含 .zip 资源包的目录

--public-url

(empty)

外部访问的公网 URL 前缀

--merge / --no-merge

--merge

启用/禁用合并包生成

--priority

(empty)

按合并优先级排序的资源包文件名(最高优先级在前)

--debug

false

启用调试日志

--version

显示版本并退出


合并包

Minecraft 只接受**一个**资源包 URL。ResourcePackServer 通过将多个包合并为一个 merged.zip 来解决此问题,合并包位于 /merged.zip

  • 资源包按**优先级顺序**合并(可通过 --priority 或配置文件配置)

  • 高优先级包会在文件级别**覆盖**低优先级包

  • pack.mcmeta 的描述字段会合并所有包的描述

  • pack.png 图标取自具有该文件的最高优先级包

  • 合并包会被**缓存**,当任何源包更改时会自动重新生成

带优先级的示例:

python -m resource_pack_server \
    --port 8080 \
    --priority "base_pack.zip" "addon.zip" "extra_sounds.zip"

HTTP 端点

端点

描述

GET /

列出所有资源包和合并包的 HTML 页面

GET /merged.zip

下载合并后的资源包

GET /<filename>.zip

下载单个资源包

每个 .zip 响应包含以下头:

  • Content-Type: application/zip

  • X-Resource-Pack-SHA1: <sha1> — the SHA1 hash Minecraft needs

  • Content-Disposition: attachment

  • Cache-Control: public, max-age=3600