import java.nio.file.Files plugins { id 'fabric-loom' version '0.12-SNAPSHOT' apply false id 'io.shcm.shsupercm.fabric.fletchingtable' version '1.5' apply false id 'com.modrinth.minotaur' version '2.+' apply false id 'com.matthewprenger.cursegradle' version '1.4.0' apply false } allprojects { apply plugin: "fabric-loom" apply plugin: "io.shcm.shsupercm.fabric.fletchingtable" version = project.mod_version + "+" + project.minecraft_version group = project.maven_group repositories { maven { url "https://maven.shedaniel.me/" } maven { url "https://maven.terraformersmc.com/releases" } maven { url "https://cursemaven.com" } } dependencies { minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" fletchingTable.fungible project.fungible modImplementation fabricApi.module("fabric-api-base", "${project.fabric_api}") modImplementation fabricApi.module("fabric-resource-loader-v0", "${project.fabric_api}") modImplementation fabricApi.module("fabric-command-api-v2", "${project.fabric_api}") modCompileOnly("com.terraformersmc:modmenu:${project.modmenu}") { exclude(group: "net.fabricmc.fabric-api") } modCompileOnly("me.shedaniel.cloth:cloth-config-fabric:${project.cloth}") { exclude(group: "net.fabricmc.fabric-api") } } fletchingTable { defaultMixinEnvironment = "auto" } processResources { inputs.property "version", rootProject.version filteringCharset "UTF-8" filesMatching("fabric.mod.json") { expand "version": rootProject.version } } sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 java { archivesBaseName = project.archives_base_name } jar { archiveClassifier.set "dev" from("LICENSE") { rename { "${it}_${project.archivesBaseName}" } } } loom { shareRemapCaches = true } } apply plugin: 'com.modrinth.minotaur' apply plugin: 'com.matthewprenger.cursegradle' loom { accessWidenerPath = file("src/main/resources/citresewn.accesswidener") } dependencies { afterEvaluate { include project("defaults:") } } java { withSourcesJar() } modrinth { token = TOKEN_MODRINTH projectId = "otVJckYQ" uploadFile = remapJar changelog = Files.readString(projectDir.toPath().resolve("Changelog.md")) versionNumber = version versionName = "v" + version additionalFiles = [ sourcesJar.outputs.getFiles().singleFile ] gameVersions = Arrays.asList(project.publish_minecraft_versions.split(",")) } curseforge { apiKey = TOKEN_CURSEFORGE project { id = '521427' changelogType = 'markdown' changelog = file('Changelog.md') releaseType = 'release' mainArtifact(remapJar) { displayName = "v" + version } addGameVersion 'Fabric' for (String version : project.publish_minecraft_versions.split(",")) addGameVersion version } options { forgeGradleIntegration = false } } task publishVersion { dependsOn 'remapJar', 'curseforge', 'modrinth', ':defaults:modrinth' tasks.getByName("curseforge").mustRunAfter("remapJar") tasks.getByName("modrinth").mustRunAfter("remapJar") }