作为依赖集成(Jar‑in‑Jar / JarJar / JiJ)
目标:在你的模组中内嵌本库,使玩家无需单独安装。本节分别给出 Fabric(Loom)与 NeoForge(ModDevGradle)的做法。
重要约定:仅内嵌 “common” 工件(无装载器元数据),避免产生重复 modId 冲突;不要把 fabric/neoforge 子模块当作 JiJ 依赖内嵌。
本地 JAR
本项目没有发布到任何Maven仓库,因此你只能通过这个方式来集成。
步骤:
- 在本库仓库构建 common 工件
powershell
./gradlew :common:build构建产物通常位于:TritiumConfiguration/common/build/libs/,文件名形如:tritium_configuration-common-<MC版本>-<版本>.jar(例如 tritium_configuration-common-1.21-0.2.0.jar)。
复制该 JAR 到你的模组工程的
libs/目录(没有就新建)。在你的模组中声明依赖并内嵌:
- Fabric(Loom):
groovy
// build.gradle(fabric 模块)
dependencies {
// 本地 JAR 依赖
def tritiumCommon = files('libs/tritium_configuration-common-1.21-0.2.0.jar')
implementation tritiumCommon
include tritiumCommon // 将其打包进你的 mod JAR 中(META-INF/jars)
// 若需要自动界面(Cloth Config):
modImplementation "me.shedaniel.cloth:cloth-config-fabric:${fabric_cloth_config_version}"
}- NeoForge(ModDevGradle):
groovy
// build.gradle(neoforge 模块)
dependencies {
implementation(jarJar(files('libs/tritium_configuration-common-1.21-0.2.0.jar')))
implementation "me.shedaniel.cloth:cloth-config-neoforge:${cloth_config_version}"
}
jarJar {
relocate 'me.zcraft.tc', 'your.mod.libs.tritium'
}提示:若你的 Loom/MDG 版本对 include(files(...)) 或 jarJar(files(...)) 支持不佳,可使用 Shadow 插件作为后备方案:
groovy
plugins { id 'com.github.johnrengelman.shadow' version '8.1.1' }
dependencies { implementation files('libs/tritium_configuration-common-1.21-0.2.0.jar') }
tasks.named('shadowJar', com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar) {
relocate 'me.zcraft.tc', 'your.mod.libs.tritium'
}配置完成后构建你的模组即可完成内嵌。
运行时注意事项
- 仅当你使用自动界面(
TritiumAutoConfig)时才需要在运行时提供 Cloth Config;纯读写配置无需 Cloth Config。 - 不要在你的初始化流程中调用库自带的
TritiumCommon.init();那是本库独立作为“模组”时的平台入口日志函数。作为内嵌库使用时,直接调用TritiumConfig.register(modId, YourConfig.class)即可。 - 支持的类型:
boolean、int、long、double、String、枚举、List<String>。 - 若你已经把本库内嵌,请不要再让玩家安装同名外部模组,以免产生版本冲突。