Skip to content

Prototik/CursedPublish

Repository files navigation

Cursed Publish plugin

Gradle versions Java versions

Plugin to automatically publish artifacts (mods) on the CurseForge portal directly from Gradle build lifecycle.

Setup

Latest version

Kotlin buildscript
plugins {
    id("rocks.aur.cursedpublish") version "<version>"
}
Groovy buildscript
plugins {
    id 'rocks.aur.cursedpublish' version '<version>'
}

Configuration

cursedPublish {
    projectId("<curseforge-project-id>") // numeric project id from mod page
    apiToken("<curseforge-token>") // curseforge token from settings page

    // You can use AbstractArchiveTask here to set file name and file source at the same type
    file(tasks.jar) {
        // Display name for mod file
        displayName("MyCoolMod (Fabric)")
        
        // Changelog
        changelogMarkdown("# Some changelog for my CoolMod")

        // Minecraft version
        minecraft("1.20.4")
        
        // ModLoader, usually only one
        forge()
        neoForge()
        fabric()
        quilt()
        
        // Java version
        java(17)
        
        // Environment
        client()
        server()

        // Release type
        alpha()
        beta()
        release()

        relations {
            // Define dependencies to other curseforge projects
            // You cannot declare one slug more than once
            requiredDependency("<project-slug>")
            optionalDependency("<project-slug>")
            embeddedLibrary("<project-slug>")
            incompatible("<project-slug>")
            tool("<project-slug>")
        }

        additionalFile(tasks.sourcesJar) {
            // the same as file, but you cannot define game versions
            // (minecraft, modloader, java, environment) and nested files here
        }
    }
}

Plugin will create task for each top-level file (for example, when you register file with name jar, plugin will create task curseforgeUploadJarFile to upload file itself and all of its additional files).

All such tasks aggregated into curseforgeUploadAllFiles meta task to publish all declared files.

About

Plugin to automatically publish artifacts (mods) on the CurseForge portal directly from Gradle build lifecycle.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages