Fabric模组开发

来自Hyacinth
跳转到导航 跳转到搜索

要进行Fabric模组开发,首先需要配置Gradle构建系统并导入相关的依赖,通常选择直接克隆Fabric官方GitHub仓库中的fabric-example-mod后在IDE中自动配置。

fabric.mod.json

每个Fabric模组都需要fabric.mod.json文件来加载,[1]它的格式类似于:

{
    "schemaVersion": 1,
    "id": "example-mod",
    "version": "${version}",
    "name": "Mod name",
    "description": "The example mod",
    "contact": {
        "email": "foo@example.com",
        "irc": "irc://irc.example.com",
        "issues": "https://issues.example.com",
        "homepage": https://example.com",
        "sources": "https://source.example.com"
    },
    "environment": "server",
    "entrypoints" : {
        "main": [ 
            /* 此处应为模组的入口点全类名 */
            "com.example.mod.ExampleModEntrypoint"
        ],
        "client": [ /* 和上面的main格式类似 */ ],
        "server": [ /* 和上面的main格式类似 */ ]
    }
    "authors": [
        "Author1",
        "Author2",
        {
            "name": "Author3",
            "contact": { /* 和上面的contact格式类似 */ }
        }
    ],
    "contributors": [ /* 和上面的authors格式类似 */ ],
    "license": "GPLv3",
    "icon": "assets/example-mod/icon.png"
}

入口点

作为Fabric模组的入口点,类必须实现ModInitializer、ClientModInitializer、DedicatedServerModInitializer这三个接口的的其中一个,并在fabric.mod.json文件的entrypoints中定义入口类的全类名,三个Initializer各有不同的列表,将入口点写在错误的位置会报错并且无法启动Minecraft。[2]

ModInitializer

ModInitializer入口点需要定义在entrypointsmain列表里。

ClientModInitializer

ClientModInitializer入口点需要定义在entrypointsclient列表里。

DedicatedServerModInitializer

DedicatedServerModInitializer入口点需要定义在entrypointsserver列表里。

参考文献

  1. "fabric.mod.json [Fabric Wiki]". Retrieved 2025-02-09.
  2. "入口点 [Fabric Wiki]". Retrieved 2025-02-09.