plugins { id "com.github.johnrengelman.shadow" version "7.1.0" } 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 { mavenCentral() maven { name = 'Fabric-Permission-API' url 'https://oss.sonatype.org/content/repositories/snapshots' } maven { name = "Gunpowder" url = "https://maven.martmists.com/releases" } maven { name = 'Ladysnake Mods' url = 'https://ladysnake.jfrog.io/artifactory/mods' content { includeGroup 'io.github.ladysnake' includeGroupByRegex 'io\\.github\\.onyxstudios.*' } } maven { name = "HavenKing" url = "https://hephaestus.dev/release" } maven { name = "FTB" url = "https://maven.saps.dev/minecraft" } } dependencies { modImplementation "net.fabricmc:fabric-loader:${rootProject.loader_version}" // Fabric API. This is technically optional, but you probably want it anyway. modImplementation "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_version}" common(project(path: ":common", configuration: "namedElements")) { transitive false } shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false } modImplementation "me.lucko:fabric-permissions-api:${rootProject.fabric_permissions_api}" modCompileOnly("io.github.gunpowder:gunpowder-currency:${rootProject.gunpowder_currency_version}") { exclude group: "com.google.guava", module:"failureaccess" } //modImplementation "io.github.ladysnake:PlayerAbilityLib:${rootProject.player_ability_lib}" modCompileOnly "io.github.ladysnake:PlayerAbilityLib:${rootProject.player_ability_lib}" modCompileOnly("dev.ftb.mods:ftb-ranks-fabric:${rootProject.ftb_ranks}") } processResources { inputs.property "version", project.version filesMatching("fabric.mod.json") { expand "version": project.version } } shadowJar { configurations = [project.configurations.shadowCommon] classifier "dev-shadow" } remapJar { input.set shadowJar.archiveFile dependsOn shadowJar classifier "fabric" } jar { classifier "dev" } sourcesJar { def commonSources = project(":common").sourcesJar dependsOn commonSources from commonSources.archiveFile.map { zipTree(it) } classifier "fabric-source" } components.java { withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { skip() } } task apiJar(type: Jar, dependsOn: classes) { archiveClassifier.set "fabric-api-source" from project(":common").sourceSets.main.output + sourceSets.main.output include "io/github/flemmli97/flan/api/**" include "fabric.mod_api.json" //Include this so it gets remapped as a dependency rename("fabric.mod_api.json", "fabric.mod.json") } task remapApiJar(type: net.fabricmc.loom.task.RemapJarTask) { archiveClassifier.set "fabric-api" input.set apiJar.archiveFile addNestedDependencies = false dependsOn apiJar from sourceSets.main.output /* Putting it here doesnt seem to work... include "fabric.mod_api.json" //Include this so it gets remapped as a dependency rename("fabric.mod_api.json", "fabric.mod.json") */ } publishing { publications { mavenJava(MavenPublication) { // add all the jars that should be included when publishing to maven artifact(remapJar) { builtBy remapJar } artifact(sourcesJar) { builtBy remapSourcesJar } artifact(remapApiJar) artifactId project.archives_base_name version project.version } } repositories { maven { url "https://gitlab.com/api/v4/projects/21830712/packages/maven" //url "https://maven.pkg.github.com/flemmli97/<>" credentials { username = project.findProperty("gpr.user") ?: System.getenv("GPR_USER") password = project.findProperty("gpr.gitlab.token") ?: System.getenv("GPR_GITLAB_TOKEN") //password = project.findProperty("gpr.github.token") ?: System.getenv("GPR_TOKEN") } } } }