plugins { id 'fabric-loom' version '1.17.19' id 'maven-publish' } version = project.mod_version group = project.maven_group base { archivesName = project.archives_base_name } // 独立配置,用于把完整的 Baritone 实现原样(不经过 Loom 重映射)复制进最终 jar。 // 注意:libs 下的这个文件虽然命名为 *-api-*,但它实际上是 Baritone 的完整实现 // (含混淆后的实现类、fabric.mod.json、Mixin 配置),并非只有接口。 configurations { nestedJar } dependencies { // Minecraft minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" // Fabric API modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" // Baritone 完整实现(本地 jar): // - modImplementation 供编译期与开发环境(runClient)使用,Loom 会将其重映射到 yarn; // - 生产 jar 中则通过下方 nestedJar 嵌入原始(intermediary 映射)文件, // 由 Fabric Loader 在运行时自动作为嵌套模组加载,玩家无需另行安装 Baritone。 modImplementation files("libs/baritone-api-fabric-1.13.1.jar") // 标记需要原样嵌套打包的 jar(保持原始字节,不做重映射) nestedJar files("libs/baritone-api-fabric-1.13.1.jar") } processResources { inputs.property "version", project.version filteringCharset "UTF-8" filesMatching("fabric.mod.json") { expand "version": project.version } // 将完整的 Baritone 实现原样嵌套打包进 META-INF/jars, // 与 fabric.mod.json 的 jars 声明对应。Fabric Loader 会在运行时把嵌套 jar // 作为独立模组自动加载,因此玩家无需另行安装 Baritone。 // 注意:不要对嵌套副本做重映射,Loader 要求生产环境的模组保持 intermediary 映射。 from(configurations.nestedJar) { into "META-INF/jars" } } tasks.withType(JavaCompile).configureEach { it.options.release = 21 } java { toolchain { languageVersion = JavaLanguageVersion.of(21) } }