plugins { id("fabric-loom") val kotlinVersion: String by System.getProperties() kotlin("jvm").version(kotlinVersion) } base { val archivesBaseName: String by project archivesName.set(archivesBaseName) } val modVersion: String by project version = modVersion val mavenGroup: String by project group = mavenGroup minecraft {} repositories {} dependencies { val minecraftVersion: String by project minecraft("com.mojang:minecraft:$minecraftVersion") val yarnMappings: String by project mappings("net.fabricmc:yarn:$yarnMappings:v2") val loaderVersion: String by project modImplementation("net.fabricmc:fabric-loader:$loaderVersion") val fabricVersion: String by project modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricVersion") val fabricKotlinVersion: String by project modImplementation("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion") val imguiVersion = "1.86.2" implementation("io.github.spair:imgui-java-binding:$imguiVersion") implementation("io.github.spair:imgui-java-lwjgl3:$imguiVersion") { exclude(group = "org.lwjgl") } implementation("io.github.spair:imgui-java-natives-windows-ft:$imguiVersion") } tasks { val javaVersion = JavaVersion.VERSION_17 withType { options.encoding = "UTF-8" sourceCompatibility = javaVersion.toString() targetCompatibility = javaVersion.toString() options.release.set(javaVersion.toString().toInt()) } withType { kotlinOptions { jvmTarget = javaVersion.toString() } sourceCompatibility = javaVersion.toString() targetCompatibility = javaVersion.toString() } jar { from("LICENSE") { rename { "${it}_${base.archivesName}" } } } processResources { inputs.property("version", project.version) filesMatching("fabric.mod.json") { expand(mutableMapOf("version" to project.version)) } } java { toolchain { languageVersion.set(JavaLanguageVersion.of(javaVersion.toString())) } sourceCompatibility = javaVersion targetCompatibility = javaVersion withSourcesJar() } }