plugins {
    id "architectury-plugin" version "3.4-SNAPSHOT"
    id "dev.architectury.loom" version "1.6-SNAPSHOT" apply false
    id "me.shedaniel.unified-publishing" version "0.1.+" apply false
    id 'com.github.johnrengelman.shadow' version '8.1.1' apply false
}

architectury {
    minecraft = rootProject.minecraft_version
}

repositories {
    maven {
        url = "https://api.modrinth.com/maven"
    }
}

subprojects {
    apply plugin: "dev.architectury.loom"

    dependencies {
        minecraft "com.mojang:minecraft:${rootProject.minecraft_version}"
        // The following line declares the mojmap mappings, you may use other mappings as well
        //mappings loom.officialMojangMappings()
        // The following line declares the yarn mappings you may select this one as well.
        mappings loom.layered {
            it.mappings("net.fabricmc:yarn:$rootProject.yarn_mappings:v2")
            it.mappings("dev.architectury:yarn-mappings-patch-neoforge:$rootProject.yarn_mappings_patch_neoforge_version")
        }
    }
}


allprojects {
    apply plugin: "java"
    apply plugin: "architectury-plugin"
    apply plugin: "maven-publish"

    archivesBaseName = rootProject.archives_base_name
    version = rootProject.mod_version
    group = rootProject.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.
    }

    tasks.withType(JavaCompile) {
        options.encoding = "UTF-8"
        options.release = 21
    }
    ext {
        releaseChangelog = {
            def changes = new StringBuilder()
            changes << "## VisualOverhaul v$project.version for $project.minecraft_version\n[View the changelog](https://www.github.com/TeamMidnightDust/VisualOverhaul/commits/)"
            def proc = "git log --max-count=1 --pretty=format:%s".execute()
            proc.in.eachLine { line ->
                def processedLine = line.toString()
                if (!processedLine.contains("New translations") && !processedLine.contains("Merge") && !processedLine.contains("branch")) {
                    changes << "\n- ${processedLine.capitalize()}"
                }
            }
            proc.waitFor()
            return changes.toString()
        }
    }

    java {
        withSourcesJar()
    }
}
