Special Options

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.createBuilder(String.class)
.name(Component.literal("List Option"))
.binding(/* gets and sets a List, requires list field to be not final, does not manipulate the list */)
.controller(StringController::new) // 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

ButtonOption