nageyqma·git
HTTPS https://git.nageyqma.icu/nageyqma/jeanaddons.git SSH git@git.nageyqma.icu:nageyqma/jeanaddons.git

HTTPS 链接可直接 git clone;推送代码请使用 SSH。

2.2 KB · 88 行raw
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
    id("net.fabricmc.fabric-loom")
    kotlin("jvm")
}

group = property("maven_group") as String
version = property("mod_version") as String

val archivesBaseName = property("archives_base_name") as String
val modVersion = property("mod_version") as String

base {
    archivesName.set(archivesBaseName)
}

repositories {
    mavenCentral()
}

dependencies {
    minecraft("com.mojang:minecraft:${property("minecraft_version")}")
    implementation("net.fabricmc:fabric-loader:${property("loader_version")}")
    implementation("net.fabricmc:fabric-language-kotlin:${property("fabric_kotlin_version")}")
    implementation("net.fabricmc.fabric-api:fabric-api:${property("fabric_api_version")}")
}

loom {
    runConfigs.named("client") {
        isIdeConfigGenerated = true
    }

    runConfigs.named("server") {
        isIdeConfigGenerated = false
    }
}

tasks {
    processResources {
        val expandedProperties = getProperties()
        filesMatching("fabric.mod.json") {
            expand(expandedProperties)
        }
    }

    compileKotlin {
        compilerOptions {
            jvmTarget = JvmTarget.JVM_25
        }
    }

    compileJava {
        sourceCompatibility = "25"
        targetCompatibility = "25"
        options.encoding = "UTF-8"
    }

    val copyJarToBin by registering(Copy::class) {
        description = "Copies the built mod jar into bin/."
        // No mappings in this build (Minecraft 26.x ships unobfuscated), so Loom
        // registers no remapJar and 'jar' itself is the final artifact.
        dependsOn("jar")
        from(layout.buildDirectory.dir("libs")) {
            include("$archivesBaseName-$modVersion.jar")
        }
        into(rootProject.file("bin"))
    }

    val syncDefaultConf by registering(Copy::class) {
        description = "Syncs the bundled default config template into conf/ for review."
        from("src/main/resources/assets/jeanaddons/default.conf") {
            rename { "jeanaddons.conf" }
        }
        into(rootProject.file("conf"))
    }

    named("build") {
        dependsOn(copyJarToBin, syncDefaultConf)
    }
}

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(25))
    }
}