import java.text.SimpleDateFormat buildscript { configurations.classpath { resolutionStrategy.cacheChangingModulesFor 0, 'seconds' } } plugins { id "architectury-plugin" version "3.4-SNAPSHOT" id "dev.architectury.loom" version "0.12.0-SNAPSHOT" apply false id "org.cadixdev.licenser" version "0.6.1" id "com.matthewprenger.cursegradle" version "1.4.0" apply false id "com.modrinth.minotaur" version "2.2.0" apply false id "maven-publish" } architectury { minecraft = rootProject.minecraft_version } subprojects { apply plugin: "dev.architectury.loom" loom { silentMojangMappingsLicense() } dependencies { minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}" mappings loom.officialMojangMappings() } } allprojects { apply plugin: "java" apply plugin: "architectury-plugin" apply plugin: "org.cadixdev.licenser" ext { isSnapshot = System.getenv("PR_NUM") != null } def runNumber = (System.getenv("GITHUB_RUN_NUMBER") == null ? "9999" : System.getenv("GITHUB_RUN_NUMBER")) if (!ext.isSnapshot) { version = rootProject.base_version + "." + runNumber archivesBaseName = rootProject.archives_base_name } else { version = rootProject.base_version + "-PR." + System.getenv("PR_NUM") + "." + runNumber archivesBaseName = rootProject.archives_base_name_snapshot } group = rootProject.maven_group tasks.withType(JavaCompile) { options.encoding = "UTF-8" // The Minecraft launcher currently installs Java 8 for users, so your mod probably wants to target Java 8 too // JDK 9 introduced a new way of specifying this that will make sure no newer classes or methods are used. // We'll use that if it's available, but otherwise we'll use the older option. def targetVersion = 8 if (JavaVersion.current().isJava9Compatible()) { options.release = targetVersion } } javadoc { // Architectury's common javadoc has references to platform code, which cannot be resolved normally. // Let's just skip the errors! failOnError = false } license { header = rootProject.file("HEADER") ext { name = "architectury" year = "2020, 2021, 2022" } include "**/*.java" exclude "**/NbtType.java" ignoreFailures = true } ext { releaseChangelog = { def dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm") dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")) def branch if (System.env.BRANCH_NAME) { branch = System.env.BRANCH_NAME branch = branch.substring(branch.lastIndexOf("/") + 1) } else { branch = "git rev-parse --abbrev-ref HEAD".execute().in.text.trim() } if (branch == "HEAD") { branch = "git rev-parse --short HEAD".execute().in.text.trim() } def time = dateFormat.format(new Date()) def changes = new StringBuilder() changes << "

Architectury v$project.version for $project.supported_version

Updated at $time.
Click here for changelog" def proc = "git log --max-count=200 --pretty=format:%s".execute() proc.in.eachLine { line -> def processedLine = line.toString() if (!processedLine.contains("New translations") && !processedLine.contains("Merge") && !processedLine.contains("branch")) { changes << "
- ${processedLine.capitalize()}" } } proc.waitFor() return changes.toString() } } java { withSourcesJar() } } task licenseFormatAll subprojects { p -> licenseFormatAll.dependsOn("${p.path}:licenseFormat") }