plugins { id 'com.github.johnrengelman.shadow' id "me.shedaniel.unified-publishing" } repositories { maven { name = 'NeoForged' url = 'https://maven.neoforged.net/releases' } } architectury { platformSetupLoomIde() neoForge() } loom { accessWidenerPath = project(":common").loom.accessWidenerPath } configurations { common { canBeResolved = true canBeConsumed = false } compileClasspath.extendsFrom common runtimeClasspath.extendsFrom common developmentNeoForge.extendsFrom common // Files in this configuration will be bundled into your mod using the Shadow plugin. // Don't use the `shadow` configuration from the plugin itself as it's meant for excluding files. shadowBundle { canBeResolved = true canBeConsumed = false } archivesBaseName = rootProject.archives_base_name + "-neoforge" } dependencies { neoForge "net.neoforged:neoforge:$rootProject.neoforge_version" modImplementation include ("maven.modrinth:midnightlib:${rootProject.midnightlib_version}-neoforge") modImplementation include ("maven.modrinth:obsidianui:${rootProject.obsidianui_version}-neoforge") {} shadowBundle('org.aperlambda:lambdajcommon:1.8.1') { exclude group: 'com.google.code.gson' exclude group: 'com.google.guava' } common(project(path: ':common', configuration: 'namedElements')) { transitive false } shadowBundle project(path: ':common', configuration: 'transformProductionNeoForge') } processResources { inputs.property 'version', project.version filesMatching('META-INF/neoforge.mods.toml') { expand version: project.version } } shadowJar { configurations = [project.configurations.shadowBundle] archiveClassifier = 'dev-shadow' } remapJar { input.set shadowJar.archiveFile } sourcesJar { def commonSources = project(":common").sourcesJar dependsOn commonSources from commonSources.archiveFile.map { zipTree(it) } } components.java { withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { skip() } } unifiedPublishing { project { displayName = "MidnightControls $project.version - NeoForge $project.minecraft_version" releaseType = "$project.release_type" changelog = releaseChangelog() gameVersions = [] gameLoaders = ["neoforge"] mainPublication remapJar relations { includes { curseforge = "midnightlib" modrinth = "midnightlib" } includes { curseforge = "obsidianui" modrinth = "obsidianui" } } var CURSEFORGE_TOKEN = project.findProperty("CURSEFORGE_TOKEN") ?: System.getenv("CURSEFORGE_TOKEN") if (CURSEFORGE_TOKEN != null) { curseforge { token = CURSEFORGE_TOKEN id = rootProject.curseforge_id gameVersions.addAll "Java 21", project.minecraft_version if (project.supported_versions != "") gameVersions.addAll project.supported_versions } } var MODRINTH_TOKEN = project.findProperty("MODRINTH_TOKEN") ?: System.getenv("MODRINTH_TOKEN") if (MODRINTH_TOKEN != null) { modrinth { token = MODRINTH_TOKEN id = rootProject.modrinth_id version = "$project.version-$project.name" gameVersions.addAll project.minecraft_version if (project.supported_versions != "") gameVersions.addAll project.supported_versions } } } }