English | 简体中文
这是为 Fallen_Breath 的 preprocessor 实现 而制作的示例模组,该实现基于 ReplayMod 的 preprocessor 。
如果你是Fabric模组开发的新手,那这个模板不适合你。请先学习使用 Fabric Example Mod 。
这个仓库提供了一些其他preprocessor模板仓库没有的独特功能,包括:
- 自动创建和链接Gradle子项目(主要由 @Jog_Ming 实现)
- GitHub Actions矩阵发布和缓存刷新(主要由 @XRain66 实现)
要设置项目,你需要修改以下指定文件中的字段:
gradle.properties中的group和id(对应传统fabric模组中的maven_group和archives_base_name)src/main中的目录和文件名fabric.mod.json中的name、description、authors、contact和entrypoints字段<modid>.mixins.json中的package字段
这个模板默认使用Minecraft版本1.17.1。要更改版本,只需重命名 versions 文件夹中的目录,并将 versions/mainProject
的内容改为所需的版本,然后同步Gradle。要添加对新版本的支持,请执行以下操作:
- 在
versions中创建一个新文件夹,命名为你想要添加的版本 - 在
versions中创建一个名为mapping-<旧版本>-<新版本>.txt的txt文件- 这个文件是必需的,但可以留空。它也可以包含旧版本和新版本之间类的转换关系。
- 例如,在1.17.1中,负责生成幻翼的类是
net.minecraft.world.gen.PhantomSpawner - 然而,在1.20.1中,它被重命名(移动)为
net.minecraft.world.spawner.PhantomSpawner。 - 为了让这个转换自动进行,在
versions/mapping-1.17.1-1.20.1.txt中写入条目net.minecraft.world.gen.PhantomSpawner net.minecraft.world.spawner.PhantomSpawner。 - 每个转换条目应占一行。
- 如果你想要支持两个以上的版本,请确保映射文件是按从旧到新的顺序链接的
- 例如,如果你想支持三个版本:1.17.1、1.20.1和1.21.1,映射文件应该是
versions/mapping-1.17.1-1.20.1.txt和versions/mapping-1.20.1-1.21.1.txt
- 例如,如果你想支持三个版本:1.17.1、1.20.1和1.21.1,映射文件应该是
- 添加映射txt文件后,同步Gradle。
- 如果你想专注于开发1.17.1以外的版本,修改文件
versions/mainProject,然后同步Gradle - 在每个版本文件夹中,创建一个
gradle.properties文件和一个<modid>.accesswidener文件。- 在
gradle.properties中,指定要使用的fabric加载器和yarn映射版本。如果不确定,请参考versions/1.17.1/gradle.properties中的示例 <modid>.accesswidener是必需的,但可以没有条目(不过必须在文件开头声明accessWidener v2 named)
- 在
若要添加一个模组作为依赖,则需要进行更多更改:
- 在
common.gradle中声明模组仓库。 - 转到
fabric.mod.json并留出空间插入依赖声明。- 找到
"depends"键并插入依赖声明,如下所示:"depends": { ..., "carpet": ">=$carpet_version", ... }
- 找到
- 在每个版本文件夹的
gradle.properties文件中,创建条目来存储依赖的版本信息。每个依赖很可能需要两个条目:一个用于依赖声明中使用的完整版本字符串(例如carpet_full_version=1.17.1-1.4.57+v220119),另一个用于fabric.mod.json中使用的简化版本字符串(例如carpet_version=1.4.57) - 在
common.gradle的dependencies部分,插入相应的modImplementation或include声明。(例如modImplementation "carpet:fabric-carpet:$carpet_full_version") - 在
common.gradle的processResources部分,找到以filesMatching('fabric.mod.json')开头的行,并插入一个键值对,如下所示:filesMatching('fabric.mod.json') { expand ..., carpet_version: carpet_version, ... }
如果你希望GitHub的 release 操作自动发布到Modrinth,请确保设置环境变量 MODRINTH_ID 和密钥 MODRINTH_TOKEN。如果你有模组依赖,请在
.github/workflows/release.yml 的 dependencies
字段中声明它们。有关声明语法,请参考 mc-publish 。
有关preprocessor的更多信息,包括其确切用法、目的和机制,请参考 ReplayMod的仓库 。
有关Fallen_Breath所做更改的更多信息,请参考 他的仓库 。
本模板在GPL-3.0许可证下提供。