dependencies {
    implementation project(path: ":common", configuration: 'shadow')
    implementation project(path: ":bukkit", configuration: 'shadow')
    implementation project(path: ":nukkit", configuration: 'shadow')
    implementation project(path: ":sponge", configuration: 'shadow')
    implementation project(path: ":bungeecord", configuration: 'shadow')
    implementation project(path: ":velocity", configuration: 'shadow')
    testImplementation project(path: ":common", configuration: 'testArtifacts')
    testImplementation project(path: ":bukkit", configuration: 'testArtifacts')
    testImplementation project(path: ":nukkit", configuration: 'testArtifacts')
    testImplementation project(path: ":sponge", configuration: 'testArtifacts')
    testImplementation project(path: ":bungeecord", configuration: 'testArtifacts')
    testImplementation project(path: ":velocity", configuration: 'testArtifacts')
}

shadowJar {
    relocate('org.apache', 'plan.org.apache') {
        exclude 'org/apache/logging/**'
    }
    relocate 'dagger', 'plan.dagger'
    // Don't relocate MySQL or SQLite since they are loaded with a isolated class loader
    // relocate 'org.sqlite', 'plan.org.sqlite'
    // relocate 'com.mysql', 'plan.com.mysql'
    // relocate 'com.google.protobuf', 'plan.com.mysql.cj.x.google.protobuf'
    relocate 'javax.inject', 'plan.javax.inject'
    relocate 'com.github.benmanes', 'plan.com.github.benmanes'
    relocate 'dev.vankka.dependencydownload', 'plan.dev.vankka.dependencydownload'

    destinationDirectory.set(file("$rootDir/builds/"))
    archiveBaseName.set('Plan')
    archiveClassifier.set('')

    build {
        dependsOn tasks.named("shadowJar")
    }
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            groupId = 'com.djrapitops'
            artifactId = 'Plan-plugin'
            version = "$fullVersion"

            artifact shadowJar
        }
    }
}
