import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("fabric-loom") kotlin("jvm") } base.archivesName = project.extra["archives_base_name"] as String version = project.extra["mod_version"] as String group = project.extra["maven_group"] as String sourceSets.main { java.srcDirs("src/main/generatedJava") } repositories { maven("https://maven.wispforest.io/releases/") } dependencies { minecraft("com.mojang", "minecraft", project.extra["minecraft_version"] as String) mappings("net.fabricmc", "yarn", project.extra["yarn_mappings"] as String, null, "v2") modImplementation("net.fabricmc", "fabric-loader", project.extra["loader_version"] as String) modImplementation("net.fabricmc.fabric-api", "fabric-api", project.extra["fabric_version"] as String) modImplementation("net.fabricmc", "fabric-language-kotlin", project.extra["fabric_language_kotlin_version"] as String) annotationProcessor(modImplementation("io.wispforest", "owo-lib", project.extra["owo_version"] as String)) include("io.wispforest", "owo-sentinel", project.extra["owo_version"] as String) } tasks { val javaVersion = JavaVersion.toVersion((project.extra["java_version"] as String).toInt()) withType().configureEach { options.encoding = "UTF-8" sourceCompatibility = javaVersion.toString() targetCompatibility = javaVersion.toString() options.release = javaVersion.toString().toInt() } withType().configureEach { defaultCharacterEncoding = "UTF-8" } withType().configureEach { options.encoding = "UTF-8" } withType().configureEach { defaultCharacterEncoding = "UTF-8" } withType().configureEach { compilerOptions.jvmTarget = JvmTarget.valueOf("JVM_$javaVersion") } compileJava { options.generatedSourceOutputDirectory.set(file("$projectDir/src/main/generatedJava/com/smushytaco/solar_apocalypse/configuration_support")) } jar { from("LICENSE") { rename { "${it}_${base.archivesName.get()}" } } } processResources { filesMatching("fabric.mod.json") { expand(mutableMapOf("version" to project.extra["mod_version"] as String, "fabricloader" to project.extra["loader_version"] as String, "fabric_api" to project.extra["fabric_version"] as String, "fabric_language_kotlin" to project.extra["fabric_language_kotlin_version"] as String, "minecraft" to project.extra["minecraft_version"] as String, "java" to project.extra["java_version"] as String)) } filesMatching("*.mixins.json") { expand(mutableMapOf("java" to project.extra["java_version"] as String)) } } java { toolchain.languageVersion = JavaLanguageVersion.of(javaVersion.toString()) sourceCompatibility = javaVersion targetCompatibility = javaVersion withSourcesJar() } val sourcesJar by getting(Jar::class) { dependsOn(compileJava) } }