9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-19 15:09:15 +00:00
Files
craft-engine/client-mod/build.gradle.kts
2025-05-12 22:57:29 +08:00

109 lines
3.3 KiB
Plaintext

plugins {
id("fabric-loom") version "1.10-SNAPSHOT"
id("com.gradleup.shadow") version "9.0.0-beta13"
}
version = property("project_version")!!
group = property("project_group")!!
val project_version: String by project
val latest_minecraft_version: String by project
val loader_version: String by project
var modmenu_version = property("modmenu_version")
var cloth_version = property("cloth_version")
base {
archivesName.set("craft-engine-fabric-mod")
}
sourceSets {
create("client") {
compileClasspath += sourceSets.main.get().compileClasspath
runtimeClasspath += sourceSets.main.get().runtimeClasspath
}
main {
compileClasspath += sourceSets["client"].output
runtimeClasspath += sourceSets["client"].output
output.dir(sourceSets["client"].output)
}
}
tasks.shadowJar {
relocate("org.yaml", "net.momirealms.craftengine.libraries.org.yaml")
configurations = listOf(project.configurations.getByName("shadow"))
archiveFileName.set("${base.archivesName.get()}-${project.version}-shadow.jar")
from(sourceSets.main.get().output)
from(sourceSets["client"].output)
}
tasks.remapJar {
dependsOn(tasks.shadowJar)
inputFile.set(tasks.shadowJar.get().archiveFile)
destinationDirectory.set(file("$rootDir/target"))
archiveFileName.set("${base.archivesName.get()}-${project.version}+mc${rootProject.properties["latest_minecraft_version"]}.jar")
}
loom {
mods {
create("craft-engine-fabric-mod") {
sourceSet(sourceSets.main.get())
sourceSet(sourceSets["client"])
}
}
}
repositories {
maven("https://maven.shedaniel.me/")
maven("https://maven.terraformersmc.com/releases/")
}
dependencies {
minecraft("com.mojang:minecraft:${property("latest_minecraft_version")}")
mappings("net.fabricmc:yarn:${property("yarn_mappings")}:v2")
modImplementation("net.fabricmc:fabric-loader:${property("loader_version")}")
modImplementation("net.fabricmc.fabric-api:fabric-api:${property("fabric_version")}")
modApi("me.shedaniel.cloth:cloth-config-fabric:${property("cloth_version")}")
modApi("com.terraformersmc:modmenu:${property("modmenu_version")}")
add("shadow", "org.yaml:snakeyaml:2.4")
}
tasks.processResources {
inputs.property("version", project_version)
inputs.property("minecraft_version", latest_minecraft_version)
inputs.property("loader_version", loader_version)
filteringCharset = "UTF-8"
filesMatching("fabric.mod.json") {
expand(
"version" to project_version,
"minecraft_version" to latest_minecraft_version,
"loader_version" to loader_version,
"modmenu_version" to modmenu_version,
"cloth_version" to cloth_version
)
}
}
val targetJavaVersion = 21
tasks.withType<JavaCompile>().configureEach {
options.encoding = "UTF-8"
if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible) {
options.release.set(targetJavaVersion)
}
}
java {
val javaVersion = JavaVersion.toVersion(targetJavaVersion)
if (JavaVersion.current() < javaVersion) {
toolchain {
languageVersion.set(JavaLanguageVersion.of(targetJavaVersion))
}
}
withSourcesJar()
}
tasks.build {
dependsOn(tasks.clean)
dependsOn(tasks.shadowJar)
}