跳转至

发布你的第一个模组

在教程创建你的第一个模组中,我们创建了一个简单的模组。在本教程中,我们将学习如何发布模组。

前置条件

首先,你应当确保你安装了lip

你还应当按照创建你的第一个模组中的步骤创建了一个模组,其中模组导出目录有类似如下的结构:

Text Only
1
2
3
4
5
.
└── mod-name
    ├── manifest.json
    ├── mod-name.dll
    └── mod-name.pdb

其中,mod-name是模组名。

创建一个GitHub仓库

首先,你需要创建一个GitHub仓库,用于存放你的模组。你可以使用任何你喜欢的名称,例如mod-name

在仓库中,我们建议放一个README.md文件,用于描述模组;并放一个logo.png文件,用于作为模组的图标。

创建一个tooth.json

在模组导出目录中创建一个tooth.json文件,内容如下:

JSON
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
    "format_version": 2,
    "tooth": "github.com/my-github-username/mod-name",
    "version": "0.1.0",
    "info": {
        "name": "MyMod",
        "description": "MyMod is a great mod!",
        "source": "github.com/my-github-username/my-source-code",
        "author": "My Name",
        "tags": [
            "mod",
            "ll"
        ]
    },
    "dependencies": {
        "github.com/tooth-hub/another-mod": "2.0.x"
    },
    "prerequisites": {
        "github.com/LiteLDev/LeviLamina": "1.0.x"
    },
    "files": {
        "place": [
            {
                "src": "mod-name/*",
                "dest": "plugins/mod-name"
            }
        ]
    }
}

替换tooth字段的值为你的模组的GitHub仓库地址,替换version字段的值为你的模组的版本号,填写info中各个字段的值,填写dependenciesprerequisites中各个字段的值。

Note

dependencies在安装模组时,会自动安装依赖的模组,在卸载模组时,会自动卸载依赖的模组。但是prerequisites不会自动安装,而是在缺少依赖时报错。一般来说,prerequisites中的模组应当是一些基础性的、框架级别的包,例如github.com/LiteLDev/LeviLamina,以避免模组的卸载过程中误卸载了这些包。

更多关于tooth.json的信息,请参考https://lip.futrime.com/zh/reference/tooth_json_file_reference/

尝试打包和安装模组

在模组导出目录中运行lip tooth pack mod.tth,将会在当前目录下生成一个mod.tth文件,这是一个打包好的模组。你可以移动这个模组到合适的地方,并使用lip install mod.tth尝试安装这个模组。

发布模组

将更改提交到GitHub仓库,然后在GitHub仓库中点击Releases,点击Create a new release,填写Tag versionRelease title,然后点击Publish release,即可发布模组。注意对应的tag必须为类似v0.1.0的格式,也就是tooth.jsonversion字段的值加上一个v

然后你就可以通过lip install github.com/my-github-username/mod-name来安装你的模组了。由于版本列表同步延迟,这个命令可能会在刚发布的一段时间内报错,你可以指定版本号来安装模组,例如lip install github.com/my-github-username/mod-name@0.1.0

在一段时间后,你也可以在LipUI和查看到你的模组了。