plugins {
	id "com.modrinth.minotaur" version "2.+"
	id 'maven-publish'
	id "org.quiltmc.loom" version "1.2.+"
}

archivesBaseName = project.archives_base_name
version = "${project.version}"
group = project.maven_group

repositories {
	// Add repositories to retrieve artifacts from in here.
	// You should only use this when depending on other mods because
	// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
	// See https://docs.gradle.org/current/userguide/declaring_repositories.html
	// for more information about repositories.
}

// All the dependencies are declared at gradle/libs.version.toml and referenced with "libs.<id>"
// See https://docs.gradle.org/current/userguide/platforms.html for information on how version catalogs work.
dependencies {
	minecraft("com.mojang:minecraft:1.20.6")
	mappings("org.quiltmc:quilt-mappings:1.20.6+build.6:intermediary-v2")
	modImplementation("org.quiltmc:quilt-loader:0.26.3")
	modImplementation("org.quiltmc.quilted-fabric-api:quilted-fabric-api:10.0.0-alpha.3+0.100.4-1.20.6")
	// modImplementation("org.quiltmc.quilted-fabric-api:quilted-fabric-api-deprecated:quilted-fabric-api:10.0.0-alpha.3+0.100.4-1.20.6") // If you wish to use Fabric API's deprecated modules, you can replace the above line with this one
}

processResources {
	inputs.property 'version', version

	filesMatching('quilt.mod.json') {
		expand "version": version
	}
}

tasks.withType(JavaCompile).configureEach {
	it.options.encoding = 'UTF-8'
	// Minecraft 1.18 (1.18-pre2) upwards uses Java 17.
	it.options.release = 21
}

java {
	// Still required by IDEs such as Eclipse and Visual Studio Code
	sourceCompatibility = JavaVersion.VERSION_21
	targetCompatibility = JavaVersion.VERSION_21

	// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task if it is present.
	// If you remove this line, sources will not be generated.
	withSourcesJar()

	// If this mod is going to be a library, then it should also generate Javadocs in order to aid with development.
	// Uncomment this line to generate them.
	// withJavadocJar()
}

// If you plan to use a different file for the license, don't forget to change the file name here!
jar {
	from('LICENSE') {
		rename { "${it}_${archivesBaseName}" }
	}
}

//modrinth

tasks.modrinth.dependsOn(tasks.modrinthSyncBody)

modrinth {
	token = System.getenv("MODRINTH_TOKEN") // Please use an environment variable for this! The default is `$MODRINTH_TOKEN`.
	projectId = "roses-quilt" // The ID of your Modrinth project. Slugs will not work.
	versionNumber = version // The (preferably SemVer) version of the mod. If not specified, it'll use the `version` declaration
	versionType = "release" // This is the default -- can also be `beta` or `alpha`
	uploadFile = remapJar // Tells Minotaur to use the remapped jar
	gameVersions = ["1.20", "1.20.1"] // An array of game versions the version supports
	loaders = ["quilt"] // Self-explanatory.
	changelog = "changed log! (wait about a minute, and refresh, it will be here)"
	dependencies { // A special DSL for creating dependencies
		// scope.type
		// The scope can be `required`, `optional`, `incompatible`, or `embedded`
		// The type can either be `project` or `version`
		required.project "qsl" // Creates a new required dependency on Fabric API
		optional.project "modmenu"//, "mc1.19.3-0.4.8" // Creates a new optional dependency on this specific version of Sodium
	}
	syncBodyFrom = file("../README.md").text
}


// Configure the maven publication
publishing {
	publications {
		mavenJava(MavenPublication) {
			from components.java
		}
	}

	// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
	repositories {
		// Add repositories to publish to here.
		// Notice: This block does NOT have the same function as the block in the top level.
		// The repositories here will be used for publishing your artifact, not for
		// retrieving dependencies.
	}
}