123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- import com.blamejared.modtemplate.Utils
- import net.darkhax.curseforgegradle.TaskPublishCurseForge
- import net.darkhax.curseforgegradle.Constants as CFG_Constants
- plugins {
- `maven-publish`
- id("fabric-loom") version "0.12-SNAPSHOT"
- id("com.blamejared.modtemplate")
- id("net.darkhax.curseforgegradle") version ("1.0.8")
- }
- val modVersion: String by project
- val minecraftVersion: String by project
- val fabricLoaderVersion: String by project
- val fabricVersion: String by project
- val modName: String by project
- val modAuthor: String by project
- val modId: String by project
- val modAvatar: String by project
- val curseProjectId: String by project
- val curseHomepageLink: String by project
- val gitFirstCommit: String by project
- val gitRepo: String by project
- val modJavaVersion: String by project
- val baseArchiveName = "${modName}-fabric-${minecraftVersion}"
- version = Utils.updatingSemVersion(modVersion)
- base {
- archivesName.set(baseArchiveName)
- }
- dependencies {
- minecraft("com.mojang:minecraft:${minecraftVersion}")
- mappings(loom.layered {
- officialMojangMappings()
- parchment("org.parchmentmc.data:parchment-1.18.1:2021.12.19@zip")
- })
- modImplementation("net.fabricmc:fabric-loader:${fabricLoaderVersion}")
- modImplementation("net.fabricmc.fabric-api:fabric-api:${fabricVersion}")
- implementation(project(":Common"))
- }
- loom {
- runs {
- named("client") {
- client()
- setConfigName("Fabric Client")
- ideConfigGenerated(true)
- runDir("run")
- }
- named("server") {
- server()
- setConfigName("Fabric Server")
- ideConfigGenerated(true)
- runDir("run_server")
- }
- }
- }
- modTemplate {
- mcVersion(minecraftVersion)
- curseHomepage(curseHomepageLink)
- displayName(modName)
- modLoader("Fabric")
- changelog {
- enabled(true)
- firstCommit(gitFirstCommit)
- repo(gitRepo)
- }
- versionTracker {
- enabled(true)
- author(modAuthor)
- projectName("${modName}-Fabric")
- homepage(curseHomepageLink)
- }
- }
- tasks.processResources {
- outputs.upToDateWhen { false }
- from(project(":Common").sourceSets.main.get().resources)
- inputs.property("version", project.version)
- filesMatching("fabric.mod.json") {
- expand("version" to project.version)
- }
- filesMatching("*.mixins.json") {
- expand("refmap_target" to "$baseArchiveName-")
- }
- }
- tasks.withType<JavaCompile> {
- source(project(":Common").sourceSets.main.get().allSource)
- }
- publishing {
- publications {
- register("mavenJava", MavenPublication::class) {
- artifactId = baseArchiveName
- from(components["java"])
- }
- }
- repositories {
- maven("file://${System.getenv("local_maven")}")
- }
- }
- tasks.create<TaskPublishCurseForge>("publishCurseForge") {
- apiToken = Utils.locateProperty(project, "curseforge_api_token")
- val mainFile = upload(curseProjectId, file("${project.buildDir}/libs/$baseArchiveName-$version.jar"))
- mainFile.changelogType = "markdown"
- mainFile.changelog = Utils.getFullChangelog(project)
- mainFile.releaseType = CFG_Constants.RELEASE_TYPE_RELEASE
- mainFile.addJavaVersion("Java $modJavaVersion")
- mainFile.addGameVersion(minecraftVersion)
- doLast {
- project.ext.set("curse_file_url", "${curseHomepageLink}/files/${mainFile.curseFileId}")
- }
- }
|