From d643a44c866504a642f9de0055417a82585d96e5 Mon Sep 17 00:00:00 2001 From: Xander Date: Tue, 30 Aug 2022 16:53:16 +0100 Subject: Initial commit --- build.gradle.kts | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 build.gradle.kts (limited to 'build.gradle.kts') diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..db614c7 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,159 @@ +plugins { + java + + id("fabric-loom") version "1.0.+" + id("io.github.juuxel.loom-quiltflower") version "1.7.+" + + id("com.modrinth.minotaur") version "2.4.+" + id("me.hypherionmc.cursegradle") version "2.+" + id("com.github.breadmoirai.github-release") version "2.+" + id("io.github.p03w.machete") version "1.+" + `maven-publish` +} + +group = "dev.isxander" +version = "1.0.0" + +repositories { + mavenCentral() +} + +val minecraftVersion: String by project +val fabricLoaderVersion: String by project + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings("net.fabricmc:yarn:$minecraftVersion+build.+:v2") + + modImplementation("net.fabricmc:fabric-loader:$fabricLoaderVersion") +} + +tasks { + processResources { + val modId: String by project + val modName: String by project + val modDescription: String by project + val githubProject: String by project + + inputs.property("id", modId) + inputs.property("group", project.group) + inputs.property("name", modName) + inputs.property("description", modDescription) + inputs.property("version", project.version) + inputs.property("github", githubProject) + + filesMatching(listOf("fabric.mod.json", "quilt.mod.json")) { + expand( + "id" to modId, + "group" to project.group, + "name" to modName, + "description" to modDescription, + "version" to project.version, + "github" to githubProject, + ) + } + } + + remapJar { + archiveClassifier.set("fabric-$minecraftVersion") + } + + remapSourcesJar { + archiveClassifier.set("fabric-$minecraftVersion-sources") + } + + register("releaseMod") { + group = "mod" + + dependsOn("modrinth") + dependsOn("modrinthSyncBody") + dependsOn("curseforge") + dependsOn("publish") + dependsOn("githubRelease") + } +} + +java { + withSourcesJar() +} + +val changelogText = file("changelogs/${project.version}.md").takeIf { it.exists() }?.readText() ?: "No changelog provided." + +val modrinthId: String by project +if (modrinthId.isNotEmpty()) { + modrinth { + token.set(findProperty("modrinth.token")?.toString()) + projectId.set(modrinthId) + versionNumber.set("${project.version}") + versionType.set("release") + uploadFile.set(tasks["remapJar"]) + gameVersions.set(listOf("1.19", "1.19.1", "1.19.2")) + loaders.set(listOf("fabric", "quilt")) + changelog.set(changelogText) + syncBodyFrom.set(file("README.md").readText()) + } +} + +val curseforgeId: String by project +if (hasProperty("curseforge.token") && curseforgeId.isNotEmpty()) { + curseforge { + apiKey = findProperty("curseforge.token") + project(closureOf { + mainArtifact(tasks["remapJar"], closureOf { + displayName = "${project.version}" + }) + + id = curseforgeId + releaseType = "release" + addGameVersion("1.19") + addGameVersion("1.19.1") + addGameVersion("1.19.2") + addGameVersion("Fabric") + addGameVersion("Java 17") + + changelog = changelogText + changelogType = "markdown" + }) + + options(closureOf { + forgeGradleIntegration = false + }) + } +} + +githubRelease { + token(findProperty("github.token")?.toString()) + + val githubProject: String by project + val split = githubProject.split("/") + owner(split[0]) + repo(split[1]) + tagName("${project.version}") + targetCommitish("1.19") + body(changelogText) + releaseAssets(tasks["remapJar"].outputs.files) +} + +publishing { + publications { + create("mod") { + groupId = group.toString() + artifactId = base.archivesName.get() + + from(components["java"]) + } + } + + repositories { + if (hasProperty("xander-repo.username") && hasProperty("xander-repo.password")) { + maven(url = "https://maven.isxander.dev/releases") { + credentials { + username = property("xander-repo.username")?.toString() + password = property("xander-repo.password")?.toString() + } + } + } else { + println("Xander Maven credentials not satisfied.") + } + } +} -- cgit