YetAnotherConfigLib
  • Overview
  • Installing YACL
  • GUI Builder
    • Getting started
    • Controllers
    • Special Options
  • Config api
    • Basic usage of Config API
  • Archive
    • Home
    • Config API
Powered by GitBook
On this page
  • ListOption
  • LabelOption
  • ButtonOption

Was this helpful?

  1. GUI Builder

Special Options

Learn about other Option implementations for more functionality.

PreviousControllersNextBasic usage of Config API

Last updated 10 months ago

Was this helpful?

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 .

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:

LabelOption.create(Component.literal("Cool label!"))

ButtonOption

Button options are options that do an action when pressed. Create one like so:

ButtonOption.createBuilder()
        .name(...)
        .description(...)
        .action((yaclScreen, thisOption) -> { /* do something here */ })
        .build()
regular controllers