Add Kit GUI (menu/anvil) and integrate MenuListener

Introduce a full chest-based kit selection UI and anvil search: add Menu, MenuHolder, KitSelectorMenu, KitItemFactory, AnvilSearchMenu (with AnvilSearchTracker) and a central MenuListener to dispatch menu and anvil interactions. Integrate the GUI into KitCommand (opens selector on no args, enforces mid-game selection rules, remove/replace backup kits when switching) and register MenuListener in the main plugin. Add permission speedhg.bypass and update ConnectListener to kick joiners when a game is running unless they have the bypass permission. Remove static playstyle lore from language file (now rendered dynamically), and apply small import/refactor cleanups (use wildcard imports for kit impls, java.util.* replacements).
This commit is contained in:
TDSTOS
2026-03-26 17:06:40 +01:00
parent b2edcff447
commit 72a58fdd9c
20 changed files with 820 additions and 72 deletions

View File

@@ -1,6 +1,6 @@
package club.mcscrims.speedhg.database
import java.util.UUID
import java.util.*
/**
* Hält die rohen Spieler-Statistiken im Arbeitsspeicher.

View File

@@ -1,6 +1,6 @@
package club.mcscrims.speedhg.database
import java.util.UUID
import java.util.*
/**
* Kapselt alle SQL-Operationen für die `player_stats`-Tabelle.

View File

@@ -2,7 +2,7 @@ package club.mcscrims.speedhg.database
import club.mcscrims.speedhg.SpeedHG
import kotlinx.coroutines.*
import java.util.UUID
import java.util.*
import java.util.concurrent.ConcurrentHashMap
import kotlin.time.Duration.Companion.milliseconds