plugins { id "com.github.johnrengelman.shadow" version "7.1.2" id "com.matthewprenger.cursegradle" id "com.modrinth.minotaur" } loom { accessWidenerPath = file("src/main/resources/architectury.accessWidener") } architectury { platformSetupLoomIde() fabric() } configurations { common shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this. compileClasspath.extendsFrom common runtimeClasspath.extendsFrom common developmentFabric.extendsFrom common } repositories { maven { url "https://maven.terraformersmc.com/releases/" } } dependencies { modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}" modCompileOnly "com.terraformersmc:modmenu:${rootProject.mod_menu_version}" implementation "net.jodah:typetools:0.6.2" shadowCommon "net.jodah:typetools:0.6.2" common(project(path: ":common", configuration: "namedElements")) { transitive false } shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false } } processResources { filesMatching("fabric.mod.json") { expand "version": project.version } inputs.property "version", project.version } shadowJar { exclude "architectury-common.accessWidener" exclude "architectury.common.json" relocate "net.jodah.typetools", "me.shedaniel.architectury.shadowed.impl.net.jodah.typetools" configurations = [project.configurations.shadowCommon] classifier "dev-shadow" } remapJar { input.set shadowJar.archiveFile dependsOn shadowJar classifier null } jar { classifier "dev" } sourcesJar { afterEvaluate { [":common"].forEach { def depSources = project(it).sourcesJar dependsOn depSources from(depSources.archiveFile.map { zipTree(it) }) { exclude "architectury.accessWidener" } } } } components.java { withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { skip() } } publishing { publications { mavenFabric(MavenPublication) { artifactId = rootProject.archivesBaseName + "-fabric" from components.java } } repositories { if (System.getenv("MAVEN_PASS") != null) { maven { url = "https://deploy.shedaniel.me/" credentials { username = "shedaniel" password = System.getenv("MAVEN_PASS") } } } } } curseforge { var CURSE_API_KEY = project.findProperty("CURSE_API_KEY") ?: System.getenv("CURSE_API_KEY") if (CURSE_API_KEY != null) { apiKey = CURSE_API_KEY project { id = rootProject.curseforge_id releaseType = "$rootProject.artifact_type" changelogType = "html" changelog = releaseChangelog() addGameVersion "1.16-Snapshot" addGameVersion "1.16.4" addGameVersion "1.16.5" addGameVersion "Java 8" addGameVersion "Fabric" relations { requiredDependency "fabric-api" } mainArtifact(remapJar.archivePath) { displayName = "[Fabric $rootProject.supported_version] v$project.version" } afterEvaluate { uploadTask.dependsOn("build") } } } options { forgeGradleIntegration = false javaVersionAutoDetect = false } } modrinth { var MODRINTH_TOKEN = project.findProperty("MODRINTH_TOKEN") ?: System.getenv("MODRINTH_TOKEN") if (MODRINTH_TOKEN != null) { token = MODRINTH_TOKEN projectId = rootProject.modrinth_id versionType = "$rootProject.artifact_type" versionNumber = "$project.version+$project.name" versionName = "[Fabric $rootProject.supported_version] v$project.version" changelog = releaseChangelog() uploadFile = remapJar gameVersions = ["1.16.5"] loaders = ["fabric"] dependencies { // TODO: move to slugs if that functionality becomes available in minotaur required.project("P7dR8mSH") // Fabric API } } }