archivesBaseName = "${mod_name.replace(" ", "")}-NeoForge-${minecraft_version}"

dependencies {
    // Compat
    modImplementation("maven.modrinth:vanishmod:${vanishmod_neo}")

    // Do not edit or remove
    implementation project(":Common")
}

shadowJar {
    from sourceSets.main.output
    configurations = [project.configurations.shade]

    dependencies {
        exclude(dependency('com.google.code.gson:.*'))

        relocate 'me.hypherionmc.moonconfig', 'shadow.hypherionmc.moonconfig'
        relocate 'me.hypherionmc.mcdiscordformatter', 'shadow.hypherionmc.mcdiscordformatter'
        relocate 'net.kyori', 'shadow.kyori'
    }

    setArchiveClassifier('dev-shadow')
    mergeServiceFiles()
}

/**
 * ===============================================================================
 * =       DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING        =
 * ===============================================================================
 */

unimined.minecraft {
    neoForged {
        loader neoforge_version
        mixinConfig("${mod_id}.mixins.json", "${mod_id}.neoforge.mixins.json")
    }
}

remapJar {
    inputFile.set shadowJar.archiveFile
    dependsOn shadowJar
    archiveClassifier.set null
}

jar {
    archiveClassifier.set "dev"
}

processResources {
    from project(":Common").sourceSets.main.resources
    def buildProps = project.properties.clone()

    filesMatching("META-INF/neoforge.mods.toml") {
        expand buildProps
    }
}

compileTestJava.enabled = false

tasks.withType(JavaCompile).configureEach {
    source(project(":Common").sourceSets.main.allSource)
}

/**
 * Publishing Config
 */
publishing {
    publications {
        mavenJava(MavenPublication) {
            artifactId project.archivesBaseName
            from components.java

            artifact(remapJar) {
                builtBy remapJar
            }

            pom.withXml {
                Node pomNode = asNode()
                pomNode.dependencies.'*'.findAll() {
                    it.artifactId.text() == 'regutils-joined-fabric' ||
                            it.artifactId.text() == 'core' ||
                            it.artifactId.text() == 'toml'
                }.each() {
                    it.parent().remove(it)
                }
            }
        }
    }

    repositories {
        maven rootProject.orion.getPublishingMaven()
    }
}

publisher {
    apiKeys {
        modrinth(System.getenv("MODRINTH_TOKEN"))
        curseforge(System.getenv("CURSE_TOKEN"))
        nightbloom(System.getenv("PLATFORM_KEY"))
    }

    setCurseID(curse_id)
    setModrinthID(modrinth_id)
    setNightbloomID("craterlib")
    setVersionType("release")
    setChangelog("https://raw.githubusercontent.com/hypherionmc/changelogs/main/craterlib/changelog-forge.md")
    setProjectVersion("${minecraft_version}-${project.version}")
    setDisplayName("[NeoForge 1.21.x] CraterLib - ${project.version}")
    setGameVersions("1.21", "1.21.1")
    setLoaders("neoforge")
    setArtifact(remapJar)
    setCurseEnvironment("both")
    setIsManualRelease(true)
}
