ctf/build.gradle.kts
Teriuihi c09c55ed7a Add Discord integration for teams and user linking
Introduced database connectivity and Discord role management via MyBatis and JDA. Enhanced `Team` functionality to support Discord roles and integrated player-Discord linking during server join. Updated Gradle build to include required dependencies.
2025-02-15 22:31:35 +01:00

105 lines
2.8 KiB
Plaintext

import java.util.Properties
plugins {
id("java")
id("com.gradleup.shadow") version "9.0.0-beta4"
}
group = "com.alttd.ctf"
dependencies {
compileOnly("com.alttd:Galaxy-API:1.21-R0.1-SNAPSHOT") {
isChanging = true
}
compileOnly("org.projectlombok:lombok:1.18.32")
annotationProcessor("org.projectlombok:lombok:1.18.32")
testImplementation(platform("org.junit:junit-bom:5.10.0"))
testImplementation("org.junit.jupiter:junit-jupiter")
// Start JSON config dependencies
// Bean Validation API
implementation("jakarta.validation:jakarta.validation-api:3.0.2")
// Hibernate Validator (implementation)
implementation("org.hibernate:hibernate-validator:8.0.2.Final")
// Validation annotations processing
implementation("org.hibernate:hibernate-validator-annotation-processor:8.0.2.Final")
// Jackson/Dynamic Beans Integration
implementation("com.fasterxml.jackson.module:jackson-module-parameter-names:2.15.2")
// Jackson for JSON Parsing
implementation("com.fasterxml.jackson.core:jackson-databind:2.15.2")
implementation("com.fasterxml.jackson.core:jackson-annotations:2.15.2")
// End JSON config dependencies
// WorldBorderAPI
compileOnly("com.github.yannicklamprecht:worldborderapi:1.210.0:dev")
//Database
implementation("org.mybatis:mybatis:3.5.13")
implementation("mysql:mysql-connector-java:8.0.33")
}
tasks.test {
useJUnitPlatform()
}
tasks.jar {
archiveFileName.set("CaptureTheFlag.jar")
}
tasks {
shadowJar {
archiveFileName.set("CaptureTheFlag.jar")
listOf(
"org.apache.ibatis"
).forEach { relocate(it, "${rootProject.group}.lib.$it") }
}
build {
dependsOn(shadowJar)
}
}
val versionPropsFile = file("version.properties")
val versionProps = Properties().apply {
if (versionPropsFile.exists()) {
load(versionPropsFile.inputStream())
} else {
throw GradleException("version.properties file not found!")
}
}
val majorVersion: String = versionProps["version"] as String
var buildNumber: Int = (versionProps["buildNumber"] as String).toInt()
version = "$majorVersion.$buildNumber"
val incrementBuildNumber = tasks.register("incrementBuildNumber") {
doLast {
buildNumber++
versionProps["buildNumber"] = buildNumber.toString()
versionProps.store(versionPropsFile.outputStream(), null)
println("Build number incremented to $buildNumber")
}
}
tasks.named("build") {
dependsOn(incrementBuildNumber)
}
tasks.named("shadowJar") {
dependsOn(incrementBuildNumber)
}
tasks.withType<Jar> {
manifest {
attributes(
"Implementation-Title" to project.name,
"Implementation-Version" to version,
"Build-Number" to buildNumber.toString()
)
}
}