plugins { id 'java' id 'application' } group = 'creator.loki' version = '1.0.0' repositories { mavenCentral() } dependencies { // JDA - Discord API implementation('net.dv8tion:JDA:5.0.0-beta.20') { exclude module: 'opus-java' } // LavaPlayer для голосового TTS implementation 'dev.arbjerg:lavaplayer:2.2.2' // dotenv для загрузки .env implementation 'io.github.cdimascio:dotenv-java:3.0.0' // Logging implementation 'org.slf4j:slf4j-api:2.0.12' implementation 'ch.qos.logback:logback-classic:1.5.3' // JSON implementation 'com.google.code.gson:gson:2.10.1' // Caffeine Cache implementation 'com.github.ben-manes.caffeine:caffeine:3.1.8' // Google Guice - Dependency Injection implementation 'com.google.inject:guice:7.0.0' // SQLite Database implementation 'org.xerial:sqlite-jdbc:3.45.1.0' // Testing testImplementation 'org.junit.jupiter:junit-jupiter:5.10.2' testImplementation 'org.mockito:mockito-core:5.11.0' testImplementation 'org.mockito:mockito-junit-jupiter:5.11.0' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } test { useJUnitPlatform() } application { mainClass = 'creator.loki.App' } jar { manifest { attributes( 'Main-Class': 'creator.loki.App' ) } duplicatesStrategy = DuplicatesStrategy.EXCLUDE from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } }