plugins { id "com.github.johnrengelman.shadow" version "7.0.0" } architectury { platformSetupLoomIde() forge() } 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 developmentForge.extendsFrom common } processResources { filesMatching(["META-INF/mods.toml", "META-INF/mods-server-only.toml"]) { expand "version": project.version } inputs.property "version", project.version } repositories { maven { url "https://www.cursemaven.com" } maven { name "Modmaven" url "https://modmaven.dev/" // For Gradle 5.1 and above, limit it to just AE2 content { includeGroup 'appeng' } } } sourceSets { serverComponent { compileClasspath += main.compileClasspath runtimeClasspath += main.runtimeClasspath } } loom { launches { all { arg "--mixin", "rei-jei-internals-workaround.mixins.json" } } forge { localMods { jeiInternalsWorkaround { add(project(":jei-internals-workaround").sourceSets.main) } } mixinConfig "rei.mixins.json" } } def depProjects = [":api", ":runtime", ":default-plugin"] dependencies { forge("net.minecraftforge:forge:${rootProject.minecraft_version}-${rootProject.forge_version}") modApi("me.shedaniel.cloth:cloth-config-forge:${cloth_config_version}") modApi("dev.architectury:architectury-forge:${architectury_version}") common(project(path: ":jei-compatibility-layer", configuration: "namedElements")) { transitive false } shadowCommon(project(path: ":jei-compatibility-layer", configuration: "namedElements")) { transitive false } runtimeClasspath(project(path: ":jei-internals-workaround", configuration: "namedElements")) { transitive false } depProjects.forEach { common(project(path: it, configuration: "namedElements")) { transitive false } shadowCommon(project(path: it, configuration: "transformProductionForge")) { transitive false } } // modRuntime("curse.maven:chiselsbits-231095:3492889") // modRuntime("curse.maven:jumbofurnace-390880:3120970") // modRuntime("curse.maven:cyclic-239286:3221427") // modRuntime("curse.maven:mekanism-268560:3206392") // modRuntime("curse.maven:mekanism-tools-268567:3206396") // modRuntime("curse.maven:autoreglib-250363:3326041") // modRuntime("curse.maven:ars-nouveau-401955:3442387") // modRuntime("curse.maven:patchouli-306770:3374063") // modRuntime("curse.maven:curios-309927:3457073") // modRuntime("curse.maven:geckolib-388172:3502639") // modRuntime("curse.maven:refined-storage-243076:3196167") // modRuntime("appeng:appliedenergistics2:8.2.0") // modRuntime("curse.maven:tcon-74072:3273213") // modRuntime("curse.maven:mantle-74924:3273201") // modRuntime("curse.maven:jer-240630:3489131") // modRuntime("curse.maven:jep-417645:3478254") // modRuntime("curse.maven:simple-storage-network-268495:3476722") // modRuntime("curse.maven:create-328085:3536025") // modRuntime("curse.maven:flywheel-486392:3535459") // modRuntime("curse.maven:industrial-foregoing-266515:3446262") // modRuntime("curse.maven:titanium-287342:3346366") // modRuntime("curse.maven:extended-crafting-268387:3470453") // modRuntime("curse.maven:cucumber-272335:3349690") modRuntime("curse.maven:crafttweaker-239197:3602440") modRuntime("curse.maven:jeitweaker-368718:3602846") // modRuntime("curse.maven:eidolon-429625:3157832") // modRuntime("curse.maven:token-enchanter-444421:3449483") // modRuntime("curse.maven:silent-lib-242998:3400030") // modRuntime("curse.maven:resourceful-bees-384508:3485315") // modRuntime("curse.maven:thermal-expansion-69163:3404884") // modRuntime("curse.maven:thermal-foundation-222880:3412300") // modRuntime("curse.maven:cofh-core-69162:3407019") // modRuntime("curse.maven:advanced-peripherals-431725:3525665") // modRuntime("curse.maven:cc-tweaked-282001:3434680") // modRuntime("curse.maven:ender-storage-245174:3361748") // modRuntime("curse.maven:codechicken-242818:3528603") // modRuntime("curse.maven:recipe-stages-280554:3492760") // modRuntime("curse.maven:game-stages-268655:3437962") // modRuntime("curse.maven:bookshelf-228525:3474499") // modRuntime("curse.maven:kubejs-238086:3533307") // modRuntime("curse.maven:rhino-416294:3525704") modRuntime("curse.maven:enchantment-descriptions-250419:3566741") } shadowJar { configurations = [project.configurations.shadowCommon] classifier "dev-shadow" } remapJar { input.set shadowJar.archiveFile dependsOn shadowJar classifier null } jar { classifier "dev" } java { withSourcesJar() } sourcesJar { afterEvaluate { depProjects.forEach { def depSources = project(it).sourcesJar dependsOn depSources from depSources.archiveFile.map { zipTree(it) } } } } task serverOnlyJar(type: Jar, dependsOn: [remapJar]) { classifier "server-only" from(zipTree(remapJar.archiveFile.get().asFile)) { exclude "META-INF/mods.toml", "mezz/**", "me/shedaniel/rei/forge/RoughlyEnoughItemsForge.class", "me/shedaniel/rei/forge/JEIStub.class" } from(sourceSets.serverComponent.output) } tasks.build { dependsOn tasks.serverOnlyJar } components.java { withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { skip() } } publishing { publications { mavenFabric(MavenPublication) { artifactId = rootProject.name + "-" + project.name from components.java } ["api", "default-plugin"].forEach { projectName -> create(projectName + "Fabric", MavenPublication.class) { publication -> publication.artifactId = rootProject.name + "-" + projectName + "-forge" project.afterEvaluate { def project = project(":" + projectName) publication.artifact(project.fakeForgeJar) { classifier null } def remapSourcesJarTask = project.remapSourcesJar publication.artifact(remapSourcesJarTask.output) { builtBy remapSourcesJarTask classifier "sources" } } } } } } curseforge { if (project.hasProperty('danielshe_curse_api_key') || System.getenv('danielshe_curse_api_key') != null) { apiKey = project.hasProperty('danielshe_curse_api_key') ? project.property('danielshe_curse_api_key') : System.getenv('danielshe_curse_api_key') project { id = "392060" releaseType = "release" changelogType = "html" changelog = rootProject.releaseChangelog addGameVersion "1.18" addGameVersion "1.18.1" addGameVersion "Java 17" addGameVersion "Forge" relations { requiredDependency "architectury-forge" requiredDependency "cloth-config-forge" requiredDependency "roughly-enough-items-hacks" } mainArtifact(tasks.getByName("remapJar")) { displayName = "[Forge $project.supported_version] v$project.version" } } project { id = "567899" releaseType = "release" changelogType = "html" changelog = rootProject.releaseChangelog addGameVersion "1.16.4" addGameVersion "1.16.5" addGameVersion "Java 8" addGameVersion "Forge" relations { requiredDependency "architectury-forge" requiredDependency "cloth-config-forge" } mainArtifact(tasks.getByName("serverOnlyJar")) { displayName = "[Forge $project.supported_version] v$project.version" } } } options { forgeGradleIntegration = false javaVersionAutoDetect = false } }