进阶
部署规则
通过强大的规则引擎精细控制模组的部署方式——按条件跳过、重定向或规范化文件。
上次更新
什么是部署规则?
部署规则让你可以控制单个模组(或一组模组)在部署时的处理方式。告别一刀切的方式,你可以编写如下规则:
- "在 Fabric 实例中跳过此模组"
- "将此数据包重定向到 Paxi 文件夹"
- "规范化此模组的文件名"
规则附加在实例模组列表中的各个包上。
规则结构
一条规则由两部分组成:
- 选择器——这条规则应用于哪些包?
- 操作——对匹配的包执行什么动作?
选择器
选择器是布尔表达式,通过包的属性进行匹配:
| 选择器 | 匹配依据 | 示例 |
|---|---|---|
Purl | 包 URL(精确或部分匹配) | modrinth:sodium |
Repository | 来源仓库 | curseforge |
Tag | 标签名 | server-only |
Kind | 资源类型 | mod、resourcepack、shaderpack、datapack |
选择器可以通过布尔运算符组合使用:
And——所有子选择器都必须匹配Or——任意一个子选择器匹配即可Not——反转选择器的匹配结果
示例:匹配所有来自 CurseForge 的数据包:
And(Repository=curseforge, Kind=datapack)操作
| 操作 | 作用 |
|---|---|
Skip | 完全不部署此包 |
Normalize | 将文件重命名为标准化名称 |
Destination | 部署到自定义路径而非默认路径 |
常见用例
跳过服务端模组
如果你有一些不应出现在客户端实例中的服务端模组:
Selector: Tag=server-only
Action: Skip为 Paxi 重定向数据包
不同的加载器使用不同的数据包路径。如果你使用 Paxi:
Selector: Kind=datapack
Action: Destination → datapacks/规范化资源包文件名
资源包文件名通常包含版本号——例如 Sapphire-v2.1.zip。当资源包更新到 Sapphire-v2.2.zip 时,文件名发生了变化,Minecraft 会忘记你的资源包选择,你每次都必须重新启用它。
规范化通过将文件重命名为一致的名称来解决这个问题:
Selector: Purl=modrinth:sapphire
Action: Normalize → Sapphire.zip现在部署的文件名始终保持为 Sapphire.zip,无论作者使用了什么版本号。你的资源包不会在每次更新时被取消选择。
添加规则
- 打开你的实例,进入 Setup 标签页。
- 打开实例的 Rules 编辑器。
- 添加新规则:定义选择器和操作。
- 保存。规则将在下次部署时生效。
规则与标签
标签和规则协同工作。典型的工作流程:
- 为模组添加标签,使用有意义的标签名(参见 标签)。
- 编写规则,针对这些标签进行操作。
这为你提供了一个可维护的系统——修改模组的标签即可,无需逐条编辑规则。