Skip to content

总览

这里我们会介绍定义整合包内容与元数据的配置文件,讲解其作用与配置方法。并且介绍这些配置文件中常用到的配置值类型。注意,LPB 使用的 YAML 格式配置文件一律以 .yml.yaml 作为扩展名,且在本文档演示、LPB 初始化项目时默认使用 .yml。不可使用 .json 等扩展名,或者没有扩展名。

配置文件

  • 整合包元数据(pack.yml):定义整合包的基本信息,如名称、版本、作者等,以及整合包支持的 Minecraft 版本、模组加载器,准备导出的平台之类。
  • 资源列表(list.yml):定义整合包中包含的模组、资源包、数据包、附加文件等内容,以及应用它们的条件。同时也定义可能使用的特定文件夹,如数据包文件夹。
  • 资源定义(resources/*.yml):定义整合包中每个资源的具体信息,如模组在 Modrinth 上的 ID,要包含的附加文件放在哪个文件夹或者在哪里下载之类。
  • 数据生成模板(datagen/*.yml):定义整合包中需要数据生成得到的资源生成数据的模板与实现规则。只有有特定需求时才需要使用数据生成模板,无须特意关注本部分内容,以免徒增难度。

点击链接可跳转至相应页面了解详细信息,知晓如何进行具体配置。

基本约定

标识符(ID)

标识符可以理解为给某个对象起的名字,这个名字对于同级的同种对象来说应该是独一无二的。如果是手动定义的标识符(即你亲自起名),其一般不能包含特殊字符,如 \ / : * ? " < > | 等,这与 Windows 环境下对于文件名的要求类似。

文件路径

文件路径是一个字符串,指定文件的相对位置。LPB 配置中使用的文件路径大多都是相对路径,相对的位置因具体情况而变。在 LPB 配置中,请将路径分隔符写作正斜杠 / 而不是反斜杠 \,无论你是在 Windows、Linux 还是其他平台。

常用值

版本范围(Version Range)

版本范围描述的是一些版本号的集合,在配置文件中通常被用来描述 Minecraft 的版本,这里的版本特指 Minecraft 正式版。

Minecraft 正式版的版本号为数字与小数点 . 组成的字符串,比如 1.21.126.1。版本范围在此基础上扩展。版本范围可以就是单个版本号,比如 1.20.1 既是一个版本号,也是一个合法的版本范围。它作为版本范围时,表示的就是 1.20.1 这一个版本。单个版本号在配置文件中建议使用引号包裹,以避免 YAML 解析器将其误认为数字。

用版本范围表示多个版本,表示方法类似于区间。有限区间包含两个版本作为端点,中间使用逗号 , 分隔。外面需要用括号括起来。使用哪种括号取决于这个端点是否被包含,被包含则使用方括号 [ ],不被包含使用圆括号 ( )。例如:

  • [1.20.1,1.21) 表示从 1.20.1 到 1.21 之间不包含 1.21 的所有版本,包括 1.20.1。
  • [1.21.1,1.21.11] 表示从 1.21.1 到 1.21.11 之间的所有版本,包括 1.21.1 和 1.21.11。

无限区间可能只有一个或没有版本号作为端点。没有版本号的一侧留空,且那一侧的括号必须使用圆括号,表示无穷。一般来说,右侧无穷更常见,表示包括以后的所有版本。即使存在空端点,中间的逗号仍然要保留。例如:

  • [1.20.1,) 表示 1.20.1 及以后的所有版本。
  • (,1.21) 表示 1.21 之前的所有版本,不包括 1.21。
  • (,) 表示从古至今的所有版本。

版本选择规则(Version Choice)

版本选择规则运用于指定模组等资源以及模组加载器的版本。通过指定满足特定条件选择什么版本以及 LPB 按什么规则自动选择版本,实现对资源和模组加载器版本的精细控制。

当然,如果不配置版本选择规则,LPB 也会自动按照一定原则选取资源和模组加载器的版本,因此了解如何配置版本选择原则并不是必须的。但是,如果你需要精确控制某个资源或模组加载器的版本,了解这些就十分有必要了。

前往 版本选择规则 了解详细信息。

条件(Condition)

条件在配置文件中被广泛使用,通过判断具体情况影响资源应用情况和数据生成结果。

前往 条件 了解详细信息。