plugins {
    id 'java'
    id 'com.github.johnrengelman.shadow' version '8.1.1'
}

group = 'com.playerblocklife'
version = '2.2.2-1.20.4'

sourceCompatibility = 17
targetCompatibility = 17

repositories {
    mavenCentral()
    maven {
        url = 'https://repo.papermc.io/repository/maven-public/'
    }
    maven {
        url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
    }
}

dependencies {
    compileOnly 'io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT'
    // 或者使用Spigot API：
    // compileOnly 'org.spigotmc:spigot-api:1.20.4-R0.1-SNAPSHOT'

    // 依赖库
    implementation 'com.google.code.gson:gson:2.10.1'
    implementation 'org.yaml:snakeyaml:2.2'
}

shadowJar {
    archiveClassifier.set('')
    minimize()

    // 排除签名文件
    exclude 'META-INF/*.SF'
    exclude 'META-INF/*.DSA'
    exclude 'META-INF/*.RSA'

    // 如果需要重定位依赖包名，可以在这里添加
    // relocate 'com.google.gson', 'com.playerblocklife.libs.gson'
    // relocate 'org.yaml', 'com.playerblocklife.libs.yaml'
}

// 确保构建时包含shadowJar
tasks.build.dependsOn tasks.shadowJar

// 配置编译选项
tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
    options.compilerArgs += ['-parameters']
}

// 配置测试
test {
    useJUnitPlatform()
}

// 配置JAR任务
jar {
    manifest {
        attributes(
                'Implementation-Version': project.version,
                'Main-Class': 'com.playerblocklife.PlayerBlockLife'
        )
    }
}

// 添加自定义任务
task buildPlugin {
    dependsOn shadowJar
    group = 'build'
    description = '构建插件JAR文件'

    doLast {
        println "=" * 50
        println "插件构建完成！"
        println "文件位置: ${shadowJar.archiveFile.get().asFile.absolutePath}"
        println "文件大小: ${shadowJar.archiveFile.get().asFile.length() / 1024} KB"
        println "=" * 50
    }
}