Class CurseforgePublisher

java.lang.Object
io.github.smootheez.Publisher
io.github.smootheez.curseforge.CurseforgePublisher

public class CurseforgePublisher extends Publisher
Handles publishing mod files to CurseForge using the CurseForge upload API.

This publisher is responsible for:

  • Resolving configured game versions, loaders, and environments
  • Constructing metadata for the upload request
  • Building and sending a multipart upload request to CurseForge
  • Logging responses and raising exceptions for failed uploads
  • Constructor Details

    • CurseforgePublisher

      public CurseforgePublisher(org.gradle.api.Project project, McModPublisherExtension extension, okhttp3.OkHttpClient client)
      Constructs a new CurseForge publisher instance.
      Parameters:
      project - the Gradle project
      extension - the plugin extension containing user configuration
      client - the HTTP client used for API communication
  • Method Details

    • publish

      public void publish()
      Publishes all configured files to CurseForge.

      Steps performed include:

      1. Reading configuration (token, project ID, load targets)
      2. Resolving valid CurseForge game version IDs
      3. Constructing upload metadata
      4. Sending each file to CurseForge using a multipart upload
      If no valid game versions are found, the publish process is aborted.
      Specified by:
      publish in class Publisher