Skip to content

Instantly share code, notes, and snippets.

@L1shed
Created June 15, 2024 09:14
Show Gist options
  • Save L1shed/aefaf5d7bbe9bba7bbc711e62a58cbd7 to your computer and use it in GitHub Desktop.
Save L1shed/aefaf5d7bbe9bba7bbc711e62a58cbd7 to your computer and use it in GitHub Desktop.
FastInv Selector component
package me.lished.events.inventory.components
import fr.mrmicky.fastinv.FastInv
import fr.mrmicky.fastinv.ItemBuilder
fun selector(parent: FastInv, slot: Int, item: ItemBuilder, list: List<String>, padding: Int, selectedColor: String, defaultColor: String, default: Int, onClick: () -> Unit) {
val range = padding..list.size+(padding-1)
var selected = default
parent.setItem(slot, item.lore(mutableListOf<String>().apply {
repeat(padding) { add("") }
addAll(list.mapIndexed { index, it ->
(if (index+range.first == selected) selectedColor else defaultColor) + it
})
}).build()) {
selected++
if (selected !in range) selected = range.first
onClick()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment