plugins {
    java
    application
    id("org.springframework.boot") version "3.2.0"
    id("io.spring.dependency-management") version "1.1.4"
}

group = "com.openosrs"
version = "1.0.0"

java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

repositories {
    mavenCentral()
    maven("https://repo.runelite.net")
    maven("https://raw.githubusercontent.com/open-osrs/hosting/master")
}

dependencies {
    // RuneLite/OpenOSRS integration
    implementation(project(":runelite:runelite-api"))
    implementation(project(":runelite:runelite-client"))
    
    // Agent framework dependencies
    implementation("com.fasterxml.jackson.core:jackson-core:2.15.2")
    implementation("com.fasterxml.jackson.core:jackson-databind:2.15.2")
    implementation("com.fasterxml.jackson.core:jackson-annotations:2.15.2")
    
    // Networking and communication
    implementation("io.netty:netty-all:4.1.100.Final")
    implementation("org.apache.httpcomponents.client5:httpclient5:5.3")
    
    // Graphics and UI (minimal for agent operation)
    implementation("org.lwjgl:lwjgl:3.3.3")
    implementation("org.lwjgl:lwjgl-opengl:3.3.3")
    runtimeOnly("org.lwjgl:lwjgl::natives-linux")
    runtimeOnly("org.lwjgl:lwjgl-opengl::natives-linux")
    
    // Logging
    implementation("org.slf4j:slf4j-api:2.0.9")
    implementation("ch.qos.logback:logback-classic:1.4.14")
    
    // Utilities
    implementation("com.google.guava:guava:32.1.3-jre")
    implementation("org.apache.commons:commons-lang3:3.13.0")
    
    // Script engine support
    implementation("org.graalvm.js:js:23.1.0")
    implementation("org.graalvm.js:js-scriptengine:23.1.0")
    
    // Testing
    testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
    testImplementation("org.mockito:mockito-core:5.7.0")
    testImplementation("org.assertj:assertj-core:3.24.2")
}

application {
    mainClass.set("com.openosrs.client.ModernizedClient")
}

tasks.test {
    useJUnitPlatform()
}

tasks.jar {
    manifest {
        attributes["Main-Class"] = "com.openosrs.client.ModernizedClient"
    }
}