Skip to content

作为依赖集成(Jar‑in‑Jar / JarJar / JiJ)

目标:在你的模组中内嵌本库,使玩家无需单独安装。本节分别给出 Fabric(Loom)与 NeoForge(ModDevGradle)的做法。

重要约定:仅内嵌 “common” 工件(无装载器元数据),避免产生重复 modId 冲突;不要把 fabric/neoforge 子模块当作 JiJ 依赖内嵌。

本地 JAR

本项目没有发布到任何Maven仓库,因此你只能通过这个方式来集成。

步骤:

  1. 在本库仓库构建 common 工件
powershell
./gradlew :common:build

构建产物通常位于:TritiumConfiguration/common/build/libs/,文件名形如:tritium_configuration-common-<MC版本>-<版本>.jar(例如 tritium_configuration-common-1.21-0.2.0.jar)。

  1. 复制该 JAR 到你的模组工程的 libs/ 目录(没有就新建)。

  2. 在你的模组中声明依赖并内嵌:

  • 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) 即可。
  • 支持的类型:booleanintlongdoubleString、枚举、List<String>
  • 若你已经把本库内嵌,请不要再让玩家安装同名外部模组,以免产生版本冲突。