plugins { id 'fabric-loom' version '1.3-SNAPSHOT' id 'idea' id "me.hypherionmc.modutils.modpublisher" version "1.0.+" id 'com.github.johnrengelman.shadow' version '7.0.0' } apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'maven-publish' archivesBaseName = "${mod_name}-fabric-${minecraft_version}" configurations { shade } dependencies { minecraft "com.mojang:minecraft:${minecraft_version}" mappings loom.officialMojangMappings() modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}" implementation project(":Common") shade "me.hypherionmc.moon-config:core:${moon_config}" shade "me.hypherionmc.moon-config:toml:${moon_config}" shade "com.hypherionmc:rpcsdk:1.0" modCompileOnlyApi("com.terraformersmc:modmenu:${mod_menu_version}") { exclude(group: "net.fabricmc.fabric-api") } } loom { accessWidenerPath = project(":Common").file("src/main/resources/craterlib.aw") runs { client { client() setConfigName("Fabric Client") ideConfigGenerated(true) runDir("run") } server { server() setConfigName("Fabric Server") ideConfigGenerated(true) runDir("run") } } } processResources { from project(":Common").sourceSets.main.resources inputs.property "version", project.version filesMatching("fabric.mod.json") { expand "version": project.version } filesMatching('*.mixins.json') { expand "refmap_target": "${archivesBaseName}-" } } tasks.withType(JavaCompile) { source(project(":Common").sourceSets.main.allSource) } jar { from("LICENSE") { rename { "${it}_${mod_name}" } } } /** * Shadowjar Config */ shadowJar { configurations = [project.configurations.shade] dependencies { relocate 'me.hypherionmc.moonconfig', 'shadow.hypherionmc.moonconfig' } setArchiveClassifier("dev-shadow") } remapJar { input.set shadowJar.archiveFile dependsOn shadowJar setArchiveClassifier(null) } //reg.configureJarTask(shadowJar) /** * Publishing Config */ publishing { publications { mavenJava(MavenPublication) { groupId project.group artifactId project.archivesBaseName version project.version from components.java artifact(jar) { builtBy jar } pom.withXml { Node pomNode = asNode() pomNode.dependencies.'*'.findAll() { it.artifactId.text() == 'regutils-joined-fabric' || it.artifactId.text() == 'core' || it.artifactId.text() == 'toml' || it.artifactId.text() == "modmenu" }.each() { it.parent().remove(it) } } } } repositories { maven { url "https://maven.firstdark.dev/" + (project.release ? "releases" : "snapshots") credentials { username System.getenv("MAVEN_USER") password System.getenv("MAVEN_PASS") } } } } publisher { apiKeys { modrinth = System.getenv("MODRINTH_TOKEN") curseforge = System.getenv("CURSE_TOKEN") } curseID = curse_id modrinthID = modrinth_id versionType = "release" changelog = rootProject.file("changelog-fabric.md") version = "${minecraft_version}-${project.version}" displayName = "[FABRIC/QUILT 1.20.2] CraterLib - ${project.version}" gameVersions = ["1.20.2"] loaders = ["fabric", "quilt"] artifact = remapJar modrinthDepends { required = ["P7dR8mSH"] } curseDepends { required = ["fabric-api"] } } publishCurseforge.dependsOn(remapJar) publishModrinth.dependsOn(remapJar)