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.
This commit is contained in:
TDSTOS
2026-04-11 23:09:55 +02:00
parent 05957f59dc
commit cdef2315d0
2 changed files with 22 additions and 7 deletions

View File

@@ -191,14 +191,23 @@ class KitSelectorMenu(
private fun getFilteredKits(): List<Kit> { private fun getFilteredKits(): List<Kit> {
val allKits = plugin.kitManager.getRegisteredKits().toList() val allKits = plugin.kitManager.getRegisteredKits().toList()
if (searchQuery.isEmpty()) return allKits
val q = searchQuery.lowercase() val result = if ( searchQuery.isEmpty() )
return allKits.filter { kit -> {
kit.id.lowercase().contains(q) || allKits
net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer
.plainText().serialize(kit.displayName).lowercase().contains(q)
} }
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? { private fun getKitAtSlot(slot: Int): Kit? {

View File

@@ -64,7 +64,7 @@ class PerkSelectorMenu(
FILLER_ROW.forEach { inv.setItem(it, filler) } FILLER_ROW.forEach { inv.setItem(it, filler) }
// Perks in Reihen 1 + 2 // 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)) 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)) } editMeta { it.displayName(Component.text(" ").decoration(TextDecoration.ITALIC, false)) }
} }
private fun getFilteredPerks(): List<Perk>
{
val kits = plugin.perkManager.getRegisteredPerks().toList()
return kits.sortedBy { perk -> perk.id.lowercase() }
}
private fun buildCloseItem() = ItemStack(Material.DARK_OAK_DOOR).apply { private fun buildCloseItem() = ItemStack(Material.DARK_OAK_DOOR).apply {
editMeta { meta -> editMeta { meta ->
meta.displayName( meta.displayName(