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:
@@ -3,7 +3,12 @@ package club.mcscrims.speedhg
|
||||
import club.mcscrims.speedhg.config.LanguageManager
|
||||
import club.mcscrims.speedhg.game.GameManager
|
||||
import club.mcscrims.speedhg.game.modules.AntiRunningManager
|
||||
import club.mcscrims.speedhg.kit.KitManager
|
||||
import club.mcscrims.speedhg.kit.impl.GoblinKit
|
||||
import club.mcscrims.speedhg.kit.listener.KitEventDispatcher
|
||||
import club.mcscrims.speedhg.listener.ConnectListener
|
||||
import club.mcscrims.speedhg.listener.GameStateListener
|
||||
import club.mcscrims.speedhg.listener.SoupListener
|
||||
import club.mcscrims.speedhg.scoreboard.ScoreboardManager
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.plugin.java.JavaPlugin
|
||||
@@ -29,6 +34,9 @@ class SpeedHG : JavaPlugin() {
|
||||
lateinit var scoreboardManager: ScoreboardManager
|
||||
private set
|
||||
|
||||
lateinit var kitManager: KitManager
|
||||
private set
|
||||
|
||||
override fun onEnable()
|
||||
{
|
||||
instance = this
|
||||
@@ -41,6 +49,11 @@ class SpeedHG : JavaPlugin() {
|
||||
|
||||
scoreboardManager = ScoreboardManager( this )
|
||||
|
||||
kitManager = KitManager( this )
|
||||
|
||||
// Register kits
|
||||
kitManager.registerKit( GoblinKit() )
|
||||
|
||||
registerListener()
|
||||
|
||||
logger.info("SpeedHG wurde geladen!")
|
||||
@@ -48,6 +61,7 @@ class SpeedHG : JavaPlugin() {
|
||||
|
||||
override fun onDisable()
|
||||
{
|
||||
kitManager.clearAll()
|
||||
super.onDisable()
|
||||
}
|
||||
|
||||
@@ -56,6 +70,9 @@ class SpeedHG : JavaPlugin() {
|
||||
val pm = Bukkit.getPluginManager()
|
||||
|
||||
pm.registerEvents( ConnectListener(), this )
|
||||
pm.registerEvents( GameStateListener(), this )
|
||||
pm.registerEvents( SoupListener(), this )
|
||||
pm.registerEvents(KitEventDispatcher( this, kitManager ), this )
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user