From cdef2315d0bff87b2624bc8aa092f48c28a87386 Mon Sep 17 00:00:00 2001 From: TDSTOS Date: Sat, 11 Apr 2026 23:09:55 +0200 Subject: [PATCH] Sort kits and perks by ID Ensure kits and perks are displayed in alphabetical order by their ID. KitSelectorMenu.getFilteredKits now returns a sorted list (preserving search filtering) and PerkSelectorMenu uses a new getFilteredPerks() helper that returns perks sorted by id, improving menu ordering and consistency. --- .../speedhg/gui/menu/KitSelectorMenu.kt | 21 +++++++++++++------ .../speedhg/gui/menu/PerkSelectorMenu.kt | 8 ++++++- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/club/mcscrims/speedhg/gui/menu/KitSelectorMenu.kt b/src/main/kotlin/club/mcscrims/speedhg/gui/menu/KitSelectorMenu.kt index f97dd00..3296190 100644 --- a/src/main/kotlin/club/mcscrims/speedhg/gui/menu/KitSelectorMenu.kt +++ b/src/main/kotlin/club/mcscrims/speedhg/gui/menu/KitSelectorMenu.kt @@ -191,14 +191,23 @@ class KitSelectorMenu( private fun getFilteredKits(): List { val allKits = plugin.kitManager.getRegisteredKits().toList() - if (searchQuery.isEmpty()) return allKits - val q = searchQuery.lowercase() - return allKits.filter { kit -> - kit.id.lowercase().contains(q) || - net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer - .plainText().serialize(kit.displayName).lowercase().contains(q) + val result = if ( searchQuery.isEmpty() ) + { + allKits } + else + { + val q = searchQuery.lowercase() + allKits.filter { kit -> + kit.id.lowercase().contains( q ) || + net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer + .plainText().serialize( kit.displayName ).lowercase().contains( q ) + } + } + + // Sortiert die Liste alphabetisch nach der Kit-ID + return result.sortedBy { kit -> kit.id.lowercase() } } private fun getKitAtSlot(slot: Int): Kit? { diff --git a/src/main/kotlin/club/mcscrims/speedhg/gui/menu/PerkSelectorMenu.kt b/src/main/kotlin/club/mcscrims/speedhg/gui/menu/PerkSelectorMenu.kt index d276f22..8b04ac6 100644 --- a/src/main/kotlin/club/mcscrims/speedhg/gui/menu/PerkSelectorMenu.kt +++ b/src/main/kotlin/club/mcscrims/speedhg/gui/menu/PerkSelectorMenu.kt @@ -64,7 +64,7 @@ class PerkSelectorMenu( FILLER_ROW.forEach { inv.setItem(it, filler) } // Perks in Reihen 1 + 2 - plugin.perkManager.getRegisteredPerks().forEachIndexed { index, perk -> + getFilteredPerks().forEachIndexed { index, perk -> if (index in PERK_SLOTS) inv.setItem(index, buildPerkItem(perk)) } @@ -225,6 +225,12 @@ class PerkSelectorMenu( editMeta { it.displayName(Component.text(" ").decoration(TextDecoration.ITALIC, false)) } } + private fun getFilteredPerks(): List + { + val kits = plugin.perkManager.getRegisteredPerks().toList() + return kits.sortedBy { perk -> perk.id.lowercase() } + } + private fun buildCloseItem() = ItemStack(Material.DARK_OAK_DOOR).apply { editMeta { meta -> meta.displayName(