Learn about other Option implementations for more functionality.
ListOption
List options allow you to easily allow the user to easily append, sort and remove elements from a list, whilst also allowing the use of regular controllers.
These types of options are a hybrid between groups and options, behaving like both, and does not allow for it to be added to a group but must be added to a category directly. Under-the-hood, each option entry is like a regular option, but with no name. This option is a child of a list entry, which has extra buttons to reposition and remove elements.
ListOption.<String>createBuilder().name(Component.literal("List Option")).binding(/* gets and sets a List, requires list field to be not final, does not manipulate the list */).controller(StringControllerBuilder::create)// usual controllers, passed to every entry.initial("")// when adding a new entry to the list, this is the initial value it has.build()
To re-iterate, EVERY controller works with lists.
LabelOption
Labels are simply options that display text. Create one like so:
ButtonOption
Button options are options that do an action when pressed. Create one like so: