// this whole shit is required because you can't have non-mods be // loaded on the GAME layer in Minecraft Forge, and hence, // Kommons can not see Kotlin at runtime (because Kommons being // loaded with system classloader, while Kotlin is loaded by // FML classloader). plugins { kotlin("jvm") id("net.minecraftforge.gradle").version("[6.0.14,6.2)") `maven-publish` } repositories { mavenCentral() } dependencies { minecraft("net.minecraftforge:forge:1.20.2-48.1.0") testImplementation("org.jetbrains.kotlin:kotlin-test") implementation(project(":")) { setTransitive(false) } implementation(project(":gson")) { setTransitive(false) } implementation(project(":guava")) { setTransitive(false) } } tasks.jar { dependsOn(":jar") dependsOn(":gson:jar") dependsOn(":guava:jar") from(zipTree(project(":").tasks.jar.get().outputs.files.asPath)) from(zipTree(project(":gson").tasks.jar.get().outputs.files.asPath)) from(zipTree(project(":guava").tasks.jar.get().outputs.files.asPath)) } minecraft { mappings("official", "1.20.2") } val projectVersion: String by project publishing { publications { create("mavenJava") { from(components["java"]) artifact(tasks["sourceJar"]) artifactId = "kommons-mc" pom { dependencies { } } } } } tasks.withType(ProcessResources::class.java) { val replaceProperties = mapOf("mod_version" to projectVersion) inputs.properties(replaceProperties) filesMatching(arrayListOf("META-INF/mods.toml")) { expand(replaceProperties) } }