Commit Graph

11 Commits

Author SHA1 Message Date
TDSTOS
2be7272f06 Wire DataPackManager, add uninstall, update build
Swap Shadow plugin to com.gradleup.shadow v8.3.5 and add kotlin serialization plugin. Add relocations for bundled libraries (fastboard, Hikari) in the shadowJar.

Make DataPackManager a plugin-scoped property: initialize and install it during onLoad and call uninstall during onDisable. Add a convenience uninstall() that reads the target world from config and removes the datapack there. Also comment out writeNoiseSettingOverride with a warning that the simplified file crashes Minecraft 1.21.
2026-04-04 23:58:35 +02:00
TDSTOS
184443b7c6 Add custom game settings
Each kit now supports custom settings aswell as custom game settings like min_players
2026-03-28 23:51:32 +01:00
TDSTOS
0043a3e82c Update Stats Management 2026-03-26 01:07:12 +01:00
TDSTOS
2d720d962c Add persistent player stats and DB support
Introduce MySQL persistence and an in-memory stats system with async saving.

- Add HikariCP & MySQL connector dependencies and relocate libs in build.gradle.kts.
- Add DatabaseManager (HikariCP) to manage connection pool and lifecycle.
- Add PlayerStats data model and PlayerStatsRepository for table creation, reads, upserts and batch upserts (with prepared statements).
- Add StatsManager: coroutine-based cache, dirty-flags, async batch saves, auto-save (every 5 minutes), load/save APIs and shutdown save.
- Add StatsListener: load on AsyncPlayerPreLoginEvent and save on PlayerQuitEvent.
- Wire DB and stats into main plugin: connect on enable (disable plugin on fail), initialize StatsManager, save/disconnect on disable, register leaderboard command and stats listener.
- Update GameManager to record kills/wins/deaths and adjust scrimScore on events.
- Add LeaderboardCommand and language entries for leaderboard output; expose command in plugin.yml.
- Add database configuration section to config.yml.
- Minor refactor: KitCommand plugin accessor changed to a getter.

These changes provide a robust, pooled DB connection and efficient stats persistence (batched/upserted) to reduce DB load and ensure data safety during shutdown.
2026-03-26 00:10:26 +01:00
TDSTOS
9d6bd6a6b8 Add kit system, KitManager and Goblin kit
Introduce a full kit framework and supporting utilities.

- Add core kit API: Kit, Playstyle, ActiveAbility, PassiveAbility, AbilityResult, charge state and PlayerChargeData.
- Implement KitManager for registration, lobby selections, apply/remove/clear lifecycle and charge tracking.
- Add KitEventDispatcher listener to centralize kit event handling (interact, hits, move) and integrate passive/active hooks.
- Provide example kit implementations: GoblinKit (functional abilities) and TemplateKit (reference).
- Add utilities: ItemBuilder and WorldEditUtils (WorldEdit-based sphere creation).
- Integrate into plugin: SpeedHG now initialises KitManager, registers kits and KitEventDispatcher, applies kits at game start and clears on end.
- LanguageManager: add default message/list/component helpers.
- Build changes: bump Kotlin plugin to 2.2.0 and add WorldEdit compileOnly deps; also expose legacySerializer in Extensions.

These changes implement the kit feature set (items, abilities, charge/recharge flow) and wire it into the game lifecycle.
2026-03-25 02:27:53 +01:00
TDSTOS
e411879b20 Remove legacy modules, add language & scoreboard
Large refactor removing many legacy subsystems (abilities, kit system, database repos, recraft, world manager, extensive config classes, lunar/luckperms integrations and various listeners/commands). Introduces a lightweight LanguageManager, AntiRunningManager, ScoreboardManager, ConnectListener and a SoupListener; simplifies the main SpeedHG plugin to initialize these components and register the connection listener. Build changes: update Gradle wrapper to 8.10, remove paperweight and several external dependencies, add fr.mrmicky:fastboard and simplify shadowJar/build task configuration. Adds default language resource (languages/en_US.yml) and updates plugin/config resources. Purpose: simplify and decouple the plugin, reduce dependency surface and prepare for a leaner, modular rewrite.
2026-03-25 00:55:20 +01:00
TDSTOS
bb47145a73 Fix start errors 2025-12-12 05:12:09 +01:00
TDSTOS
31c1e6e316 Add player repository 2025-12-11 19:47:06 +01:00
Laurin
590318772f Update game states & world management 2025-12-06 05:41:42 +01:00
Laurin
2c10e3e7fd Add new game states 2025-12-04 15:01:10 +01:00
Laurin
0daabe3de2 First commit 2025-12-01 03:45:44 +01:00