Polymerium
进阶

部署规则

通过强大的规则引擎精细控制模组的部署方式——按条件跳过、重定向或规范化文件。

上次更新

什么是部署规则?

部署规则让你可以控制单个模组(或一组模组)在部署时的处理方式。告别一刀切的方式,你可以编写如下规则:

  • "在 Fabric 实例中跳过此模组"
  • "将此数据包重定向到 Paxi 文件夹"
  • "规范化此模组的文件名"

规则附加在实例模组列表中的各个包上。

规则结构

一条规则由两部分组成:

  1. 选择器——这条规则应用于哪些包?
  2. 操作——对匹配的包执行什么动作?

选择器

选择器是布尔表达式,通过包的属性进行匹配:

选择器匹配依据示例
Purl包 URL(精确或部分匹配)modrinth:sodium
Repository来源仓库curseforge
Tag标签名server-only
Kind资源类型modresourcepackshaderpackdatapack

选择器可以通过布尔运算符组合使用:

  • 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,无论作者使用了什么版本号。你的资源包不会在每次更新时被取消选择。

添加规则

  1. 打开你的实例,进入 Setup 标签页。
  2. 打开实例的 Rules 编辑器。
  3. 添加新规则:定义选择器和操作。
  4. 保存。规则将在下次部署时生效。

规则与标签

标签和规则协同工作。典型的工作流程:

  1. 为模组添加标签,使用有意义的标签名(参见 标签)。
  2. 编写规则,针对这些标签进行操作。

这为你提供了一个可维护的系统——修改模组的标签即可,无需逐条编辑规则。

目录