From 363b2426f8d9e45e52c472750c798dcaceb05a88 Mon Sep 17 00:00:00 2001 From: appable Date: Tue, 11 Oct 2022 14:32:32 -0700 Subject: Initial commit --- build.gradle.kts | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 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..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("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 -- cgit