import groovy.json.JsonSlurper import groovy.json.JsonOutput plugins { id "architectury-plugin" version "3.4-SNAPSHOT" id "dev.architectury.loom" version "1.7-SNAPSHOT" apply false id "me.shedaniel.unified-publishing" version "0.1.+" apply false id 'com.github.johnrengelman.shadow' version '8.1.1' apply false } architectury { minecraft = rootProject.minecraft_version } subprojects { apply plugin: "dev.architectury.loom" repositories { maven { url = "https://api.modrinth.com/maven" } maven { url "https://maven.terraformersmc.com/releases" } maven { name = 'AperLambda' url = 'https://aperlambda.github.io/maven' } mavenCentral() maven { name 'Gegy' url 'https://maven.gegy.dev' } maven { url "https://www.cursemaven.com" content { includeGroup "curse.maven" } } maven { name = 'JitPack' url 'https://jitpack.io' } maven { url "https://maven.shedaniel.me/" } maven { url "https://maven.quiltmc.org/repository/release/" } } dependencies { minecraft "com.mojang:minecraft:${rootProject.minecraft_version}" // The following line declares the yarn mappings you may select this one as well. mappings loom.layered { it.mappings("net.fabricmc:yarn:$rootProject.yarn_mappings:v2") it.mappings("dev.architectury:yarn-mappings-patch-neoforge:$rootProject.yarn_mappings_patch_neoforge_version") } modCompileOnlyApi ("maven.modrinth:cull-leaves:${project.cull_leaves_version}") modCompileOnlyApi ("maven.modrinth:iris:${project.iris_version}") modCompileOnly ("maven.modrinth:cit-resewn:${project.cit_resewn_version}") modCompileOnlyApi ("maven.modrinth:continuity:${project.continuity_version}") modCompileOnlyApi ("maven.modrinth:animatica:${project.animatica_version}") modCompileOnlyApi ("maven.modrinth:colormatic:${project.colormatic_version}") modCompileOnlyApi ("maven.modrinth:borderless-mining:${project.borderless_mining_version}") modCompileOnlyApi ("maven.modrinth:dynamic-fps:${project.dynamic_fps_version}") modCompileOnlyApi ("com.moandjiezana.toml:toml4j:${project.toml4j_version}") modCompileOnlyApi ("maven.modrinth:entitytexturefeatures:${project.etf_version}") modCompileOnlyApi ("maven.modrinth:entity-model-features:${project.emf_version}") modCompileOnlyApi ("maven.modrinth:completeconfig:${project.complete_config_version}") //modImplementation ("maven.modrinth:exordium:${project.exordium_version}") modCompileOnlyApi ("maven.modrinth:lambdynamiclights:${project.ldl_version}") modCompileOnly("dev.lambdaurora.lambdynamiclights:lambdynamiclights-api:${project.ldl_version}") modCompileOnlyApi ("maven.modrinth:lambdabettergrass:${project.lbg_version}") modCompileOnlyApi "dev.lambdaurora:spruceui:${project.spruceui_version}" } } allprojects { apply plugin: "java" apply plugin: "architectury-plugin" apply plugin: "maven-publish" archivesBaseName = rootProject.archives_base_name version = rootProject.mod_version group = rootProject.maven_group tasks.withType(JavaCompile) { options.encoding = "UTF-8" options.release = 21 } ext { releaseChangelog = { def changes = new StringBuilder() changes << "## Puzzle v$project.version for $project.minecraft_version\n[View the changelog](https://www.github.com/PuzzleMC/Puzzle/commits/)" def proc = "git log --max-count=1 --pretty=format:%s".execute() proc.in.eachLine { line -> def processedLine = line.toString() if (!processedLine.contains("New translations") && !processedLine.contains("Merge") && !processedLine.contains("branch")) { changes << "\n- ${processedLine.capitalize()}" } } proc.waitFor() return changes.toString() } } processResources { // Minify json resources doLast { fileTree(dir: outputs.files.asPath, include: "**/*.json").each { File file -> file.text = JsonOutput.toJson(new JsonSlurper().parse(file)) } } } java { withSourcesJar() } }