import java.time.LocalDateTime import java.time.format.DateTimeFormatter import org.gradle.jvm.toolchain.JavaLanguageVersion plugins { id("dev.isxander.modstitch.base") version "0.8.5" id("com.modrinth.minotaur") version "2.+" } repositories { mavenCentral() maven("https://maven.fabricmc.net/") maven("https://api.modrinth.com/maven") maven("https://maven.terraformersmc.com/releases/") maven("https://jitpack.io") } val minecraft = findProperty("deps.minecraft")?.toString() ?: error("deps.minecraft must be set by the active Stonecutter target (see versions/*/gradle.properties).") val javaLanguageVersion = when (minecraft) { "1.21.10", "1.21.11" -> 21 "26.1.2" -> 25 else -> error("Add Java toolchain mapping for Minecraft $minecraft in build.gradle.kts.") } java { toolchain { languageVersion.set(JavaLanguageVersion.of(javaLanguageVersion)) } } val rawModVersion = findProperty("mod_version")?.toString() ?: error("mod_version") val modReleaseVersion = if (rawModVersion.endsWith("-dev")) { "$rawModVersion.${DateTimeFormatter.ofPattern("yyyyMMdd.HHmmss").format(LocalDateTime.now())}" } else { rawModVersion } modstitch { minecraftVersion = minecraft metadata { modId = findProperty("mod_id")?.toString() ?: error("mod_id") modName = findProperty("mod_name")?.toString() ?: error("mod_name") modVersion = modReleaseVersion modGroup = findProperty("mod_group")?.toString() ?: error("mod_group") modAuthor = findProperty("author")?.toString() ?: error("author") replacementProperties.put("mod_author", findProperty("author")?.toString() ?: error("author")) replacementProperties.put("mod_issue_tracker", "https://github.com/sebseb7/autotrade-fabric/issues") replacementProperties.put("mod_sources", "https://github.com/sebseb7/autotrade-fabric") replacementProperties.put("mod_homepage", "https://modrinth.com/mod/autotrade-fabric") replacementProperties.put("malilib_version", findProperty("malilib_version")?.toString() ?: error("malilib_version")) replacementProperties.put( "fabric_api_dependency", when (minecraft) { "26.1.2" -> ">=0.145.0" "1.21.11" -> ">=0.140.0" "1.21.10" -> ">=0.136.0" else -> error("fabric_api_dependency mapping for $minecraft") }, ) replacementProperties.put( "minecraft_dependency", ">=" + (findProperty("minecraft_version_min")?.toString() ?: minecraft), ) } loom { fabricLoaderVersion = findProperty("fabric_loader_version")?.toString() ?: error("fabric_loader_version") configureLoom { } } } val loader = project.name.substringAfterLast("-") stonecutter { consts( "fabric" to loader.equals("fabric", ignoreCase = true), "neoforge" to loader.equals("neoforge", ignoreCase = true), "forge" to loader.equals("forge", ignoreCase = true), "vanilla" to loader.equals("vanilla", ignoreCase = true), "mc26" to (minecraft == "26.1.2"), // TraderHighlightRenderer: MC 26 uses Fabric LevelRenderEvents; 1.21.x uses WorldRenderEvents (v1.world). "traderWireframeRender" to (minecraft == "26.1.2" || minecraft == "1.21.11" || minecraft == "1.21.10"), "traderWireframeMc26" to (minecraft == "26.1.2"), "traderWireframe121" to (minecraft == "1.21.10" || minecraft == "1.21.11"), "traderWireframe12110" to (minecraft == "1.21.10"), "traderWireframe12111" to (minecraft == "1.21.11"), "npcSplit" to (minecraft == "26.1.2" || minecraft == "1.21.11"), "npcFlat" to (minecraft == "1.21.10"), ) } dependencies { val fabricApi = findProperty("fabric_api_version")?.toString() ?: error("fabric_api_version") val malilib = findProperty("malilib_version")?.toString() ?: error("malilib_version") val modMenu = findProperty("mod_menu_version")?.toString() ?: error("mod_menu_version") modstitchModImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApi") modstitchModImplementation("maven.modrinth:malilib:$malilib") modstitchModCompileOnly("com.terraformersmc:modmenu:$modMenu") } group = findProperty("mod_group")?.toString() ?: error("mod_group") base { archivesName.set("${findProperty("mod_file_name")}-$minecraft") } version = modReleaseVersion tasks.withType().configureEach { options.encoding = "UTF-8" } modrinth { token.set(System.getenv("MODRINTH_TOKEN")) syncBodyFrom.set(rootProject.file("README.md").readText()) projectId.set("C1naQCmt") uploadFile.set(tasks.jar) gameVersions.addAll(listOf("26.1.2", "1.21.10", "1.21.11")) loaders.add("fabric") }