buildscript { repositories { maven { url "https://files.minecraftforge.net/maven" } jcenter() mavenCentral() } dependencies { classpath(group: "net.minecraftforge.gradle", name: "ForgeGradle", version: "3.+", changing: true) } } plugins { id "com.github.johnrengelman.shadow" version "5.0.0" id "eclipse" id "com.matthewprenger.cursegradle" } apply plugin: "net.minecraftforge.gradle" minecraft { mappings(channel: "official", version: rootProject.architect.minecraft) accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') runs { client { workingDirectory project.file("run") mods { architectury { source sourceSets.main } } } server { workingDirectory project.file("run") mods { architectury { source sourceSets.main } } } } } repositories { jcenter() maven { url "https://files.minecraftforge.net/maven" } } configurations { shadow } dependencies { minecraft("net.minecraftforge:forge:${rootProject.architect.minecraft}-${rootProject.forge_version}") implementation "net.jodah:typetools:0.6.2" shadow "net.jodah:typetools:0.6.2" compile(project(path: ":common", configuration: "mcpGenerateMod")) { transitive = false } shadow(project(path: ":common", configuration: "mcp")) { transitive = false } } shadowJar { relocate "net.jodah.typetools", "me.shedaniel.architectury.shadowed.impl.net.jodah.typetools" exclude "fabric.mod.json" configurations = [project.configurations.shadow] classifier "forge" } reobf { shadowJar {} } build.dependsOn(shadowJar) publishing { publications { mavenForge(MavenPublication) { artifact(shadowJar.archivePath) { builtBy shadowJar classifier "forge" } } } } curseforge { if (project.hasProperty("curse_api_key") || System.getenv("curse_api_key") != null) { apiKey = project.hasProperty("curse_api_key") ? project.property("curse_api_key") : System.getenv("curse_api_key") project { id = "419699" releaseType = "release" changelogType = "html" changelog = releaseChangelog() addGameVersion "1.16.4" addGameVersion "Java 8" addGameVersion "Forge" relations { requiredDependency "fabric-api" } mainArtifact(shadowJar.archivePath) { displayName = "[Forge $rootProject.supported_version] v$project.version" } afterEvaluate { uploadTask.dependsOn("build") } } } options { forgeGradleIntegration = false javaVersionAutoDetect = false } } rootProject.tasks.getByName("curseforgePublish").dependsOn tasks.getByName("curseforge")