plugins { id "com.github.johnrengelman.shadow" id "modernfix.mod-common-conventions" id "modernfix.platform-conventions" } architectury { platformSetupLoomIde() forge() } loom { forge { convertAccessWideners = true extraAccessWideners.add loom.accessWidenerPath.get().asFile.name mixinConfig "modernfix-common.mixins.json" mixinConfig "modernfix-forge.mixins.json" } mixin.defaultRefmapName = "modernfix.refmap.json" } configurations { common shadowCommon // Don't use shadow from the shadow plugin since it *excludes* files. compileClasspath.extendsFrom common runtimeClasspath.extendsFrom common } def extraModsDir = "extra-mods" repositories { exclusiveContent { forRepository { flatDir { name "extra-mods" dir file(extraModsDir) } } filter { includeGroup "extra-mods" } } } dependencies { forge "net.minecraftforge:forge:${rootProject.forge_version}" shadow(annotationProcessor("io.github.llamalad7:mixinextras-common:${rootProject.mixinextras_version}")) runtimeOnly("io.github.llamalad7:mixinextras-common:${rootProject.mixinextras_version}") // Remove the next line if you don't want to depend on the API // modApi "me.shedaniel:architectury-forge:${rootProject.architectury_version}" modCompileOnly("mezz.jei:jei-${minecraft_version}:${jei_version}") //modRuntimeOnly("mezz.jei:jei-${minecraft_version}:${jei_version}") modCompileOnly("curse.maven:refinedstorage-243076:${refined_storage_version}") modCompileOnly("dev.latvian.mods:kubejs-forge:${kubejs_version}") modCompileOnly("curse.maven:jeresources-240630:3545538") modCompileOnly("curse.maven:jepb-437558:3172880") modCompileOnly("curse.maven:babel-436964:3196072") modCompileOnly("curse.maven:twforest-227639:3575220") modRuntimeOnly("curse.maven:ferritecore-429235:4074330") modCompileOnly("team.chisel.ctm:CTM:${ctm_version}") modCompileOnly("curse.maven:supermartijncore-454372:4455378") modCompileOnly("curse.maven:valhesiastructures-347488:3476252") modCompileOnly("curse.maven:sophbackpacks-422301:4167327") modCompileOnly files("deps/starlight-1.2.jar") modCompileOnly("appeng:appliedenergistics2:8.4.7") modCompileOnly("vazkii.patchouli:Patchouli:1.16.4-53.3") modImplementation "curse.maven:spark-361579:${rootProject.spark_forge_version}" // runtime remapping at home for (extraModJar in fileTree(dir: extraModsDir, include: '*.jar')) { def basename = extraModJar.name.substring(0, extraModJar.name.length() - ".jar".length()) def versionSep = basename.lastIndexOf('-') assert versionSep != -1 def artifactId = basename.substring(0, versionSep) def version = basename.substring(versionSep + 1) modRuntimeOnly("extra-mods:$artifactId:$version") } common(project(path: ":common", configuration: "namedElements")) { transitive false } shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false } shadowCommon(project(path: ":annotations")) } processResources { inputs.property "version", project.version filesMatching("META-INF/mods.toml") { expand "version": project.version } } shadowJar { exclude "fabric.mod.json" exclude "architectury.common.json" configurations = [project.configurations.shadowCommon, project.configurations.shadow] relocate("com.llamalad7.mixinextras", "org.embeddedt.modernfix.forge.shadow.mixinextras") archiveClassifier.set("dev-shadow") mergeServiceFiles() } remapJar { input.set shadowJar.archiveFile dependsOn shadowJar archiveClassifier.set(null) } jar { archiveClassifier.set("dev") manifest { attributes([ "Specification-Title" : "modernfix", "Operative-Class" : "org.embeddedt.modernfix.agent.Agent", //"Specification-Vendor": "modernfix authors", "Specification-Version" : "1", // We are version 1 of ourselves "Implementation-Title" : project.name, "Implementation-Version" : project.jar.archiveVersion //"Implementation-Vendor": "modernfix authors", ]) } } components.java { withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { skip() } } publishing { publications { mavenForge(MavenPublication) { artifactId = rootProject.archives_base_name + "-" + project.name from components.java } } // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. repositories { // Add repositories to publish to here. } }