feat: economy system with minigames, bank, rob, jobs, fishing, blackjack, slots

+ economy domain (EconomyAccount, Job, SlotCombination, EconomyTransaction)
+ EconomyRepository + SqlEconomyRepository + DB schema
+ EconomyService (transfer, daily, deposit/withdraw, stat upgrades)
+ FishingService (fish grid with difficulty levels, speed bonus)
+ BlackjackService (dealer stands on 16, ties lose)
+ SlotService (weighted combos up to x50)
+ JobService (6 jobs with level reqs and efficiency stat)
+ 11 commands: balance, baltop, pay, daily, bank, rob,
  fish, blackjack, slot, job, work
+ Tests for SqlEconomyRepository
+ EconomyModule + EconomyCommandRegistrar wired into BotModule
This commit is contained in:
loki5512344 2026-06-20 00:23:15 +02:00
parent fcb5cd7207
commit fe121c8546
270 changed files with 18632 additions and 11656 deletions

40
gradle/libs.versions.toml Normal file
View file

@ -0,0 +1,40 @@
[versions]
jda = "5.0.0-beta.20"
lavaplayer = "2.2.2"
dotenv = "3.0.0"
slf4j = "2.0.12"
logback = "1.5.3"
gson = "2.10.1"
caffeine = "3.1.8"
guice = "7.0.0"
sqlite = "3.45.1.0"
hikaricp = "5.1.0"
junit = "5.10.2"
mockito = "5.11.0"
junitPlatformLauncher = "1.10.2"
checkstyle = "10.21.4"
spotbugs = "6.1.7"
spotbugsPlugin = "6.1.7"
[libraries]
jda = { module = "net.dv8tion:JDA", version.ref = "jda" }
lavaplayer = { module = "dev.arbjerg:lavaplayer", version.ref = "lavaplayer" }
dotenv = { module = "io.github.cdimascio:dotenv-java", version.ref = "dotenv" }
slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version.ref = "caffeine" }
guice = { module = "com.google.inject:guice", version.ref = "guice" }
sqlite-jdbc = { module = "org.xerial:sqlite-jdbc", version.ref = "sqlite" }
hikaricp = { module = "com.zaxxer:HikariCP", version.ref = "hikaricp" }
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" }
mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" }
mockito-junit-jupiter = { module = "org.mockito:mockito-junit-jupiter", version.ref = "mockito" }
junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junitPlatformLauncher" }
checkstyle = { module = "com.puppycrawl.tools:checkstyle", version.ref = "checkstyle" }
spotbugs = { module = "com.github.spotbugs:spotbugs", version.ref = "spotbugs" }
spotbugs-annotations = { module = "com.github.spotbugs:spotbugs-annotations", version.ref = "spotbugs" }
[plugins]
checkstyle = { id = "checkstyle", version = "" }
spotbugs = { id = "com.github.spotbugs", version.ref = "spotbugsPlugin" }

BIN
gradle/wrapper/gradle-wrapper.jar vendored Normal file

Binary file not shown.

View file

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME