📦 Packed Packs
将资源包和数据包打包到配置档中,支持多选、拖放,以及扩展的鼠标和键盘
控制。
✨ 功能
- 保存并加载自定义配置档。
- 一次选择多个包。
- 在列之间拖放所选内容。
- 上下文菜单。
- 额外文件夹。
- 文件夹包。
- 按标题搜索。
- 过滤不兼容的包。
- 按字母顺序或最近更新时间排序。
- 鼠标和键盘控制。
- 配置选项。
- 开发者模式。
- Java API。
- 与某些模组显式兼容。
- 历史记录(撤销和重做)。
📂 额外文件夹
- 为包发现添加额外文件夹。
- 在
config/packed_packs.json 中,通过在 resourcepacks 或
datapacks 内部的 additionalFolders 数组下添加路径进行配置。
- 如果该数组不存在,请手动创建,或者打开并关闭 Packed Packs 界面以更新配置。
- 路径可以是绝对路径,也可以是相对于游戏目录的相对路径。
- 正确添加的文件夹会显示为 Open Pack Folder 下的一个上下文菜单选项。
- 需要重启游戏后生效。
📂📦 文件夹包
- 根包目录中任何包含包、且没有
pack.mcmeta 的文件夹,都会被视为文件夹包。
- 文件夹包的行为与普通包类似,可以在行和列之间移动,以一次切换多个包。
- 可以打开它们来查看并重新排序其内容。顺序会保存到文件夹根目录中的
packed_packs.folderpack.json。
- 在文件夹根目录添加一个
pack.png 以设置自定义图标。
🖱️ 鼠标控制
- 打开上下文菜单 — 右键点击
- 选择范围 — 按住 Shift 并点击
- 添加/移出选择 — 按住 Ctrl 并点击
- 快速转移单个条目 — 双击
- 撤销 — 点击鼠标后退侧键
- 重做 — 点击鼠标前进侧键
⌨️ 键盘控制
- 导航条目 — ↑ | ↓
- 从条目中导航出去 — Tab
- 转移所选内容 — Space | Enter
- 选择范围 — Shift + ↑ / ↓
- 全选 — Ctrl + A
- 移动所选内容 — Ctrl / Alt + ↑ / ↓
- 撤销 — Ctrl + Z
- 重做 — Ctrl + Shift + Z | Ctrl + Y
- 打开文件夹包 — Enter
- 关闭文件夹包 — Escape
- 删除文件 — Delete
- 重命名文件 — Ctrl + R | F2(如果未绑定为截图)
- 打开文件 — Ctrl + Enter
- 在文件管理器中显示 — Alt + Shift + R
- 切换配置档侧边栏 — Ctrl + `
- 在默认配置档和无配置档之间切换 — F1
- 刷新包 — F5
- 聚焦搜索栏 — 输入任意字符
⚙️ 配置
- 关闭时自动应用资源包。
- 替换默认的 resourcepack 和 datapack 界面。
- 移除不兼容包上的红色背景。
- 重新打开界面时记住上次查看的配置档。
🚀 开发者模式
- 切换开发者模式 — Ctrl + Shift + I | F12
- 处于开发者模式时,上下文菜单中会显示额外选项。
-
Preferences:切换某些部件的可见性。
-
Lock Profiles:锁定的配置档无法被删除、重命名或修改。
-
Override Pack Properties:
- 覆盖项按配置档进行配置,且仅对该配置档生效,除非将其设为默认值。
- 覆盖包的 required 属性,也允许禁用必需包。
- 覆盖包的 position 属性,也允许移动固定包。
- 隐藏包。
-
Default Profiles:
- 来自默认配置档的覆盖项会对所有配置档全局启用,甚至在没有配置档时也会生效,包括原版界面。
- 默认配置档下已启用的包会自动标记为兼容。
- 默认配置档会在以下情况下自动加载:
-
Resource Packs:当
options.txt 文件缺失时。
-
Data Packs:创建新世界时。
-
Pack Aliases:为 Pack ID 添加别名
- 设计目的是帮助整合包开发者在需要更新时迁移资源/数据包,而不影响用户已配置的包选择和顺序。
- 仅当该包已被选中但不存在时才会使用。匹配会从别名映射的顶部开始,并解析为第一个匹配项,参见
config.meta.json 文件。
- 支持正则表达式(必须以前缀
regex: 开头),如果设置正确,Edit Aliases 对话框中的文本颜色会发生变化。
- 精确匹配始终优先于正则匹配,无论其在别名映射中的位置如何(例如,包
ID file/test-v1.2 总会优先匹配 "file/test-v1.2": "file/test-v1.4",而不是
"regex:file\\/test-v\\d*": "file/test-v2")。
- 别名绝不会被自动清除,即使它指向一个已不存在的包。它们只能通过游戏内 GUI 或配置文件手动移除。
- 通常不建议对数据包使用此功能,因为它可能会破坏世界。请充分测试。
♨️ Java API
Java API 被设计为一个可选依赖,允许模组扩展功能或添加与
Packed Packs 的兼容性。这包括订阅各种事件,以及注册自定义 preferences,
以便在界面的特定位置添加可配置的小部件。
你可以在 testmod 中查看示例实现,
也可以在 main 源集的 compat
包中查看。
你还可以从源代码中查看 javadocs。
访问 wiki page 了解更多详情。
🔗 兼容性
已显式添加对以下模组的兼容:
- Resourcify
- Respackopts
- VTDownloader
- Entity Texture Features
- Polytone
如果上述模组已变得不兼容,请提交 issue。请确保
目标 minecraft 版本使用了正确的模组版本,并确认问题是否只会在安装
Packed Packs 时出现。
注意:对上述模组的兼容性是在 Java API 推出之前添加的。
从长期兼容性的角度来看,其他模组最好改为使用 Java API。
如果上述模组进行了足够多的破坏性更改,这些兼容支持可能会被移除。
已知不兼容项
- Async Pack Scan。
- 无法打开 Packed Packs 界面,或会导致严重崩溃。使用 Packed Packs 时你不需要这个模组,因为 Packed Packs 界面本身已经会异步扫描包。