import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    kotlin("jvm") version "1.9.21"
    application
    id("io.ktor.plugin") version "2.3.6"
}

group = "net.taehui"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

dependencies {
    implementation("com.fasterxml.jackson.core:jackson-annotations:2.16.0")
    implementation("com.fasterxml.jackson.core:jackson-core:2.16.0")
    implementation("com.fasterxml.jackson.core:jackson-databind:2.16.0")
    implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.16.0")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.16.0")
    implementation("com.github.pemistahl:lingua:1.2.2")
    implementation("com.google.protobuf:protobuf-java:3.25.1")
    implementation("com.google.protobuf:protobuf-kotlin:3.25.1")
    implementation("com.ibm.icu:icu4j:74.1")
    implementation("com.lmax:disruptor:3.4.4")
    implementation("com.sun.mail:jakarta.mail:2.0.1")
    implementation("commons-cli:commons-cli:1.6.0")
    implementation("commons-codec:commons-codec:1.16.0")
    implementation("commons-io:commons-io:2.15.0")
    implementation("io.netty:netty-all:4.1.101.Final")
    implementation("jakarta.mail:jakarta.mail-api:2.1.2")
    implementation("net.dv8tion:JDA:5.0.0-beta.16")
    implementation("org.apache.commons:commons-compress:1.25.0")
    implementation("org.apache.commons:commons-dbcp2:2.11.0")
    implementation("org.apache.commons:commons-lang3:3.14.0")
    implementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
    implementation("org.apache.logging.log4j:log4j-core:2.22.0")
    implementation("org.apache.logging.log4j:log4j-slf4j2-impl:2.22.0")
    implementation("org.jline:jline:3.24.1")
    implementation("org.jline:jline-terminal-jansi:3.24.1")
    implementation("org.jsoup:jsoup:1.16.2")
    implementation("org.mariadb.jdbc:mariadb-java-client:3.3.0")
    implementation("org.python:jython-standalone:2.7.3")
    implementation("org.seleniumhq.selenium:selenium-edge-driver:4.15.0")
    implementation("org.seleniumhq.selenium:selenium-java:4.15.0")
    implementation("org.tukaani:xz:1.9")
    implementation(kotlin("stdlib-jdk8"))
    testImplementation(kotlin("test"))
}

kotlin {
    jvmToolchain(21)
}

tasks.test {
    useJUnitPlatform()
}

tasks.shadowJar {
    isZip64 = true
}

tasks.withType<KotlinCompile> {
    kotlinOptions.jvmTarget = "21"
}

application {
    mainClass.set("net.taehui.twilight.Twilight")
}

ktor {
    fatJar {
        archiveFileName.set("Twilight.jar")
    }
}