- Update to 1.21
- Added search bar to the config screen
- This also has support for `color` vs `colour` and `gray` vs `grey`.
# Technical Changes
- Removed methods buttons, these caused issues as methods did not retain order so they needed targets.
- Instead you can not use the annotation on a runnable field and it will be a button and you wont need a target.
- Multiple new options have been added:
- `@Color` this is a simple color selector with a live preview, it allows setting defaults colors and if alpha is allowed.
- `@Select` this is for enum arrays, it allows for multi-select lists.
- `@Draggable` this is also for enum arrays, it allows for draggable lists, it also allows for a provided list of values that are duplicate.
- Additionally, with this you can provide a `@Range` annotation to determine the upper and lower bounds of the draggable list size.
- `@Keybind` this is for keybinds, it allows for a keybind to be set.
- This is useful for when a keybind is too specific for the Minecraft keybinds screen.
- `@SearchTerm` this goes along with the newly added search bar, it allows for additional search terms to be added to an option.
- With the new search bar, when you get a config screen you can provide a function to get terms from a string, this is useful if you want to auto translate the search terms.
- This version also adds a new parameter to the registration of configs which allows "fixing", this is a datafixer of sorts.
- Additionally, the config annotation now has a `version` parameter.
- Added `Observable` which is a type that can wrap any non object type and will allow for listening to changes.
- This is useful if you dont want to check right away, or you need to do post-processing.
- Enums are now allowed in arrays
- Certain values that are displayed like enums can now implement `Translatable`, this will also check for `StringRepresentable` if it has it else it will use `toString`.
- Additional config class parsers have been added, this is for other languages like Kotlin can be supported, with Kotlin already in the works.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }