User Tools

Site Tools


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)。
    • 本列表并未列举尽——模组也许会提供额外的、非标准的键(例如 discordslacktwitter,等等)——如有可能,一般都需要是有效的 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