Breaking changes in 0.7.0
ValidatedEnumMapis removed- Removed all methods and properties marked as Deprecated and for removal 0.7.0
SmallSpriteDecoration#<init>SpriteDecorated#textureSet&texturesis now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init>& builder is now only non-override method for adding custom button- Removed
ActiveButtonWidget - Removed
TextlessActionWidget DynamicListWidget.EntryPosand implementations madeinternalPopupWidgetposition elements;LayoutWidgetno longer inherits from the PopupWidget variant- Removed deprecated overrides of
PopupControllerfromPopupParentElement SuggestionWindowListenerandSuggestionWindowProvidermoved out ofinternalsub-package- Removed
ImmutableRelPos RenderUtil#renderBlur
- Throughout FzzyConfig
Translatable.Resulthas been replaced withTranslatable.ResultProvider. This affectsEntrySearcheras well asSearcher.SearchContent
Additions
- None
Changes
- None
Fixes
- Updated fabric-permissions-api to the correct version for 1.21.6
Breaking changes in 0.7.0
ValidatedEnumMapis removed- Removed all methods and properties marked as Deprecated and for removal 0.7.0
SmallSpriteDecoration#<init>SpriteDecorated#textureSet&texturesis now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init>& builder is now only non-override method for adding custom button- Removed
ActiveButtonWidget - Removed
TextlessActionWidget DynamicListWidget.EntryPosand implementations madeinternalPopupWidgetposition elements;LayoutWidgetno longer inherits from the PopupWidget variant- Removed deprecated overrides of
PopupControllerfromPopupParentElement SuggestionWindowListenerandSuggestionWindowProvidermoved out ofinternalsub-package- Removed
ImmutableRelPos RenderUtil#renderBlur
- Throughout FzzyConfig
Translatable.Resulthas been replaced withTranslatable.ResultProvider. This affectsEntrySearcheras well asSearcher.SearchContent
Additions
- New
Translatable.Name,Translatable.Desc, andTranslatable.Prefixannotations for data generation of lang files- Corresponding
ConfigApi.buildTranslationsandConfigApiJava.buildTranslationsmethods for hooking a config into a data generator - Also created a simple registered objects translation builder at
ConfigApi.platform().buildRegistryTranslationsUsed for eitherRegistrySupplierobjects built by aRegistrarorIdentifierused in a traditional registration system
- Corresponding
- Added
ConfigScreenProvider, allowing for registering of custom screen implementations in place of the Fzzy Config built in- API Call
registerScreenProvideradded for registering your provider
- API Call
afterCloseevent inPopupWidgetisPressedmethod inRelevantinterface (which is used byFzzyKeybindandValidatedKeybind), which allows for assertive checking for a key state, above the existing reactive response methodrelevant- Overhauled the error handling system in
ValidationResultwith a newErrorEntrysystem and dramatically improved process flow for building complex errors and passing exceptions and other context information- Also introduced more functional methods like
inmap,outmap, andbimap
- Also introduced more functional methods like
Changes
- Upgraded
CustomMultilineTextWidgetto handle click and hover events, as well as now implementing a customMultilineTextimplementation ValidatedFieldbails out of deserialization only on critical errors, now letting correction take its course more often- The
Registrarsystem is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update system - Methods using the old error handling system of string lists are marked for removal 0.8.0
- Slight improvements of overall memory footprint
Fixes
ConfigGroup.Popproperly pops multiple times if attached to one setting multiple times- Clicking off of a context menu into a slider properly updates the slider value
- Search and Restore Defaults options in the context menu work again
ClickableTextWidgetandCustomMultilineTextWidgetnow properly show hover events
Reminder of breaking changes in 0.6.x
ValidatedEntityAttributeis removedCustom[Widgets]are moved from the internal widget package to the custom package- Several widgets and other classes have been deleted
PopupWidgethas many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0- As of 0.6.3,
ActiveButtonWidgetis unused and deprecated, marked for removal by 0.7.0 - As of 0.6.3,
TextlessActionWidgetis unused and deprecated, marked for removal by 0.7.0 - Possibly more, I didn't take great notes
As of 0.6.0, 1.20.4 and 1.20.6 will no longer be receiving active updates.
Additions
- Improved average config load time by approx. 10%.
Changes
ValidatedKeybindnow stores the keycode in the output file based on a string key, rather than the raw int; but it will still accept the raw int for up-conversion purposes or if the key falls outside the typical set of GLFW keys.- The format for the key is the same as the minecraft one with the
key.[type]prefix removed (except for mouse buttons, those start withmouse.) - For example, page down is
page.downversus the minecraftkey.keyboard.page.down - And right click is
mouse.rightversuskey.mouse.right
- The format for the key is the same as the minecraft one with the
ValidatedTriStatewill now accept boolean inputs from the file, if a user accidentally usestrueorfalseinstead of the intended enum form"true"or"false"- "Excess" fields (fields that used to exist in a config but no longer do, for example) are now reported as deserialization errors and removed from the read file.
Fixes
- Integer-type text-box number validation no longer accepts decimal inputs, and the text-box in general no longer accepts any characters except numbers, the minus sign, and decimal if it is a floating-point number.
- Fixed the search passing text not dynamically updating based on current pass-fail state of the input test.
- Validated Any now properly translates basic settings (again, don't know when this broke)
- Fixed servers not properly parsing updates sent from the client, introduced in 0.6.7
- Config screen managers are now properly invalidated on joining a new world (with potentially new config values to care about)
- Narration of the search bar and search bar option buttons works better, and can recover better from being "interrupted"
- Deserialization fixes:
- Basic validation (plain fields) now properly report their errors, leading to a correction of the config file as needed.
ValidatedAnyis now robust against changing the number of fields in the wrapped object. Previously adding fields and then trying to read the pre-existing config file would result in total failure for the object, reverting to defaults.


