zh_cn:documentation:fabric_mod_json
fabric.mod.json
fabric.mod.json 文件是由 Fabric 加载器使用以加载模组的模组元数据文件。模组需要有这个文件才能被加载,该文件需要放在模组 JAR 的根目录下,且名称一致。
必要字段
- schemaVersion 用于内部机制。总是为
1
。 - id 定义模组的 id——由字母、数字、下划线组成的字符串,长度为 1 到 63。
- version 定义模组版本——字符串值,建议符合 Semantic Versioning 2.0.0 的规定。
可选字段
模组加载
- provides:定义了提供的模组的 id 的列表,可以看做模组的别称。Fabric Loader 将会认为这些 id 的模组是存在的。如果存在其他使用这个 id 的模组,这些模组会直接不加载。
- environment:定义了模组在哪里运行:只在客户端(客户端模组),或只在服务端(插件),或二者(常规模组)。包含环境标识符:
*
运行在客户端与服务器。默认。- client 运行在客户端。
- server 运行在服务器。
- entrypoints 定义了你的模组的要加载的主要的类。
- 你的模组有三种默认的入口点:
- main 会先运行。用于实现了
ModInitializer
的类。 - client 仅在客户端,会随后运行。用于实现了
ClientModInitializer
的类。 - server 仅在服务端,会随后运行。用于实现了
DedicatedServerModInitializer
的类。
- 每个入口点都可以包含多个需要加载的模组。类(或者方法,或者静态字段)可以用两种方式定义:
- 如果使用Java,列举类(或者其他)的完整名称。例如:
"main": [ "net.fabricmc.example.ExampleMod", "net.fabricmc.example.ExampleMod::handle" ]
- 如果你使用其他语言,参考该语言的文档。Kotlin 的位于 此网站。
- jars 你的模组 JAR 中需要加载的嵌套 JAR。使用此字段前,请参考使用嵌套 JAR 的指引。每一项都是包含
file
键的对象,这个键应该是你的模组 JAR 到嵌套 JAR 的路径。例如:"jars": [ { "file": "nested/vendor/dependency.jar" } ]
- languageAdapters 从使用的语言映射到其接收器(adapter)类完整名称的字典。例如:
"languageAdapters": { "kotlin": "net.fabricmc.language.kotlin.KotlinAdapter" }
- mixins mixin配置文件的列表。每一项都是到你的模组 JAR 内的 mixin 配置文件的路径,或者包含以下字段的对象:
- config 你的模组 JAR 内到 mixin 配置文件的路径。
- environment 与上层 environment 字段相同。见上。如:
"mixins": [ "modid.mixins.json", { "config": "modid.client-mixins.json", "environment": "client" } ]
依赖解析
下方各对象的项的键均为依赖的模组 id。
每一个键的值都是字符串,或者字符串数组,声明支持的版本范围。对于数组,会假定一个“OR”关系——也就是说,只要符合其中一个。
对于所有版本的情况,*是特殊的字符串,声明所有版本都符合该范围。此外,无论版本范围,必须能够符合准确字符串。
- depends 需要才能运行的依赖,否则游戏崩溃。
- recommends 不必要就能运行的依赖,否则游戏会输出警告。
- suggests 不需要就能运行的依赖,用作元数据。
- breaks 一起运行可能导致游戏崩溃的模组。一起运行时,游戏崩溃。
- conflicts 一起运行时游戏可能出现问题的模组。一起运行时,会输出警告。
元数据
- name 定义用于易读的模组名称。如果不存在,则假定符合 id。
- description 定义模组的描述。如果不存在,则假定为空字符串。
- contact 定义项目的联系信息,此对象包含以下字段:
- email 通过电邮联系与模组有关事项,必须是有效的电邮地址。
- irc 与模组有关的 IRC 频道。必须是有效的 URL 格式,例如:
irc://irc.esper.net:6667/charset
for#charset
at EsperNet——端口是可选的,如果不存在,假定为6667。 - homepage 项目或用户主页,必须是有效的 HTTP/HTTPS 地址。
- issues 项目问题追踪器,必须是有效的 HTTP/HTTPS 地址。
- sources 项目源代码仓库,必须是有效的 URL——但是也可以是给定的 VCS 的专用 URL(例如 Git 或 Mercurial)。
- 本列表并未列举尽——模组也许会提供额外的、非标准的键(例如 discord、slack、twitter,等等)——如有可能,一般都需要是有效的 URL。
- authors 模组作者的列表。每一项都是单个名称,或者是包含以下字段的对象:
- name 真名或用户名,必须。
- contact 此人的联系信息。与上面的 contact 一样,见上。可选。
- contributors 模组贡献者的列表。每一项与 author 字段格式一致,见上。
- license 定义许可协议信息。可以是单个协议字符串或者其列表。
- 应该提供完整的一套受推荐的包含整个模组包的许可协议。换句话说,遵守所有列举的协议应该足够明确整个模组包的使用、分发等。
- 对于代码有部分受双协议影响的情况,选择受推荐的协议。 The list is not exhaustive, serves primarily as a kind of hint, and does not prevent you from granting additional rights/licenses on a case-by-case basis.
- To aid automated tools, it is recommended to use SPDX License Identifiers for open-source licenses.
- icon 定义模组的图标。图标是正方形 PNG 文件。(Minecraft 资源包使用 128×128,但并非硬性要求,但是建议长宽均为 2 的次幂。)可以以两种方式提供:
- 到单个 PNG 文件的路径。
- 宽度映射到文件路径的字典。
自定义字段
您可以在 custom
字段中添加任何要添加的字段。Loader 会忽略这些字段。但是强烈建议为您的字段命名以避免在将您的字段(名称)添加到标准规范时发生冲突。
zh_cn/documentation/fabric_mod_json.txt · Last modified: 2024/01/02 10:33 by solidblock