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:
@@ -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? {
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user