plugins {
    id 'java'
    id 'com.github.johnrengelman.shadow' version '7.1.2'
    id 'com.github.gmazzo.buildconfig' version '3.1.0'
}

group 'ua.nanit'
version '1.21.1'

compileJava {
    options.encoding = "UTF-8"
}

tasks.withType(JavaCompile).configureEach {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.3'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.3'

    implementation 'ch.qos.logback:logback-classic:1.5.6'
    implementation 'org.spongepowered:configurate-yaml:4.1.2'
    implementation 'io.netty:netty-all:4.1.101.Final'
    implementation 'net.kyori:adventure-nbt:4.14.0'
    implementation 'com.grack:nanojson:1.8'
    implementation 'com.google.code.gson:gson:2.10.1'
}

buildConfig {
    className("BuildConfig")
    packageName("ua.nanit.limbo")
    buildConfigField('String', 'LIMBO_VERSION', "\"${project.version}\"")
}

shadowJar {
    from 'LICENSE'

    manifest {
        attributes('Main-Class': 'ua.nanit.limbo.NanoLimbo')
    }

    minimize {
        exclude(dependency('ch.qos.logback:logback-classic:.*:.*'))
    }
}

test {
    useJUnitPlatform()
}
