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
- Updated to 1.21.5
- Searches now propagate through sub-menus and other "children" results that aren't themselves valid but contain sub-entries that are valid will show a dashed outline and the tooltip will list the valid sub-entries
- Searches can now be automatically passed to sub-menus. By default, alt-click will pass the search
- The main search bar now has some buttons! A menu button which opens the new search config menu, and a clear button to quickly clear the search bar.
- Added new
SaveTypemethod inConfigOVERWRITE- Client configs will be overwritten when receiving a sync from a server. Default and previous behaviorSEPARATE- Client configs will not be saved locally when updated from a server. Actions that modify gamestate before sync can't be included in these config type (Action.RESTARTandAction.RELOG), as they won't be able to properly sync up this game state if they can't overwrite the local file.
- New
Translatable.ResultProvidersuper-class for more nuanced and efficient storage of translation results. Currently, half-wired-in until 0.7.0.- Scope-based
Resultcan be cached with the newTranslatable.createScopedResult
- Scope-based
- New function utilities for suppliers, functions, and predicates that always return the same value
Changes
Translatable.Resultnow implementsSearcher.SearchContentdirectly, and is now deprecated in favor of the newResultProvider- In 0.7.0, all Result constructors will be made internal in favor of using
Translatable.createResult/Translatable.createScopedResult
- In 0.7.0, all Result constructors will be made internal in favor of using
ConfigEntrycan now process searches using theContentBuilder.searchResultmethod. This presents valid "child" search results when the parent list is searched.ValidatedAnynow has its own search barConfigScreenManagerpasses Config and entry Content misc. context to entry creators
Fixes
- Fixed unnecessary re-saving of configs on single player configuration
- Fix a variety of edge cases and niche issues involving searching
- Popups for settings that are translated with
@Translation(or the entire class is marked with@Translation) will now properly render the translated name in the popup header - Search filtering now properly resets when a screen is returned to. The search bar menu has a setting to enable caching behavior where the search will be maintained when the screen is re-opened from a child.
- Fixed accidental niche API break of
ConfigGroupinvolving kotlin constructors.
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
- Configs now support different save file formats beyond just TOML. Current offerings are
TOML,JSON,JSON5,JSONC. Select your desired format by overridingfileTypein the config class.- JSON5 and JSONC will automatically carry over comments made with
@Commentor@TomlComment
- JSON5 and JSONC will automatically carry over comments made with
Changes
- Broke out
PopupControllerfromPopupParentElement, allowing for smoother implementation of popups into existing screens.
Fixes
- Fixed unnecessary re-saving of configs on single player configuration.
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
@RootConfigannotation for marking a config as a "root" config. The settings will appear "inline" with the landing page config buttons, instead of in its own sub-GUI. All other aspects of the config interaction remain unchanged; loading, saving, calling from, etc. so an existing config can be marked as root with no breakage.- Added a greyed-out placeholder button for configs that aren't yet loaded but have been promised via the fabric.mod.json or mods.toml.
- New
ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpenmethods for checking if a Config GUI is currently open. DynamicListWidgethas a newscrollToEntrymethod for scrolling directly to a list element.ConfigApi.openScreennow supports passing in scope args for scrolling to them and opening them as applicable. If you have a configmy_mod:configwith a Object settingcoolObject, passingmy_mod.config.coolObjecttoopenScreenwill open the config GUI, scroll to the object setting, and open the object editing popup.- New
EntryOpenerinterface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.
Changes
- The networking api methods
registerLenient[side]are now ported to all versions for usage parity. - If a config is loaded after screens for a mod have been initialized, the manager will be invalidated and rebuilt (as needed) with the new total loaded config set considered.
ValidatedColorpopups now have a submit button for the hex string textbox, and the alpha edit box will be completely missing if the color doesn't support transparency.
Fixes
- GUI keys are no longer pressable "past" an open popup, and multiple of the same popup can no longer be opened with keybinds.
ConfigGroupnow has an optional constructor parameter to start the config collapsed.- Ingredients and Colors now work as keys/values in validated collections.
- Ingredients can no longer be interacted with outside of worlds.
- The screen manager now locks while constructing a requested screen to prevent recursive screen building if the construction process somehow calls for opening the same screen.
ValidatedColorproperly shows and accepts only 6-digit hex when it doesn't support transparency.- Popups for
ValidatedIdentifierandValidatedTagKeyproperly focus their textboxes on open again, and their textboxes are aligned properly again. - Fixed Go-to menu scroll bar disappearing if you were dragging it and moved the mouse off of the menu. The scrollbar disappearing when the menu isn't hovered is intended behavior.
- Right click menus properly pass clicks "past" themselves, allowing actions to be taken when "clicking off" of them (including "moving" the menu to the newly clicked spot.)
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
@RootConfigannotation for marking a config as a "root" config. The settings will appear "inline" with the landing page config buttons, instead of in its own sub-GUI. All other aspects of the config interaction remain unchanged; loading, saving, calling from, etc. so an existing config can be marked as root with no breakage.- Added a greyed-out placeholder button for configs that aren't yet loaded but have been promised via the fabric.mod.json or mods.toml.
- New
ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpenmethods for checking if a Config GUI is currently open. DynamicListWidgethas a newscrollToEntrymethod for scrolling directly to a list element.ConfigApi.openScreennow supports passing in scope args for scrolling to them and opening them as applicable. If you have a configmy_mod:configwith a Object settingcoolObject, passingmy_mod.config.coolObjecttoopenScreenwill open the config GUI, scroll to the object setting, and open the object editing popup.- New
EntryOpenerinterface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.
Changes
- The networking api methods
registerLenient[side]are now ported to all versions for usage parity. - If a config is loaded after screens for a mod have been initialized, the manager will be invalidated and rebuilt (as needed) with the new total loaded config set considered.
ValidatedColorpopups now have a submit button for the hex string textbox, and the alpha edit box will be completely missing if the color doesn't support transparency.
Fixes
- GUI keys are no longer pressable "past" an open popup, and multiple of the same popup can no longer be opened with keybinds.
ConfigGroupnow has an optional constructor parameter to start the config collapsed.- Ingredients and Colors now work as keys/values in validated collections.
- Ingredients can no longer be interacted with outside of worlds.
- The screen manager now locks while constructing a requested screen to prevent recursive screen building if the construction process somehow calls for opening the same screen.
ValidatedColorproperly shows and accepts only 6-digit hex when it doesn't support transparency.- Popups for
ValidatedIdentifierandValidatedTagKeyproperly focus their textboxes on open again, and their textboxes are aligned properly again. - Fixed Go-to menu scroll bar disappearing if you were dragging it and moved the mouse off of the menu. The scrollbar disappearing when the menu isn't hovered is intended behavior.
- Right click menus properly pass clicks "past" themselves, allowing actions to be taken when "clicking off" of them (including "moving" the menu to the newly clicked spot.)
- Fixed sliders not capturing the change made if the mouse is released off of the slider itself.
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
@RootConfigannotation for marking a config as a "root" config. The settings will appear "inline" with the landing page config buttons, instead of in its own sub-GUI. All other aspects of the config interaction remain unchanged; loading, saving, calling from, etc. so an existing config can be marked as root with no breakage.- Added a greyed-out placeholder button for configs that aren't yet loaded but have been promised via the fabric.mod.json or mods.toml.
- New
ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpenmethods for checking if a Config GUI is currently open. DynamicListWidgethas a newscrollToEntrymethod for scrolling directly to a list element.ConfigApi.openScreennow supports passing in scope args for scrolling to them and opening them as applicable. If you have a configmy_mod:configwith a Object settingcoolObject, passingmy_mod.config.coolObjecttoopenScreenwill open the config GUI, scroll to the object setting, and open the object editing popup.- New
EntryOpenerinterface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.
Changes
- The networking api methods
registerLenient[side]are now ported to all versions for usage parity. - If a config is loaded after screens for a mod have been initialized, the manager will be invalidated and rebuilt (as needed) with the new total loaded config set considered.
ValidatedColorpopups now have a submit button for the hex string textbox, and the alpha edit box will be completely missing if the color doesn't support transparency.
Fixes
- GUI keys are no longer pressable "past" an open popup, and multiple of the same popup can no longer be opened with keybinds.
ConfigGroupnow has an optional constructor parameter to start the config collapsed.- Ingredients and Colors now work as keys/values in validated collections.
- Ingredients can no longer be interacted with outside of worlds.
- The screen manager now locks while constructing a requested screen to prevent recursive screen building if the construction process somehow calls for opening the same screen.
ValidatedColorproperly shows and accepts only 6-digit hex when it doesn't support transparency.- Popups for
ValidatedIdentifierandValidatedTagKeyproperly focus their textboxes on open again, and their textboxes are aligned properly again. - Fixed Go-to menu scroll bar disappearing if you were dragging it and moved the mouse off of the menu. The scrollbar disappearing when the menu isn't hovered is intended behavior.
- Right click menus properly pass clicks "past" themselves, allowing actions to be taken when "clicking off" of them (including "moving" the menu to the newly clicked spot.)
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
@RootConfigannotation for marking a config as a "root" config. The settings will appear "inline" with the landing page config buttons, instead of in its own sub-GUI. All other aspects of the config interaction remain unchanged; loading, saving, calling from, etc. so an existing config can be marked as root with no breakage.- Added a greyed-out placeholder button for configs that aren't yet loaded but have been promised via the fabric.mod.json or mods.toml.
- New
ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpenmethods for checking if a Config GUI is currently open. DynamicListWidgethas a newscrollToEntrymethod for scrolling directly to a list element.ConfigApi.openScreennow supports passing in scope args for scrolling to them and opening them as applicable. If you have a configmy_mod:configwith a Object settingcoolObject, passingmy_mod.config.coolObjecttoopenScreenwill open the config GUI, scroll to the object setting, and open the object editing popup.- New
EntryOpenerinterface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.
Changes
- The networking api methods
registerLenient[side]are now ported to all versions for usage parity. - If a config is loaded after screens for a mod have been initialized, the manager will be invalidated and rebuilt (as needed) with the new total loaded config set considered.
ValidatedColorpopups now have a submit button for the hex string textbox, and the alpha edit box will be completely missing if the color doesn't support transparency.
Fixes
- GUI keys are no longer pressable "past" an open popup, and multiple of the same popup can no longer be opened with keybinds.
ConfigGroupnow has an optional constructor parameter to start the config collapsed.- Ingredients and Colors now work as keys/values in validated collections.
- Ingredients can no longer be interacted with outside of worlds.
- The screen manager now locks while constructing a requested screen to prevent recursive screen building if the construction process somehow calls for opening the same screen.
ValidatedColorproperly shows and accepts only 6-digit hex when it doesn't support transparency.- Popups for
ValidatedIdentifierandValidatedTagKeyproperly focus their textboxes on open again, and their textboxes are aligned properly again. - Fixed Go-to menu scroll bar disappearing if you were dragging it and moved the mouse off of the menu. The scrollbar disappearing when the menu isn't hovered is intended behavior.
- Right click menus properly pass clicks "past" themselves, allowing actions to be taken when "clicking off" of them (including "moving" the menu to the newly clicked spot.)
- Fixed sliders not capturing the change made if the mouse is released off of the slider itself.
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
- New
registerLenientS2CandregisterLenientC2Smethods in theNetworkApi. These methods will be propagated to all versions of Fzzy Config in 0.6.6, though in most versions will have no behavior difference compared toregisterS2C/C2S
Changes
- Internal Fzzy Config packet registrations now register leniently.
NetworkApi.canSendnow checks that one of it's registered methods can in fact send.
Fixes
- Fixed clients without Fzzy Config being prevented from joining a server with it. Obviously configs will not be synced in this circumstance, FC will simply pretend that client doesn't exist. Mods that can allow this behavior should of course also handle this circumstance.
