aboutsummaryrefslogtreecommitdiff
path: root/build.gradle.kts
diff options
context:
space:
mode:
authorLorenz <lo.scherf@gmail.com>2022-08-14 20:29:20 +0200
committerLorenz <lo.scherf@gmail.com>2022-08-14 20:29:20 +0200
commit4a189d1302d7295b7e1e6ad1fa5f9a296add3757 (patch)
treeb75a230cf5a74a92d3cd50d3bdf6a7323ab379b1 /build.gradle.kts
parent2b786f4997136509da9efda4e12af57b579fe62b (diff)
downloadskyhanni-4a189d1302d7295b7e1e6ad1fa5f9a296add3757.tar.gz
skyhanni-4a189d1302d7295b7e1e6ad1fa5f9a296add3757.tar.bz2
skyhanni-4a189d1302d7295b7e1e6ad1fa5f9a296add3757.zip
Using Architectury Loom based template (thanks romangraef for Forge1.8.9Template)
Diffstat (limited to 'build.gradle.kts')
-rw-r--r--build.gradle.kts123
1 files changed, 123 insertions, 0 deletions
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 000000000..8528219c8
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,123 @@
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
+plugins {
+ idea
+ java
+ id("gg.essential.loom") version "0.10.0.+"
+ id("dev.architectury.architectury-pack200") version "0.1.3"
+ id("com.github.johnrengelman.shadow") version "7.1.2"
+ kotlin("jvm") version "1.7.20-Beta"
+}
+
+group = "at.hannibal2.skyhanni"
+version = "0.2"
+
+// Toolchains:
+java {
+ toolchain.languageVersion.set(JavaLanguageVersion.of(8))
+}
+
+// Minecraft configuration:
+loom {
+ launchConfigs {
+ "client" {
+ // If you don't want mixins, remove these lines
+ property("mixin.debug", "true")
+ property("asmhelper.verbose", "true")
+ arg("--tweakClass", "org.spongepowered.asm.launch.MixinTweaker")
+ arg("--mixin", "mixins.skyhanni.json")
+ }
+ }
+ forge {
+ pack200Provider.set(dev.architectury.pack200.java.Pack200Adapter())
+ // If you don't want mixins, remove this lines
+ mixinConfig("mixins.skyhanni.json")
+ }
+ // If you don't want mixins, remove these lines
+ mixin {
+ defaultRefmapName.set("mixins.skyhanni.refmap.json")
+ }
+}
+
+sourceSets.main {
+ output.setResourcesDir(file("$buildDir/classes/kotlin/main"))
+}
+
+// Dependencies:
+
+repositories {
+ mavenCentral()
+ maven("https://repo.spongepowered.org/maven/")
+ // If you don't want to log in with your real minecraft account, remove this line
+ maven("https://pkgs.dev.azure.com/djtheredstoner/DevAuth/_packaging/public/maven/v1")
+}
+
+val shadowImpl by configurations.creating {
+ configurations.implementation.get().extendsFrom(this)
+}
+
+dependencies {
+ minecraft("com.mojang:minecraft:1.8.9")
+ mappings("de.oceanlabs.mcp:mcp_stable:22-1.8.9")
+ forge("net.minecraftforge:forge:1.8.9-11.15.1.2318-1.8.9")
+
+ // If you don't want mixins, remove these lines
+ shadowImpl("org.spongepowered:mixin:0.7.11-SNAPSHOT") {
+ isTransitive = false
+ }
+ annotationProcessor("org.spongepowered:mixin:0.8.4-SNAPSHOT")
+
+ // If you don't want to log in with your real minecraft account, remove this line
+ modRuntimeOnly("me.djtheredstoner:DevAuth-forge-legacy:1.1.0")
+ implementation(kotlin("stdlib-jdk8"))
+
+}
+
+// Tasks:
+
+tasks.withType(JavaCompile::class) {
+ options.encoding = "UTF-8"
+}
+
+tasks.withType(Jar::class) {
+ archiveBaseName.set("SkyHanni")
+ manifest.attributes.run {
+ this["FMLCorePluginContainsFMLMod"] = "true"
+ this["ForceLoadAsMod"] = "true"
+
+ // If you don't want mixins, remove these lines
+ this["TweakClass"] = "org.spongepowered.asm.launch.MixinTweaker"
+ this["MixinConfigs"] = "mixins.skyhanni.json"
+ }
+}
+
+
+val remapJar by tasks.named<net.fabricmc.loom.task.RemapJarTask>("remapJar") {
+ archiveClassifier.set("all")
+ from(tasks.shadowJar)
+ input.set(tasks.shadowJar.get().archiveFile)
+}
+
+tasks.shadowJar {
+ archiveClassifier.set("all-dev")
+ configurations = listOf(shadowImpl)
+ doLast {
+ configurations.forEach {
+ println("Config: ${it.files}")
+ }
+ }
+
+ // If you want to include other dependencies and shadow them, you can relocate them in here
+// fun relocate(name: String) = relocate(name, "com.examplemod.deps.$name")
+}
+
+tasks.assemble.get().dependsOn(tasks.remapJar)
+
+val compileKotlin: KotlinCompile by tasks
+compileKotlin.kotlinOptions {
+ jvmTarget = "1.8"
+}
+val compileTestKotlin: KotlinCompile by tasks
+compileTestKotlin.kotlinOptions {
+ jvmTarget = "1.8"
+} \ No newline at end of file