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.
This commit is contained in:
TDSTOS
2026-03-25 02:27:53 +01:00
parent e411879b20
commit 9d6bd6a6b8
18 changed files with 1330 additions and 6 deletions

View File

@@ -171,8 +171,7 @@ class GameManager(
teleportRandomly( player, world, startBorder / 2 )
// TODO: Kit Items geben
// plugin.kitManager.giveKit( player )
plugin.kitManager.applyKit( player ) // verteilt Items + ruft onAssign + passive.onActivate
player.inventory.addItem(ItemStack( Material.COMPASS ))
player.sendMsg( "game.started" )
@@ -244,6 +243,7 @@ class GameManager(
) {
setGameState( GameState.ENDING )
timer = 15
plugin.kitManager.clearAll()
Bukkit.getOnlinePlayers().forEach { p ->
p.showTitle(Title.title(