From 91f9f51a5fd6d33c0fdbc0966a44db4f86e902ba Mon Sep 17 00:00:00 2001 From: Harley Date: Wed, 19 Jul 2023 20:33:13 +0100 Subject: [PATCH] Add auto update tool --- build.gradle.kts | 54 +++++++++++++++++++++++++++++++---------------- gradle.properties | 4 +++- 2 files changed, 39 insertions(+), 19 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index f8b8fc99..49fcf433 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,6 +7,7 @@ import java.time.Instant import java.time.format.DateTimeFormatter fun property(key: String) = project.findProperty(key).toString() +fun optionalProperty(key: String) = project.findProperty(key)?.toString() apply(from = "https://gist.githubusercontent.com/Harleyoc1/4d23d4e991e868d98d548ac55832381e/raw/applesiliconfg.gradle") @@ -17,6 +18,7 @@ plugins { id("idea") id("maven-publish") id("com.matthewprenger.cursegradle") version "1.4.0" + id("com.harleyoconnor.autoupdatetool") version "1.0.5" } repositories { @@ -77,6 +79,7 @@ minecraft { sourceSets.main.get().resources { srcDir("src/generated/resources") + srcDir("src/localization/resources") } dependencies { @@ -116,36 +119,51 @@ java { } } +val changelogFile = file("build/changelog.txt") curseforge { - if (project.hasProperty("curseApiKey") && project.hasProperty("curseFileType")) { - apiKey = property("curseApiKey") + if (!project.hasProperty("curseApiKey")) { + project.logger.warn("API Key for CurseForge not detected; uploading will be disabled.") + return@curseforge + } + + apiKey = property("curseApiKey") - project { - id = "289529" + project { + id = "289529" - addGameVersion(mcVersion) + addGameVersion(mcVersion) - changelog = file("build/changelog.txt") - changelogType = "markdown" - releaseType = property("curseFileType") + changelog = changelogFile + changelogType = "markdown" + releaseType = optionalProperty("versionType") ?: "release" - addArtifact(tasks.findByName("sourcesJar")) + addArtifact(tasks.findByName("sourcesJar")) - mainArtifact(tasks.findByName("jar")) { - relations { - requiredDependency("dynamictrees") - requiredDependency("biomes-o-plenty") - optionalDependency("dynamictreesplus") - optionalDependency("chunk-saving-fix") - } + mainArtifact(tasks.findByName("jar")) { + relations { + requiredDependency("dynamictrees") + requiredDependency("biomes-o-plenty") + optionalDependency("dynamictreesplus") } } - } else { - project.logger.log(LogLevel.WARN, "API Key and file type for CurseForge not detected; uploading will be disabled.") } } +val minecraftVersion = mcVersion + +autoUpdateTool { + mcVersion.set(minecraftVersion) + version.set(modVersion) + versionRecommended.set(property("versionRecommended") == "true") + changelogOutputFile.set(changelogFile) + updateCheckerFile.set(file(property("dynamictrees.version_info_repo.path") + File.separatorChar + property("updateCheckerPath"))) +} + +tasks.autoUpdate { + finalizedBy("curseforge") +} + tasks.withType { enabled = false } diff --git a/gradle.properties b/gradle.properties index b0a07f74..4bbe4af9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,9 @@ jeiVersion=9.7.1.255 ccVersion=1.100.10 suggestionProviderFixVersion=1.0.0 -curseFileType=release +versionType=release +versionRecommended=true +updateCheckerPath=Add-ons/BOP.json org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false \ No newline at end of file