aboutsummaryrefslogtreecommitdiff
path: root/build.gradle.kts
diff options
context:
space:
mode:
authorappable <enzospiacitelli@gmail.com>2022-10-11 14:32:32 -0700
committerappable <enzospiacitelli@gmail.com>2022-10-11 14:32:32 -0700
commit363b2426f8d9e45e52c472750c798dcaceb05a88 (patch)
treed50c71d73f4333253ef28f5e53c1a148fc7f8ab5 /build.gradle.kts
downloadAmbientAddons-363b2426f8d9e45e52c472750c798dcaceb05a88.tar.gz
AmbientAddons-363b2426f8d9e45e52c472750c798dcaceb05a88.tar.bz2
AmbientAddons-363b2426f8d9e45e52c472750c798dcaceb05a88.zip
Initial commit
Diffstat (limited to 'build.gradle.kts')
-rw-r--r--build.gradle.kts122
1 files changed, 122 insertions, 0 deletions
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 0000000..e7e5284
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,122 @@
+
+plugins {
+ kotlin("jvm") version "1.7.10"
+
+ // For serialization: remove if not needed
+ kotlin("plugin.serialization") version "1.7.10"
+
+ 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"
+}
+
+group = "ExampleMod"
+version = "1.0"
+
+java {
+ toolchain.languageVersion.set(JavaLanguageVersion.of(8))
+}
+
+kotlin {
+ jvmToolchain {
+ languageVersion.set(JavaLanguageVersion.of(8))
+ }
+}
+
+loom {
+ launchConfigs {
+ "client" {
+ property("mixin.debug", "true")
+ property("asmhelper.verbose", "true")
+ arg("--tweakClass", "org.spongepowered.asm.launch.MixinTweaker")
+ arg("--mixin", "mixins.examplemods.json")
+ }
+ }
+ forge {
+ pack200Provider.set(dev.architectury.pack200.java.Pack200Adapter())
+ mixinConfig("mixins.examplemod.json")
+ }
+ mixin {
+ defaultRefmapName.set("mixins.examplemod.refmap.json")
+ }
+}
+
+sourceSets.main {
+ output.setResourcesDir(file("$buildDir/classes/java/main"))
+}
+
+repositories {
+ mavenCentral()
+ maven("https://repo.spongepowered.org/maven/")
+ maven("https://repo.sk1er.club/repository/maven-public")
+}
+
+val shadowImpl: Configuration by configurations.creating {
+ configurations.implementation.get().extendsFrom(this)
+}
+
+dependencies {
+ // For serialization: remove if not needed
+ implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.0")
+
+ 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")
+
+ shadowImpl("org.spongepowered:mixin:0.7.11-SNAPSHOT") { isTransitive = false }
+ annotationProcessor("org.spongepowered:mixin:0.8.4-SNAPSHOT")
+
+ shadowImpl("gg.essential:loader-launchwrapper:1.1.3")
+ implementation("gg.essential:essential-1.8.9-forge:3662")
+}
+
+tasks {
+ processResources {
+ filesMatching("mcmod.info") {
+ expand(
+ mapOf(
+ "modname" to project.name,
+ "modid" to project.name.toLowerCase(),
+ "version" to project.version,
+ "mcversion" to "1.8.9"
+ )
+ )
+ }
+ }
+}
+
+tasks.withType(JavaCompile::class) {
+ options.encoding = "UTF-8"
+}
+
+tasks.withType(Jar::class) {
+ manifest.attributes.run {
+ this["FMLCorePluginContainsFMLMod"] = "true"
+ this["ForceLoadAsMod"] = "true"
+
+ this["MixinConfigs"] = "mixins.examplemod.json"
+
+ this["TweakClass"] = "gg.essential.loader.stage0.EssentialSetupTweaker"
+ this["TweakOrder"] = "0"
+ }
+}
+
+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}")
+ }
+ }
+}
+
+tasks.assemble.get().dependsOn(tasks.remapJar) \ No newline at end of file