import groovy.json.JsonOutput

buildscript {
    repositories {
        gradlePluginPortal()
        maven {
            name 'MinecraftForge'
            url 'https://maven.minecraftforge.net/'
        }
        maven {
            name 'Garden of Fancy'
            url 'https://maven.gofancy.wtf/releases'
        }
        //fallback for fancygradle maven
        //mavenLocal()
        maven {
            name 'Sponge'
            url 'https://repo.spongepowered.org/repository/maven-public/'
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:5.+'
        classpath 'org.ajoberstar.grgit:grgit-gradle:3.1.1'
        classpath group: 'wtf.gofancy.fancygradle', name: 'wtf.gofancy.fancygradle.gradle.plugin', version: '1.1.+'
    }

    repositories.each {
        if (it instanceof MavenArtifactRepository && it.url.toString() == "https://files.minecraftforge.net/maven") {
            it.url = "https://maven.minecraftforge.net"
        }
    }
}

apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'idea'
apply plugin: 'maven-publish'
apply plugin: org.ajoberstar.grgit.gradle.GrgitPlugin
apply plugin: 'wtf.gofancy.fancygradle'


version = "4.3.15"
group= "electroblob.wizardry"// http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "ElectroblobsWizardry"

sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.


minecraft {
    // The mappings can be changed at any time, and must be in the following format.
    // snapshot_YYYYMMDD   Snapshot are built nightly.
    // stable_#            Stables are built at the discretion of the MCP team.
    // Use non-default mappings at your own risk. they may not always work.
    // Simply re-run your setup task after changing the mappings to update your workspace.
    //mappings channel: 'snapshot', version: '20171003-1.12'
    mappings channel: "stable", version: "39-1.12"
    // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.

    // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')

    // Default run configurations.
    // These can be tweaked, removed, or duplicated as needed.

    def argsz = ['--username', 'WinDanesz', '--user', 'WinDanesz', '--uuid', '7faee354-8c60-4f5c-9862-fc0ce5f7f575']
    runs {
        client {
            workingDirectory project.file('run')

            // Recommended logging data for a userdev environment
            property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'

            // Recommended logging level for the console
            property 'forge.logging.console.level', 'info'
            args argsz
        }

        server {

            // Recommended logging data for a userdev environment
            property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'

            // Recommended logging level for the console
            property 'forge.logging.console.level', 'info'
        }
    }
}

repositories {
    google()
    mavenCentral()
    maven {
        url = uri('https://www.cursemaven.com')
        content {
            includeGroup 'curse.maven'
        }
    }
    maven {
        name = 'Modrinth'
        url = uri('https://api.modrinth.com/maven')
        content {
            includeGroup 'maven.modrinth'
        }
    }
    maven {
        name = 'Sponge'
        url = uri('https://repo.spongepowered.org/maven')
    }
    maven {
        url = uri('https://maven.blamejared.com')
    }
    maven {
        url = uri('https://m2.dv8tion.net/releases')
    }
    maven {
        url = uri('https://jitpack.io')
    }
}

dependencies {
    //// MC version ////
    // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed
    // that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied.
    // The userdev artifact is a special name and will get all sorts of transformations applied to it.
    minecraft "net.minecraftforge:forge:${project.mc_version}-${project.forge_version}"
    //// MC version ////
    implementation fg.deobf("curse.maven:baubles-${baubles_projectid}:${baubles_fileid}")
    implementation fg.deobf("mezz.jei:jei_${mc_version}:${jei_version}")
    implementation fg.deobf("curse.maven:antique-atlas-${antiqueatlas_projectid}:${antiqueatlas_fileid}")

}

task deobfJar(type: Jar) {
    from sourceSets.main.output
    classifier = 'deobf'
}

processResources {
    // replace tokens in mcmod.info, and pack.mcmeta
    from(sourceSets.main.resources.srcDirs) {
        include 'pack.mcmeta'
        include 'mcmod.info'
    }

    duplicatesStrategy = 'include'
}

fancyGradle {
    patches {
        resources
        coremods
        asm
    }
}
