Config API with automatic GUIs, powerful validation options, server-client sync, and more!

Fzzy Config is a powerful multi-loader configuration engine for Minecraft Mods that meets you where you want to be. Quick and dirty or detailed and featureful, Fzzy Config will work with you. It provides a wide array of features above and beyond what you can find in other libraries.
Required
Required
Условия использования, изменения и распространения этого товара.
16.06.2026 · Modrinth
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and...Скриншоты и изображения из оригинальной страницы Modrinth.











Опубликованные версии и оригинальные файлы Modrinth.
16.06.2026 · 227 806 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip16.06.2026 · 6 233 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip24.03.2026 · 820 240 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip24.03.2026 · 21 165 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 1 966 431 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 330 664 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 121 417 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 53 706 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 247 227 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 1 858 793 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 910 594 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 31 674 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 3 179 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 2 500 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 271 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 1 236 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 3 415 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 1 566 353 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip03.02.2026 · 2 156 948 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedField.translationProvider, ValidatedField.descriptionProvider, ValidatedField.attachProvider, and the associated Provider types are now static (as well as instance methods) so java users won't have to call .Companion. anymore (but can)ValidatedChoiceList and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip19.01.2026 · 187 120 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 62 130 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 19 584 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 10 338 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 39 924 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 80 541 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 114 241 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 1 964 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 462 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 286 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 37 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 138 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 214 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 75 580 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny19.01.2026 · 154 389 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentFcTextProvider system to Validated FieldsValidatedField.translationProvider to attach a custom translation provider function to a field.ValidatedField.descriptionProvider to attach a custom description (tooltip) provider function to a field.ValidatedField.attachProvider to attach an arbitrary value provider. This system is experimental and currently largely unused except for some widget namesWIDGET_TITLE provider to create custom widget labelsConfigDeprecated annotation. Use this to mark a setting as deprecated in the config.Version annotation to update a setting while still being able to use the old setting to update/inform the content of the new one.ThreadingUtils (the file watcher utility) now uses kotlin coroutines internally and has more robust startup and shutdown processesValidatedCondition, ValidatedMapped, etc.)ValidatedAny21.12.2025 · 60 605 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context21.12.2025 · 211 867 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 337 532 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 220 021 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 67 109 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 77 145 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 127 126 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 25 332 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 26 001 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 3 320 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 1 211 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 545 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 92 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 350 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 458 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 629 553 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 185 578 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 1 133 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 2 187 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.14.12.2025 · 1 860 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 617 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 563 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 2 592 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context14.12.2025 · 1 065 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentonUpdateServer events that take a ServerUpdateContext. The old events are deprecated. They will stop working (no crashes) in 0.8.0, with full removal scheduled for 0.9.0RegistryBuilder platform system for creating modded registries in a loader-agnostic way, along with other registry-related utils.PlatformApi#createRegistryBuilder. Much like registrars, a builder is created for a specific namespace.ValidatedEnum now has more widget types, including INLINE and SCROLLABLEValidationResult.bimap error nesting order flipped, the output results error context is now the parent context10.12.2025 · 37 368 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.10.12.2025 · 253 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 167 924 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 234 635 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 113 878 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 53 787 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 1 424 967 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 699 278 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 2 389 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 3 373 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 237 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 567 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 776 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 361 161 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.09.10.2025 · 847 661 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentCustomWidget interface. This will be used for abstracting all FC widgets away from directly interacting with Element, Widget, etc. to reduce porting headache going forward. Updates related to CustomWidget will be sprinkled into the next versions.CustomTextWidget utilizing said CustomWidget interface.syncConfig method to the NetworkApi for manually syncing a server-side config to clients.CustomMultilineTextWidget now has an align-right methodRelevant has gained three new methods for modifier checks, needsCtrl, needsShift, needsAltPopupWidget's wrapped LayoutWidget now contributes to re-sizing the popup based on the dimensions it would like.ConfigGroup now acts properly with nested collapsedByDefaultConfigApi.buildTranslations can now "see" inside objects that may be wrapping a translated object (such as ValidatedAny)ValidationResult.reportTo no longer reports an error context has header information only.06.10.2025 · 919 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget06.10.2025 · 33 118 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget03.08.2025 · 520 278 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget03.08.2025 · 120 339 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget03.08.2025 · 75 275 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget03.08.2025 · 938 815 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget03.08.2025 · 6 782 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget03.08.2025 · 794 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget03.08.2025 · 1 165 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget03.08.2025 · 65 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget03.08.2025 · 2 273 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget03.08.2025 · 240 113 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget03.08.2025 · 224 255 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget03.08.2025 · 773 646 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentValidatedColor has a new presets feature. These presets will be displayed in a "sub-pane" to the right of the main color popup.ValidatedColor#withColorPresetsValidatedNumber#setFormat extension function lets you define a custom DecimalFormat for your number settingspushChildLayout and popChildLayout in the Builder.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anywayLayoutWidget in favor of a builder pattern. Migrate any custom LayoutWidget impls asap; removal scheduled for 0.8.0ValidatedCondition not passing widget size changes to it's delegate widget14.07.2025 · 87 884 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContent@IgnoreCommentsForDesc annotation. Use on your config class to have the translation parser ignore @Comment and @TomlComment for in-game descriptions.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anyway14.07.2025 · 72 588 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContent@IgnoreCommentsForDesc annotation. Use on your config class to have the translation parser ignore @Comment and @TomlComment for in-game descriptions.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anyway14.07.2025 · 56 617 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContent@IgnoreCommentsForDesc annotation. Use on your config class to have the translation parser ignore @Comment and @TomlComment for in-game descriptions.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anyway14.07.2025 · 65 702 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContent@IgnoreCommentsForDesc annotation. Use on your config class to have the translation parser ignore @Comment and @TomlComment for in-game descriptions.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anyway14.07.2025 · 104 483 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContent@IgnoreCommentsForDesc annotation. Use on your config class to have the translation parser ignore @Comment and @TomlComment for in-game descriptions.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anyway14.07.2025 · 2 228 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContent@IgnoreCommentsForDesc annotation. Use on your config class to have the translation parser ignore @Comment and @TomlComment for in-game descriptions.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anyway14.07.2025 · 261 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContent@IgnoreCommentsForDesc annotation. Use on your config class to have the translation parser ignore @Comment and @TomlComment for in-game descriptions.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anyway14.07.2025 · 426 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContent@IgnoreCommentsForDesc annotation. Use on your config class to have the translation parser ignore @Comment and @TomlComment for in-game descriptions.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anyway14.07.2025 · 630 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContent@IgnoreCommentsForDesc annotation. Use on your config class to have the translation parser ignore @Comment and @TomlComment for in-game descriptions.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anyway14.07.2025 · 169 337 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContent@IgnoreCommentsForDesc annotation. Use on your config class to have the translation parser ignore @Comment and @TomlComment for in-game descriptions.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anyway14.07.2025 · 186 002 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContent@IgnoreCommentsForDesc annotation. Use on your config class to have the translation parser ignore @Comment and @TomlComment for in-game descriptions.SaveType.SEPARATE can now be opened out of the world (if it's entries can be) without caring about permissions checking, because the clients version will be considered separately anyway04.07.2025 · 958 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentTranslatable.Name, Translatable.Desc, and Translatable.Prefix annotations for data generation of lang filesConfigApi.buildTranslations and ConfigApiJava.buildTranslations methods for hooking a config into a data generatorConfigApi.platform().buildRegistryTranslations Used for either RegistrySupplier objects built by a Registrar or Identifier used in a traditional registration systemConfigScreenProvider, allowing for registering of custom screen implementations in place of the Fzzy Config built inregisterScreenProvider added for registering your providerafterClose event in PopupWidgetisPressed method in Relevant interface (which is used by FzzyKeybind and ValidatedKeybind), which allows for assertive checking for a key state, above the existing reactive response method relevantValidationResult with a new ErrorEntry system and dramatically improved process flow for building complex errors and passing exceptions and other context informationinmap, outmap, and bimapCustomMultilineTextWidget to handle click and hover events, as well as now implementing a custom MultilineText implementationValidatedField bails out of deserialization only on critical errors, now letting correction take its course more oftenRegistrar system is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update systemConfigGroup.Pop properly pops multiple times if attached to one setting multiple timesClickableTextWidget and CustomMultilineTextWidget now properly show hover events03.07.2025 · 123 464 загрузки
Stupid semantic versioning... now the fix should work with mods that add dependencies to "0.7.0+1.21.6" specifically
03.07.2025 · 325 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContent01.07.2025 · 3 043 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentTranslatable.Name, Translatable.Desc, and Translatable.Prefix annotations for data generation of lang filesConfigApi.buildTranslations and ConfigApiJava.buildTranslations methods for hooking a config into a data generatorConfigApi.platform().buildRegistryTranslations Used for either RegistrySupplier objects built by a Registrar or Identifier used in a traditional registration systemConfigScreenProvider, allowing for registering of custom screen implementations in place of the Fzzy Config built inregisterScreenProvider added for registering your providerafterClose event in PopupWidgetisPressed method in Relevant interface (which is used by FzzyKeybind and ValidatedKeybind), which allows for assertive checking for a key state, above the existing reactive response method relevantValidationResult with a new ErrorEntry system and dramatically improved process flow for building complex errors and passing exceptions and other context informationinmap, outmap, and bimapCustomMultilineTextWidget to handle click and hover events, as well as now implementing a custom MultilineText implementationValidatedField bails out of deserialization only on critical errors, now letting correction take its course more oftenRegistrar system is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update systemConfigGroup.Pop properly pops multiple times if attached to one setting multiple timesClickableTextWidget and CustomMultilineTextWidget now properly show hover events01.07.2025 · 248 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentTranslatable.Name, Translatable.Desc, and Translatable.Prefix annotations for data generation of lang filesConfigApi.buildTranslations and ConfigApiJava.buildTranslations methods for hooking a config into a data generatorConfigApi.platform().buildRegistryTranslations Used for either RegistrySupplier objects built by a Registrar or Identifier used in a traditional registration systemConfigScreenProvider, allowing for registering of custom screen implementations in place of the Fzzy Config built inregisterScreenProvider added for registering your providerafterClose event in PopupWidgetisPressed method in Relevant interface (which is used by FzzyKeybind and ValidatedKeybind), which allows for assertive checking for a key state, above the existing reactive response method relevantValidationResult with a new ErrorEntry system and dramatically improved process flow for building complex errors and passing exceptions and other context informationinmap, outmap, and bimapCustomMultilineTextWidget to handle click and hover events, as well as now implementing a custom MultilineText implementationValidatedField bails out of deserialization only on critical errors, now letting correction take its course more oftenRegistrar system is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update systemConfigGroup.Pop properly pops multiple times if attached to one setting multiple timesClickableTextWidget and CustomMultilineTextWidget now properly show hover events27.05.2025 · 269 409 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentTranslatable.Name, Translatable.Desc, and Translatable.Prefix annotations for data generation of lang filesConfigApi.buildTranslations and ConfigApiJava.buildTranslations methods for hooking a config into a data generatorConfigApi.platform().buildRegistryTranslations Used for either RegistrySupplier objects built by a Registrar or Identifier used in a traditional registration systemConfigScreenProvider, allowing for registering of custom screen implementations in place of the Fzzy Config built inregisterScreenProvider added for registering your providerafterClose event in PopupWidgetisPressed method in Relevant interface (which is used by FzzyKeybind and ValidatedKeybind), which allows for assertive checking for a key state, above the existing reactive response method relevantValidationResult with a new ErrorEntry system and dramatically improved process flow for building complex errors and passing exceptions and other context informationinmap, outmap, and bimapCustomMultilineTextWidget to handle click and hover events, as well as now implementing a custom MultilineText implementationValidatedField bails out of deserialization only on critical errors, now letting correction take its course more oftenRegistrar system is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update systemConfigGroup.Pop properly pops multiple times if attached to one setting multiple timesClickableTextWidget and CustomMultilineTextWidget now properly show hover events27.05.2025 · 75 761 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentTranslatable.Name, Translatable.Desc, and Translatable.Prefix annotations for data generation of lang filesConfigApi.buildTranslations and ConfigApiJava.buildTranslations methods for hooking a config into a data generatorConfigApi.platform().buildRegistryTranslations Used for either RegistrySupplier objects built by a Registrar or Identifier used in a traditional registration systemConfigScreenProvider, allowing for registering of custom screen implementations in place of the Fzzy Config built inregisterScreenProvider added for registering your providerafterClose event in PopupWidgetisPressed method in Relevant interface (which is used by FzzyKeybind and ValidatedKeybind), which allows for assertive checking for a key state, above the existing reactive response method relevantValidationResult with a new ErrorEntry system and dramatically improved process flow for building complex errors and passing exceptions and other context informationinmap, outmap, and bimapCustomMultilineTextWidget to handle click and hover events, as well as now implementing a custom MultilineText implementationValidatedField bails out of deserialization only on critical errors, now letting correction take its course more oftenRegistrar system is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update systemConfigGroup.Pop properly pops multiple times if attached to one setting multiple timesClickableTextWidget and CustomMultilineTextWidget now properly show hover events27.05.2025 · 170 253 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentTranslatable.Name, Translatable.Desc, and Translatable.Prefix annotations for data generation of lang filesConfigApi.buildTranslations and ConfigApiJava.buildTranslations methods for hooking a config into a data generatorConfigApi.platform().buildRegistryTranslations Used for either RegistrySupplier objects built by a Registrar or Identifier used in a traditional registration systemConfigScreenProvider, allowing for registering of custom screen implementations in place of the Fzzy Config built inregisterScreenProvider added for registering your providerafterClose event in PopupWidgetisPressed method in Relevant interface (which is used by FzzyKeybind and ValidatedKeybind), which allows for assertive checking for a key state, above the existing reactive response method relevantValidationResult with a new ErrorEntry system and dramatically improved process flow for building complex errors and passing exceptions and other context informationinmap, outmap, and bimapCustomMultilineTextWidget to handle click and hover events, as well as now implementing a custom MultilineText implementationValidatedField bails out of deserialization only on critical errors, now letting correction take its course more oftenRegistrar system is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update systemConfigGroup.Pop properly pops multiple times if attached to one setting multiple timesClickableTextWidget and CustomMultilineTextWidget now properly show hover events27.05.2025 · 600 649 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentTranslatable.Name, Translatable.Desc, and Translatable.Prefix annotations for data generation of lang filesConfigApi.buildTranslations and ConfigApiJava.buildTranslations methods for hooking a config into a data generatorConfigApi.platform().buildRegistryTranslations Used for either RegistrySupplier objects built by a Registrar or Identifier used in a traditional registration systemConfigScreenProvider, allowing for registering of custom screen implementations in place of the Fzzy Config built inregisterScreenProvider added for registering your providerafterClose event in PopupWidgetisPressed method in Relevant interface (which is used by FzzyKeybind and ValidatedKeybind), which allows for assertive checking for a key state, above the existing reactive response method relevantValidationResult with a new ErrorEntry system and dramatically improved process flow for building complex errors and passing exceptions and other context informationinmap, outmap, and bimapCustomMultilineTextWidget to handle click and hover events, as well as now implementing a custom MultilineText implementationValidatedField bails out of deserialization only on critical errors, now letting correction take its course more oftenRegistrar system is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update systemConfigGroup.Pop properly pops multiple times if attached to one setting multiple timesClickableTextWidget and CustomMultilineTextWidget now properly show hover events26.05.2025 · 2 453 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentTranslatable.Name, Translatable.Desc, and Translatable.Prefix annotations for data generation of lang filesConfigApi.buildTranslations and ConfigApiJava.buildTranslations methods for hooking a config into a data generatorConfigApi.platform().buildRegistryTranslations Used for either RegistrySupplier objects built by a Registrar or Identifier used in a traditional registration systemConfigScreenProvider, allowing for registering of custom screen implementations in place of the Fzzy Config built inregisterScreenProvider added for registering your providerafterClose event in PopupWidgetisPressed method in Relevant interface (which is used by FzzyKeybind and ValidatedKeybind), which allows for assertive checking for a key state, above the existing reactive response method relevantValidationResult with a new ErrorEntry system and dramatically improved process flow for building complex errors and passing exceptions and other context informationinmap, outmap, and bimapCustomMultilineTextWidget to handle click and hover events, as well as now implementing a custom MultilineText implementationValidatedField bails out of deserialization only on critical errors, now letting correction take its course more oftenRegistrar system is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update systemConfigGroup.Pop properly pops multiple times if attached to one setting multiple timesClickableTextWidget and CustomMultilineTextWidget now properly show hover events26.05.2025 · 857 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentTranslatable.Name, Translatable.Desc, and Translatable.Prefix annotations for data generation of lang filesConfigApi.buildTranslations and ConfigApiJava.buildTranslations methods for hooking a config into a data generatorConfigApi.platform().buildRegistryTranslations Used for either RegistrySupplier objects built by a Registrar or Identifier used in a traditional registration systemConfigScreenProvider, allowing for registering of custom screen implementations in place of the Fzzy Config built inregisterScreenProvider added for registering your providerafterClose event in PopupWidgetisPressed method in Relevant interface (which is used by FzzyKeybind and ValidatedKeybind), which allows for assertive checking for a key state, above the existing reactive response method relevantValidationResult with a new ErrorEntry system and dramatically improved process flow for building complex errors and passing exceptions and other context informationinmap, outmap, and bimapCustomMultilineTextWidget to handle click and hover events, as well as now implementing a custom MultilineText implementationValidatedField bails out of deserialization only on critical errors, now letting correction take its course more oftenRegistrar system is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update systemConfigGroup.Pop properly pops multiple times if attached to one setting multiple timesClickableTextWidget and CustomMultilineTextWidget now properly show hover events26.05.2025 · 334 118 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentTranslatable.Name, Translatable.Desc, and Translatable.Prefix annotations for data generation of lang filesConfigApi.buildTranslations and ConfigApiJava.buildTranslations methods for hooking a config into a data generatorConfigApi.platform().buildRegistryTranslations Used for either RegistrySupplier objects built by a Registrar or Identifier used in a traditional registration systemConfigScreenProvider, allowing for registering of custom screen implementations in place of the Fzzy Config built inregisterScreenProvider added for registering your providerafterClose event in PopupWidgetisPressed method in Relevant interface (which is used by FzzyKeybind and ValidatedKeybind), which allows for assertive checking for a key state, above the existing reactive response method relevantValidationResult with a new ErrorEntry system and dramatically improved process flow for building complex errors and passing exceptions and other context informationinmap, outmap, and bimapCustomMultilineTextWidget to handle click and hover events, as well as now implementing a custom MultilineText implementationValidatedField bails out of deserialization only on critical errors, now letting correction take its course more oftenRegistrar system is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update systemConfigGroup.Pop properly pops multiple times if attached to one setting multiple timesClickableTextWidget and CustomMultilineTextWidget now properly show hover events26.05.2025 · 1 516 406 загрузки
ValidatedEnumMap is removedSmallSpriteDecoration#<init>SpriteDecorated#textureSet & textures is now a required overrideSpriteDecoration#<init>CustomButtonWidget#<init> & builder is now only non-override method for adding custom buttonActiveButtonWidgetTextlessActionWidgetDynamicListWidget.EntryPos and implementations made internalPopupWidget position elements; LayoutWidget no longer inherits from the PopupWidget variantPopupController from PopupParentElementSuggestionWindowListener and SuggestionWindowProvider moved out of internal sub-packageImmutableRelPosRenderUtil#renderBlurTranslatable.Result has been replaced with Translatable.ResultProvider. This affects EntrySearcher as well as Searcher.SearchContentTranslatable.Name, Translatable.Desc, and Translatable.Prefix annotations for data generation of lang filesConfigApi.buildTranslations and ConfigApiJava.buildTranslations methods for hooking a config into a data generatorConfigApi.platform().buildRegistryTranslations Used for either RegistrySupplier objects built by a Registrar or Identifier used in a traditional registration systemConfigScreenProvider, allowing for registering of custom screen implementations in place of the Fzzy Config built inregisterScreenProvider added for registering your providerafterClose event in PopupWidgetisPressed method in Relevant interface (which is used by FzzyKeybind and ValidatedKeybind), which allows for assertive checking for a key state, above the existing reactive response method relevantValidationResult with a new ErrorEntry system and dramatically improved process flow for building complex errors and passing exceptions and other context informationinmap, outmap, and bimapCustomMultilineTextWidget to handle click and hover events, as well as now implementing a custom MultilineText implementationValidatedField bails out of deserialization only on critical errors, now letting correction take its course more oftenRegistrar system is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update systemConfigGroup.Pop properly pops multiple times if attached to one setting multiple timesClickableTextWidget and CustomMultilineTextWidget now properly show hover events09.04.2025 · 167 154 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedKeybind now 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.key.[type] prefix removed (except for mouse buttons, those start with mouse.)page.down versus the minecraft key.keyboard.page.downmouse.right versus key.mouse.rightValidatedTriState will now accept boolean inputs from the file, if a user accidentally uses true or false instead of the intended enum form "true" or "false"ValidatedAny is 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.09.04.2025 · 107 324 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedKeybind now 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.key.[type] prefix removed (except for mouse buttons, those start with mouse.)page.down versus the minecraft key.keyboard.page.downmouse.right versus key.mouse.rightValidatedTriState will now accept boolean inputs from the file, if a user accidentally uses true or false instead of the intended enum form "true" or "false"ValidatedAny is 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.09.04.2025 · 417 533 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedKeybind now 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.key.[type] prefix removed (except for mouse buttons, those start with mouse.)page.down versus the minecraft key.keyboard.page.downmouse.right versus key.mouse.rightValidatedTriState will now accept boolean inputs from the file, if a user accidentally uses true or false instead of the intended enum form "true" or "false"ValidatedAny is 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.09.04.2025 · 272 609 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedKeybind now 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.key.[type] prefix removed (except for mouse buttons, those start with mouse.)page.down versus the minecraft key.keyboard.page.downmouse.right versus key.mouse.rightValidatedTriState will now accept boolean inputs from the file, if a user accidentally uses true or false instead of the intended enum form "true" or "false"ValidatedAny is 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.09.04.2025 · 2 692 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedKeybind now 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.key.[type] prefix removed (except for mouse buttons, those start with mouse.)page.down versus the minecraft key.keyboard.page.downmouse.right versus key.mouse.rightValidatedTriState will now accept boolean inputs from the file, if a user accidentally uses true or false instead of the intended enum form "true" or "false"ValidatedAny is 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.09.04.2025 · 2 008 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedKeybind now 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.key.[type] prefix removed (except for mouse buttons, those start with mouse.)page.down versus the minecraft key.keyboard.page.downmouse.right versus key.mouse.rightValidatedTriState will now accept boolean inputs from the file, if a user accidentally uses true or false instead of the intended enum form "true" or "false"ValidatedAny is 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.09.04.2025 · 258 235 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedKeybind now 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.key.[type] prefix removed (except for mouse buttons, those start with mouse.)page.down versus the minecraft key.keyboard.page.downmouse.right versus key.mouse.rightValidatedTriState will now accept boolean inputs from the file, if a user accidentally uses true or false instead of the intended enum form "true" or "false"ValidatedAny is 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.09.04.2025 · 235 841 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedKeybind now 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.key.[type] prefix removed (except for mouse buttons, those start with mouse.)page.down versus the minecraft key.keyboard.page.downmouse.right versus key.mouse.rightValidatedTriState will now accept boolean inputs from the file, if a user accidentally uses true or false instead of the intended enum form "true" or "false"ValidatedAny is 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.29.03.2025 · 383 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0SaveType method in ConfigOVERWRITE - 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.RESTART and Action.RELOG), as they won't be able to properly sync up this game state if they can't overwrite the local file.Translatable.ResultProvider super-class for more nuanced and efficient storage of translation results. Currently, half-wired-in until 0.7.0.Result can be cached with the new Translatable.createScopedResultTranslatable.Result now implements Searcher.SearchContent directly, and is now deprecated in favor of the new ResultProviderTranslatable.createResult/Translatable.createScopedResultConfigEntry can now process searches using the ContentBuilder.searchResult method. This presents valid "child" search results when the parent list is searched.ValidatedAny now has its own search barConfigScreenManager passes Config and entry Content misc. context to entry creators@Translation (or the entire class is marked with @Translation) will now properly render the translated name in the popup headerConfigGroup involving kotlin constructors.29.03.2025 · 6 943 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0SaveType method in ConfigOVERWRITE - 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.RESTART and Action.RELOG), as they won't be able to properly sync up this game state if they can't overwrite the local file.Translatable.ResultProvider super-class for more nuanced and efficient storage of translation results. Currently, half-wired-in until 0.7.0.Result can be cached with the new Translatable.createScopedResultTranslatable.Result now implements Searcher.SearchContent directly, and is now deprecated in favor of the new ResultProviderTranslatable.createResult/Translatable.createScopedResultConfigEntry can now process searches using the ContentBuilder.searchResult method. This presents valid "child" search results when the parent list is searched.ValidatedAny now has its own search barConfigScreenManager passes Config and entry Content misc. context to entry creators@Translation (or the entire class is marked with @Translation) will now properly render the translated name in the popup headerConfigGroup involving kotlin constructors.29.03.2025 · 23 685 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0SaveType method in ConfigOVERWRITE - 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.RESTART and Action.RELOG), as they won't be able to properly sync up this game state if they can't overwrite the local file.Translatable.ResultProvider super-class for more nuanced and efficient storage of translation results. Currently, half-wired-in until 0.7.0.Result can be cached with the new Translatable.createScopedResultTranslatable.Result now implements Searcher.SearchContent directly, and is now deprecated in favor of the new ResultProviderTranslatable.createResult/Translatable.createScopedResultConfigEntry can now process searches using the ContentBuilder.searchResult method. This presents valid "child" search results when the parent list is searched.ValidatedAny now has its own search barConfigScreenManager passes Config and entry Content misc. context to entry creators@Translation (or the entire class is marked with @Translation) will now properly render the translated name in the popup headerConfigGroup involving kotlin constructors.29.03.2025 · 81 202 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0SaveType method in ConfigOVERWRITE - 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.RESTART and Action.RELOG), as they won't be able to properly sync up this game state if they can't overwrite the local file.Translatable.ResultProvider super-class for more nuanced and efficient storage of translation results. Currently, half-wired-in until 0.7.0.Result can be cached with the new Translatable.createScopedResultTranslatable.Result now implements Searcher.SearchContent directly, and is now deprecated in favor of the new ResultProviderTranslatable.createResult/Translatable.createScopedResultConfigEntry can now process searches using the ContentBuilder.searchResult method. This presents valid "child" search results when the parent list is searched.ValidatedAny now has its own search barConfigScreenManager passes Config and entry Content misc. context to entry creators@Translation (or the entire class is marked with @Translation) will now properly render the translated name in the popup headerConfigGroup involving kotlin constructors.29.03.2025 · 23 486 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0SaveType method in ConfigOVERWRITE - 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.RESTART and Action.RELOG), as they won't be able to properly sync up this game state if they can't overwrite the local file.Translatable.ResultProvider super-class for more nuanced and efficient storage of translation results. Currently, half-wired-in until 0.7.0.Result can be cached with the new Translatable.createScopedResultTranslatable.Result now implements Searcher.SearchContent directly, and is now deprecated in favor of the new ResultProviderTranslatable.createResult/Translatable.createScopedResultConfigEntry can now process searches using the ContentBuilder.searchResult method. This presents valid "child" search results when the parent list is searched.ValidatedAny now has its own search barConfigScreenManager passes Config and entry Content misc. context to entry creators@Translation (or the entire class is marked with @Translation) will now properly render the translated name in the popup headerConfigGroup involving kotlin constructors.29.03.2025 · 270 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0SaveType method in ConfigOVERWRITE - 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.RESTART and Action.RELOG), as they won't be able to properly sync up this game state if they can't overwrite the local file.Translatable.ResultProvider super-class for more nuanced and efficient storage of translation results. Currently, half-wired-in until 0.7.0.Result can be cached with the new Translatable.createScopedResultTranslatable.Result now implements Searcher.SearchContent directly, and is now deprecated in favor of the new ResultProviderTranslatable.createResult/Translatable.createScopedResultConfigEntry can now process searches using the ContentBuilder.searchResult method. This presents valid "child" search results when the parent list is searched.ValidatedAny now has its own search barConfigScreenManager passes Config and entry Content misc. context to entry creators@Translation (or the entire class is marked with @Translation) will now properly render the translated name in the popup headerConfigGroup involving kotlin constructors.29.03.2025 · 24 531 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0SaveType method in ConfigOVERWRITE - 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.RESTART and Action.RELOG), as they won't be able to properly sync up this game state if they can't overwrite the local file.Translatable.ResultProvider super-class for more nuanced and efficient storage of translation results. Currently, half-wired-in until 0.7.0.Result can be cached with the new Translatable.createScopedResultTranslatable.Result now implements Searcher.SearchContent directly, and is now deprecated in favor of the new ResultProviderTranslatable.createResult/Translatable.createScopedResultConfigEntry can now process searches using the ContentBuilder.searchResult method. This presents valid "child" search results when the parent list is searched.ValidatedAny now has its own search barConfigScreenManager passes Config and entry Content misc. context to entry creators@Translation (or the entire class is marked with @Translation) will now properly render the translated name in the popup headerConfigGroup involving kotlin constructors.29.03.2025 · 37 038 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0SaveType method in ConfigOVERWRITE - 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.RESTART and Action.RELOG), as they won't be able to properly sync up this game state if they can't overwrite the local file.Translatable.ResultProvider super-class for more nuanced and efficient storage of translation results. Currently, half-wired-in until 0.7.0.Result can be cached with the new Translatable.createScopedResultTranslatable.Result now implements Searcher.SearchContent directly, and is now deprecated in favor of the new ResultProviderTranslatable.createResult/Translatable.createScopedResultConfigEntry can now process searches using the ContentBuilder.searchResult method. This presents valid "child" search results when the parent list is searched.ValidatedAny now has its own search barConfigScreenManager passes Config and entry Content misc. context to entry creators@Translation (or the entire class is marked with @Translation) will now properly render the translated name in the popup headerConfigGroup involving kotlin constructors.21.03.2025 · 23 442 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0TOML, JSON, JSON5, JSONC. Select your desired format by overriding fileType in the config class.@Comment or @TomlCommentPopupController from PopupParentElement, allowing for smoother implementation of popups into existing screens.21.03.2025 · 20 549 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0TOML, JSON, JSON5, JSONC. Select your desired format by overriding fileType in the config class.@Comment or @TomlCommentPopupController from PopupParentElement, allowing for smoother implementation of popups into existing screens.21.03.2025 · 14 435 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0TOML, JSON, JSON5, JSONC. Select your desired format by overriding fileType in the config class.@Comment or @TomlCommentPopupController from PopupParentElement, allowing for smoother implementation of popups into existing screens.21.03.2025 · 373 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0TOML, JSON, JSON5, JSONC. Select your desired format by overriding fileType in the config class.@Comment or @TomlCommentPopupController from PopupParentElement, allowing for smoother implementation of popups into existing screens.21.03.2025 · 15 821 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0TOML, JSON, JSON5, JSONC. Select your desired format by overriding fileType in the config class.@Comment or @TomlCommentPopupController from PopupParentElement, allowing for smoother implementation of popups into existing screens.21.03.2025 · 21 002 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0TOML, JSON, JSON5, JSONC. Select your desired format by overriding fileType in the config class.@Comment or @TomlCommentPopupController from PopupParentElement, allowing for smoother implementation of popups into existing screens.16.03.2025 · 6 544 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0@RootConfig annotation 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.ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpen methods for checking if a Config GUI is currently open.DynamicListWidget has a new scrollToEntry method for scrolling directly to a list element.ConfigApi.openScreen now supports passing in scope args for scrolling to them and opening them as applicable. If you have a config my_mod:config with a Object setting coolObject, passing my_mod.config.coolObject to openScreen will open the config GUI, scroll to the object setting, and open the object editing popup.EntryOpener interface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.registerLenient[side] are now ported to all versions for usage parity.ValidatedColor popups 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.ConfigGroup now has an optional constructor parameter to start the config collapsed.ValidatedColor properly shows and accepts only 6-digit hex when it doesn't support transparency.ValidatedIdentifier and ValidatedTagKey properly focus their textboxes on open again, and their textboxes are aligned properly again.16.03.2025 · 32 680 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0@RootConfig annotation 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.ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpen methods for checking if a Config GUI is currently open.DynamicListWidget has a new scrollToEntry method for scrolling directly to a list element.ConfigApi.openScreen now supports passing in scope args for scrolling to them and opening them as applicable. If you have a config my_mod:config with a Object setting coolObject, passing my_mod.config.coolObject to openScreen will open the config GUI, scroll to the object setting, and open the object editing popup.EntryOpener interface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.registerLenient[side] are now ported to all versions for usage parity.ValidatedColor popups 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.ConfigGroup now has an optional constructor parameter to start the config collapsed.ValidatedColor properly shows and accepts only 6-digit hex when it doesn't support transparency.ValidatedIdentifier and ValidatedTagKey properly focus their textboxes on open again, and their textboxes are aligned properly again.16.03.2025 · 9 244 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0@RootConfig annotation 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.ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpen methods for checking if a Config GUI is currently open.DynamicListWidget has a new scrollToEntry method for scrolling directly to a list element.ConfigApi.openScreen now supports passing in scope args for scrolling to them and opening them as applicable. If you have a config my_mod:config with a Object setting coolObject, passing my_mod.config.coolObject to openScreen will open the config GUI, scroll to the object setting, and open the object editing popup.EntryOpener interface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.registerLenient[side] are now ported to all versions for usage parity.ValidatedColor popups 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.ConfigGroup now has an optional constructor parameter to start the config collapsed.ValidatedColor properly shows and accepts only 6-digit hex when it doesn't support transparency.ValidatedIdentifier and ValidatedTagKey properly focus their textboxes on open again, and their textboxes are aligned properly again.16.03.2025 · 183 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0@RootConfig annotation 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.ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpen methods for checking if a Config GUI is currently open.DynamicListWidget has a new scrollToEntry method for scrolling directly to a list element.ConfigApi.openScreen now supports passing in scope args for scrolling to them and opening them as applicable. If you have a config my_mod:config with a Object setting coolObject, passing my_mod.config.coolObject to openScreen will open the config GUI, scroll to the object setting, and open the object editing popup.EntryOpener interface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.registerLenient[side] are now ported to all versions for usage parity.ValidatedColor popups 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.ConfigGroup now has an optional constructor parameter to start the config collapsed.ValidatedColor properly shows and accepts only 6-digit hex when it doesn't support transparency.ValidatedIdentifier and ValidatedTagKey properly focus their textboxes on open again, and their textboxes are aligned properly again.16.03.2025 · 14 882 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0@RootConfig annotation 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.ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpen methods for checking if a Config GUI is currently open.DynamicListWidget has a new scrollToEntry method for scrolling directly to a list element.ConfigApi.openScreen now supports passing in scope args for scrolling to them and opening them as applicable. If you have a config my_mod:config with a Object setting coolObject, passing my_mod.config.coolObject to openScreen will open the config GUI, scroll to the object setting, and open the object editing popup.EntryOpener interface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.registerLenient[side] are now ported to all versions for usage parity.ValidatedColor popups 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.ConfigGroup now has an optional constructor parameter to start the config collapsed.ValidatedColor properly shows and accepts only 6-digit hex when it doesn't support transparency.ValidatedIdentifier and ValidatedTagKey properly focus their textboxes on open again, and their textboxes are aligned properly again.16.03.2025 · 17 273 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0@RootConfig annotation 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.ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpen methods for checking if a Config GUI is currently open.DynamicListWidget has a new scrollToEntry method for scrolling directly to a list element.ConfigApi.openScreen now supports passing in scope args for scrolling to them and opening them as applicable. If you have a config my_mod:config with a Object setting coolObject, passing my_mod.config.coolObject to openScreen will open the config GUI, scroll to the object setting, and open the object editing popup.EntryOpener interface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.registerLenient[side] are now ported to all versions for usage parity.ValidatedColor popups 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.ConfigGroup now has an optional constructor parameter to start the config collapsed.ValidatedColor properly shows and accepts only 6-digit hex when it doesn't support transparency.ValidatedIdentifier and ValidatedTagKey properly focus their textboxes on open again, and their textboxes are aligned properly again.09.03.2025 · 17 095 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0registerLenientS2C and registerLenientC2S methods in the NetworkApi. 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 to registerS2C/C2SNetworkApi.canSend now checks that one of it's registered methods can in fact send.09.03.2025 · 1 162 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.006.03.2025 · 148 216 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0
WidgetEntry for easy creation of Dynamic Lists wrapping a collection of widgets.SCROLLABLE for ValidatedChoiceList and ValidatedChoice which opens a scrollable and searchable widget listValidatedChoice now includes the INLINE widget type previously only available on the list versionValidatedChoiceList now has its own decorator, distinguishing it from a normal list TriState utility enum and corresponding ValidatedTriState validation for configs. Like most tri-states, has TRUE, FALSE, and DEFAULT choices, and two different widget options for selecting between them.FzzyKeybind system that builds on the ContextType system introduced in 0.6.0.ValidatedKeybind validation added for configurable keybind handling.ConfigScreen context handler that is used to handle GUI inputs.wdithFunction and heightFunction to PopupWidget, allowing for dynamic sizing based on screen and previous dimension context.keybinds.toml controls the inputs used for interacting with Config GUIs.RegistrySupplier now implements RegistryEntry directly, as well as passing its reference entry. This includes a breaking experimental change, getKey has changed to getRegistryKeyValidatedChoice and ValidatedChoiceListDynamicListWidget, deferring several allocations until neededConfigScreenManager now caches config GUI templates incrementally, instead of front-loading all screen templates at once. This has some side effects, namely that each screen now has a separate Update Manager, so restoring defaults, reverting changes, etc. is now sectioned off per-config instead of global to the namespace. The "Root" screen update manager can see any loaded children managers, so changes can be managed from the root screen into any child screens that have been loaded and modified.ValidatedAny popup saying "Revert Changes" for both the revert and restore defaults buttonValidatedCondition now properly considers its conditions when determining default and changed states. A Validated Condition that has failed conditions will always be considered "default"ConfigScreenNarrator now properly strips out formatting codes before narrating the text content (this also affects the vanilla screen narrator)ValidatedIdentifier config widgets not being properly navigable with keyboard.06.03.2025 · 24 105 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0
WidgetEntry for easy creation of Dynamic Lists wrapping a collection of widgets.SCROLLABLE for ValidatedChoiceList and ValidatedChoice which opens a scrollable and searchable widget listValidatedChoice now includes the INLINE widget type previously only available on the list versionValidatedChoiceList now has its own decorator, distinguishing it from a normal list TriState utility enum and corresponding ValidatedTriState validation for configs. Like most tri-states, has TRUE, FALSE, and DEFAULT choices, and two different widget options for selecting between them.FzzyKeybind system that builds on the ContextType system introduced in 0.6.0.ValidatedKeybind validation added for configurable keybind handling.ConfigScreen context handler that is used to handle GUI inputs.wdithFunction and heightFunction to PopupWidget, allowing for dynamic sizing based on screen and previous dimension context.keybinds.toml controls the inputs used for interacting with Config GUIs.RegistrySupplier now implements RegistryEntry directly, as well as passing its reference entry. This includes a breaking experimental change, getKey has changed to getRegistryKeyValidatedChoice and ValidatedChoiceListDynamicListWidget, deferring several allocations until neededConfigScreenManager now caches config GUI templates incrementally, instead of front-loading all screen templates at once. This has some side effects, namely that each screen now has a separate Update Manager, so restoring defaults, reverting changes, etc. is now sectioned off per-config instead of global to the namespace. The "Root" screen update manager can see any loaded children managers, so changes can be managed from the root screen into any child screens that have been loaded and modified.ValidatedAny popup saying "Revert Changes" for both the revert and restore defaults buttonValidatedCondition now properly considers its conditions when determining default and changed states. A Validated Condition that has failed conditions will always be considered "default"ConfigScreenNarrator now properly strips out formatting codes before narrating the text content (this also affects the vanilla screen narrator)ValidatedIdentifier config widgets not being properly navigable with keyboard.06.03.2025 · 25 717 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0
WidgetEntry for easy creation of Dynamic Lists wrapping a collection of widgets.SCROLLABLE for ValidatedChoiceList and ValidatedChoice which opens a scrollable and searchable widget listValidatedChoice now includes the INLINE widget type previously only available on the list versionValidatedChoiceList now has its own decorator, distinguishing it from a normal list TriState utility enum and corresponding ValidatedTriState validation for configs. Like most tri-states, has TRUE, FALSE, and DEFAULT choices, and two different widget options for selecting between them.FzzyKeybind system that builds on the ContextType system introduced in 0.6.0.ValidatedKeybind validation added for configurable keybind handling.ConfigScreen context handler that is used to handle GUI inputs.wdithFunction and heightFunction to PopupWidget, allowing for dynamic sizing based on screen and previous dimension context.keybinds.toml controls the inputs used for interacting with Config GUIs.RegistrySupplier now implements RegistryEntry directly, as well as passing its reference entry. This includes a breaking experimental change, getKey has changed to getRegistryKeyValidatedChoice and ValidatedChoiceListDynamicListWidget, deferring several allocations until neededConfigScreenManager now caches config GUI templates incrementally, instead of front-loading all screen templates at once. This has some side effects, namely that each screen now has a separate Update Manager, so restoring defaults, reverting changes, etc. is now sectioned off per-config instead of global to the namespace. The "Root" screen update manager can see any loaded children managers, so changes can be managed from the root screen into any child screens that have been loaded and modified.ValidatedAny popup saying "Revert Changes" for both the revert and restore defaults buttonValidatedCondition now properly considers its conditions when determining default and changed states. A Validated Condition that has failed conditions will always be considered "default"ConfigScreenNarrator now properly strips out formatting codes before narrating the text content (this also affects the vanilla screen narrator)ValidatedIdentifier config widgets not being properly navigable with keyboard.06.03.2025 · 183 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0
WidgetEntry for easy creation of Dynamic Lists wrapping a collection of widgets.SCROLLABLE for ValidatedChoiceList and ValidatedChoice which opens a scrollable and searchable widget listValidatedChoice now includes the INLINE widget type previously only available on the list versionValidatedChoiceList now has its own decorator, distinguishing it from a normal list TriState utility enum and corresponding ValidatedTriState validation for configs. Like most tri-states, has TRUE, FALSE, and DEFAULT choices, and two different widget options for selecting between them.FzzyKeybind system that builds on the ContextType system introduced in 0.6.0.ValidatedKeybind validation added for configurable keybind handling.ConfigScreen context handler that is used to handle GUI inputs.wdithFunction and heightFunction to PopupWidget, allowing for dynamic sizing based on screen and previous dimension context.keybinds.toml controls the inputs used for interacting with Config GUIs.RegistrySupplier now implements RegistryEntry directly, as well as passing its reference entry. This includes a breaking experimental change, getKey has changed to getRegistryKeyValidatedChoice and ValidatedChoiceListDynamicListWidget, deferring several allocations until neededConfigScreenManager now caches config GUI templates incrementally, instead of front-loading all screen templates at once. This has some side effects, namely that each screen now has a separate Update Manager, so restoring defaults, reverting changes, etc. is now sectioned off per-config instead of global to the namespace. The "Root" screen update manager can see any loaded children managers, so changes can be managed from the root screen into any child screens that have been loaded and modified.ValidatedAny popup saying "Revert Changes" for both the revert and restore defaults buttonValidatedCondition now properly considers its conditions when determining default and changed states. A Validated Condition that has failed conditions will always be considered "default"ConfigScreenNarrator now properly strips out formatting codes before narrating the text content (this also affects the vanilla screen narrator)ValidatedIdentifier config widgets not being properly navigable with keyboard.06.03.2025 · 11 113 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0
WidgetEntry for easy creation of Dynamic Lists wrapping a collection of widgets.SCROLLABLE for ValidatedChoiceList and ValidatedChoice which opens a scrollable and searchable widget listValidatedChoice now includes the INLINE widget type previously only available on the list versionValidatedChoiceList now has its own decorator, distinguishing it from a normal list TriState utility enum and corresponding ValidatedTriState validation for configs. Like most tri-states, has TRUE, FALSE, and DEFAULT choices, and two different widget options for selecting between them.FzzyKeybind system that builds on the ContextType system introduced in 0.6.0.ValidatedKeybind validation added for configurable keybind handling.ConfigScreen context handler that is used to handle GUI inputs.wdithFunction and heightFunction to PopupWidget, allowing for dynamic sizing based on screen and previous dimension context.keybinds.toml controls the inputs used for interacting with Config GUIs.RegistrySupplier now implements RegistryEntry directly, as well as passing its reference entry. This includes a breaking experimental change, getKey has changed to getRegistryKeyValidatedChoice and ValidatedChoiceListDynamicListWidget, deferring several allocations until neededConfigScreenManager now caches config GUI templates incrementally, instead of front-loading all screen templates at once. This has some side effects, namely that each screen now has a separate Update Manager, so restoring defaults, reverting changes, etc. is now sectioned off per-config instead of global to the namespace. The "Root" screen update manager can see any loaded children managers, so changes can be managed from the root screen into any child screens that have been loaded and modified.ValidatedAny popup saying "Revert Changes" for both the revert and restore defaults buttonValidatedCondition now properly considers its conditions when determining default and changed states. A Validated Condition that has failed conditions will always be considered "default"ConfigScreenNarrator now properly strips out formatting codes before narrating the text content (this also affects the vanilla screen narrator)ValidatedIdentifier config widgets not being properly navigable with keyboard.06.03.2025 · 9 344 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0
WidgetEntry for easy creation of Dynamic Lists wrapping a collection of widgets.SCROLLABLE for ValidatedChoiceList and ValidatedChoice which opens a scrollable and searchable widget listValidatedChoice now includes the INLINE widget type previously only available on the list versionValidatedChoiceList now has its own decorator, distinguishing it from a normal list TriState utility enum and corresponding ValidatedTriState validation for configs. Like most tri-states, has TRUE, FALSE, and DEFAULT choices, and two different widget options for selecting between them.FzzyKeybind system that builds on the ContextType system introduced in 0.6.0.ValidatedKeybind validation added for configurable keybind handling.ConfigScreen context handler that is used to handle GUI inputs.wdithFunction and heightFunction to PopupWidget, allowing for dynamic sizing based on screen and previous dimension context.keybinds.toml controls the inputs used for interacting with Config GUIs.RegistrySupplier now implements RegistryEntry directly, as well as passing its reference entry. This includes a breaking experimental change, getKey has changed to getRegistryKeyValidatedChoice and ValidatedChoiceListDynamicListWidget, deferring several allocations until neededConfigScreenManager now caches config GUI templates incrementally, instead of front-loading all screen templates at once. This has some side effects, namely that each screen now has a separate Update Manager, so restoring defaults, reverting changes, etc. is now sectioned off per-config instead of global to the namespace. The "Root" screen update manager can see any loaded children managers, so changes can be managed from the root screen into any child screens that have been loaded and modified.ValidatedAny popup saying "Revert Changes" for both the revert and restore defaults buttonValidatedCondition now properly considers its conditions when determining default and changed states. A Validated Condition that has failed conditions will always be considered "default"ConfigScreenNarrator now properly strips out formatting codes before narrating the text content (this also affects the vanilla screen narrator)ValidatedIdentifier config widgets not being properly navigable with keyboard.01.02.2025 · 41 159 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0TextureProvider interface for generic provision of textures based on active/hovered state.Single and Quad variants of TextureSet added for sets with one texture regardless of state, and sets with all four textures different, respectively.TextureSet now implements the TextureProvider interfaceCustomPressableWidget and therefore CustomButtonWidget now use TextureProvider instead of directly TextureSet in their implementations.textureSet method of SpriteDecorated is now deprecated and defaulted, with a scheduled removal of 0.7.0.SpriteDecoration and SmallSpriteDecoration constructors with TextureSet are likewise deprecated, with new overloads taking TextureProviderTextureIds are now explicitly typed as TextureProvider instead. ValidatedChoiceList now shows highlights around "unselected" options to better indicate that they are still active button elements.ValidatedChoiceList popup widgets being too narrow for the popup with very short choice titles.LayoutWidget01.02.2025 · 282 254 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0TextureProvider interface for generic provision of textures based on active/hovered state.Single and Quad variants of TextureSet added for sets with one texture regardless of state, and sets with all four textures different, respectively.TextureSet now implements the TextureProvider interfaceCustomPressableWidget and therefore CustomButtonWidget now use TextureProvider instead of directly TextureSet in their implementations.textureSet method of SpriteDecorated is now deprecated and defaulted, with a scheduled removal of 0.7.0.SpriteDecoration and SmallSpriteDecoration constructors with TextureSet are likewise deprecated, with new overloads taking TextureProviderTextureIds are now explicitly typed as TextureProvider instead. ValidatedChoiceList now shows highlights around "unselected" options to better indicate that they are still active button elements.ValidatedChoiceList popup widgets being too narrow for the popup with very short choice titles.LayoutWidget01.02.2025 · 187 906 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0TextureProvider interface for generic provision of textures based on active/hovered state.Single and Quad variants of TextureSet added for sets with one texture regardless of state, and sets with all four textures different, respectively.TextureSet now implements the TextureProvider interfaceCustomPressableWidget and therefore CustomButtonWidget now use TextureProvider instead of directly TextureSet in their implementations.textureSet method of SpriteDecorated is now deprecated and defaulted, with a scheduled removal of 0.7.0.SpriteDecoration and SmallSpriteDecoration constructors with TextureSet are likewise deprecated, with new overloads taking TextureProviderTextureIds are now explicitly typed as TextureProvider instead. ValidatedChoiceList now shows highlights around "unselected" options to better indicate that they are still active button elements.ValidatedChoiceList popup widgets being too narrow for the popup with very short choice titles.LayoutWidget01.02.2025 · 855 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0TextureProvider interface for generic provision of textures based on active/hovered state.Single and Quad variants of TextureSet added for sets with one texture regardless of state, and sets with all four textures different, respectively.TextureSet now implements the TextureProvider interfaceCustomPressableWidget and therefore CustomButtonWidget now use TextureProvider instead of directly TextureSet in their implementations.textureSet method of SpriteDecorated is now deprecated and defaulted, with a scheduled removal of 0.7.0.SpriteDecoration and SmallSpriteDecoration constructors with TextureSet are likewise deprecated, with new overloads taking TextureProviderTextureIds are now explicitly typed as TextureProvider instead. ValidatedChoiceList now shows highlights around "unselected" options to better indicate that they are still active button elements.ValidatedChoiceList popup widgets being too narrow for the popup with very short choice titles.LayoutWidget01.02.2025 · 26 261 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0TextureProvider interface for generic provision of textures based on active/hovered state.Single and Quad variants of TextureSet added for sets with one texture regardless of state, and sets with all four textures different, respectively.TextureSet now implements the TextureProvider interfaceCustomPressableWidget and therefore CustomButtonWidget now use TextureProvider instead of directly TextureSet in their implementations.textureSet method of SpriteDecorated is now deprecated and defaulted, with a scheduled removal of 0.7.0.SpriteDecoration and SmallSpriteDecoration constructors with TextureSet are likewise deprecated, with new overloads taking TextureProviderTextureIds are now explicitly typed as TextureProvider instead. ValidatedChoiceList now shows highlights around "unselected" options to better indicate that they are still active button elements.ValidatedChoiceList popup widgets being too narrow for the popup with very short choice titles.LayoutWidget01.02.2025 · 90 903 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0TextureProvider interface for generic provision of textures based on active/hovered state.Single and Quad variants of TextureSet added for sets with one texture regardless of state, and sets with all four textures different, respectively.TextureSet now implements the TextureProvider interfaceCustomPressableWidget and therefore CustomButtonWidget now use TextureProvider instead of directly TextureSet in their implementations.textureSet method of SpriteDecorated is now deprecated and defaulted, with a scheduled removal of 0.7.0.SpriteDecoration and SmallSpriteDecoration constructors with TextureSet are likewise deprecated, with new overloads taking TextureProviderTextureIds are now explicitly typed as TextureProvider instead. ValidatedChoiceList now shows highlights around "unselected" options to better indicate that they are still active button elements.ValidatedChoiceList popup widgets being too narrow for the popup with very short choice titles.LayoutWidget24.01.2025 · 32 246 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedChoiceList. Similar to ValidatedChoice, but the list version allows for enabling/disabling of none to all of the possible options while the Choice is one and always one of the choices from the options.toChoiceSet helper method in ValidatedList, ValidatedSet, and ValidatedChoice for creation of choice lists from the backing validation.testVersion method to PlatformApi for platform-agnostic testing of MC or mod versionCustomButtonWidget now accepts an activeSupplier to dynamically update active state, and a messageSupplier to dynamically update the button label. See the builder for details.@Validated[Number].Restrict annotations now accept an optional ValidatedNumber.WidgetType with the new third param typeActiveButtonWidget as built or extended-from CustomButtonWidget, and ActiveButtonWidget is now deprecated.TextlessActionWidget as built CustomButtonWidget, and TextlessActionWidget is now deprecated.24.01.2025 · 18 196 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedChoiceList. Similar to ValidatedChoice, but the list version allows for enabling/disabling of none to all of the possible options while the Choice is one and always one of the choices from the options.toChoiceSet helper method in ValidatedList, ValidatedSet, and ValidatedChoice for creation of choice lists from the backing validation.testVersion method to PlatformApi for platform-agnostic testing of MC or mod versionCustomButtonWidget now accepts an activeSupplier to dynamically update active state, and a messageSupplier to dynamically update the button label. See the builder for details.@Validated[Number].Restrict annotations now accept an optional ValidatedNumber.WidgetType with the new third param typeActiveButtonWidget as built or extended-from CustomButtonWidget, and ActiveButtonWidget is now deprecated.TextlessActionWidget as built CustomButtonWidget, and TextlessActionWidget is now deprecated.24.01.2025 · 17 376 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedChoiceList. Similar to ValidatedChoice, but the list version allows for enabling/disabling of none to all of the possible options while the Choice is one and always one of the choices from the options.toChoiceSet helper method in ValidatedList, ValidatedSet, and ValidatedChoice for creation of choice lists from the backing validation.testVersion method to PlatformApi for platform-agnostic testing of MC or mod versionCustomButtonWidget now accepts an activeSupplier to dynamically update active state, and a messageSupplier to dynamically update the button label. See the builder for details.@Validated[Number].Restrict annotations now accept an optional ValidatedNumber.WidgetType with the new third param typeActiveButtonWidget as built or extended-from CustomButtonWidget, and ActiveButtonWidget is now deprecated.TextlessActionWidget as built CustomButtonWidget, and TextlessActionWidget is now deprecated.24.01.2025 · 179 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedChoiceList. Similar to ValidatedChoice, but the list version allows for enabling/disabling of none to all of the possible options while the Choice is one and always one of the choices from the options.toChoiceSet helper method in ValidatedList, ValidatedSet, and ValidatedChoice for creation of choice lists from the backing validation.testVersion method to PlatformApi for platform-agnostic testing of MC or mod versionCustomButtonWidget now accepts an activeSupplier to dynamically update active state, and a messageSupplier to dynamically update the button label. See the builder for details.@Validated[Number].Restrict annotations now accept an optional ValidatedNumber.WidgetType with the new third param typeActiveButtonWidget as built or extended-from CustomButtonWidget, and ActiveButtonWidget is now deprecated.TextlessActionWidget as built CustomButtonWidget, and TextlessActionWidget is now deprecated.24.01.2025 · 2 582 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedChoiceList. Similar to ValidatedChoice, but the list version allows for enabling/disabling of none to all of the possible options while the Choice is one and always one of the choices from the options.toChoiceSet helper method in ValidatedList, ValidatedSet, and ValidatedChoice for creation of choice lists from the backing validation.testVersion method to PlatformApi for platform-agnostic testing of MC or mod versionCustomButtonWidget now accepts an activeSupplier to dynamically update active state, and a messageSupplier to dynamically update the button label. See the builder for details.@Validated[Number].Restrict annotations now accept an optional ValidatedNumber.WidgetType with the new third param typeActiveButtonWidget as built or extended-from CustomButtonWidget, and ActiveButtonWidget is now deprecated.TextlessActionWidget as built CustomButtonWidget, and TextlessActionWidget is now deprecated.24.01.2025 · 6 967 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0ValidatedChoiceList. Similar to ValidatedChoice, but the list version allows for enabling/disabling of none to all of the possible options while the Choice is one and always one of the choices from the options.toChoiceSet helper method in ValidatedList, ValidatedSet, and ValidatedChoice for creation of choice lists from the backing validation.testVersion method to PlatformApi for platform-agnostic testing of MC or mod versionCustomButtonWidget now accepts an activeSupplier to dynamically update active state, and a messageSupplier to dynamically update the button label. See the builder for details.@Validated[Number].Restrict annotations now accept an optional ValidatedNumber.WidgetType with the new third param typeActiveButtonWidget as built or extended-from CustomButtonWidget, and ActiveButtonWidget is now deprecated.TextlessActionWidget as built CustomButtonWidget, and TextlessActionWidget is now deprecated.18.01.2025 · 9 678 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsRegistrar and it's implementations now expect Supplier<? extends T> instead of Supplier<T>18.01.2025 · 15 889 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsRegistrar and it's implementations now expect Supplier<? extends T> instead of Supplier<T>18.01.2025 · 20 419 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsRegistrar and it's implementations now expect Supplier<? extends T> instead of Supplier<T>18.01.2025 · 632 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsdrawNineSlice and renderBlur methods in RenderUtil for matching method signatures across versions. Part of an ongoing effort to unify the API across all versions.open ContextMenuPopup to Popups for easy third party creation of context menus.flatBuild in ContextResultBuilder that flattens the context map groups into one map.ContextResultBuilder build and other utility methods no longer accidentally internal.18.01.2025 · 1 583 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsdrawNineSlice and renderBlur methods in RenderUtil for matching method signatures across versions. Part of an ongoing effort to unify the API across all versions.open ContextMenuPopup to Popups for easy third party creation of context menus.flatBuild in ContextResultBuilder that flattens the context map groups into one map.ContextResultBuilder build and other utility methods no longer accidentally internal.18.01.2025 · 16 247 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsdrawNineSlice and renderBlur methods in RenderUtil for matching method signatures across versions. Part of an ongoing effort to unify the API across all versions.open ContextMenuPopup to Popups for easy third party creation of context menus.flatBuild in ContextResultBuilder that flattens the context map groups into one map.ContextResultBuilder build and other utility methods no longer accidentally internal.17.01.2025 · 186 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsdrawNineSlice and renderBlur methods in RenderUtil for matching method signatures across versions. Part of an ongoing effort to unify the API across all versions.open ContextMenuPopup to Popups for easy third party creation of context menus.flatBuild in ContextResultBuilder that flattens the context map groups into one map.ContextResultBuilder build and other utility methods no longer accidentally internal.17.01.2025 · 455 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsdrawNineSlice and renderBlur methods in RenderUtil for matching method signatures across versions. Part of an ongoing effort to unify the API across all versions.open ContextMenuPopup to Popups for easy third party creation of context menus.flatBuild in ContextResultBuilder that flattens the context map groups into one map.ContextResultBuilder build and other utility methods no longer accidentally internal.17.01.2025 · 707 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsdrawNineSlice and renderBlur methods in RenderUtil for matching method signatures across versions. Part of an ongoing effort to unify the API across all versions.open ContextMenuPopup to Popups for easy third party creation of context menus.flatBuild in ContextResultBuilder that flattens the context map groups into one map.ContextResultBuilder build and other utility methods no longer accidentally internal.17.01.2025 · 49 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsdrawNineSlice and renderBlur methods in RenderUtil for matching method signatures across versions. Part of an ongoing effort to unify the API across all versions.open ContextMenuPopup to Popups for easy third party creation of context menus.flatBuild in ContextResultBuilder that flattens the context map groups into one map.ContextResultBuilder build and other utility methods no longer accidentally internal.17.01.2025 · 121 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsdrawNineSlice and renderBlur methods in RenderUtil for matching method signatures across versions. Part of an ongoing effort to unify the API across all versions.open ContextMenuPopup to Popups for easy third party creation of context menus.flatBuild in ContextResultBuilder that flattens the context map groups into one map.ContextResultBuilder build and other utility methods no longer accidentally internal.17.01.2025 · 6 370 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsdrawNineSlice and renderBlur methods in RenderUtil for matching method signatures across versions. Part of an ongoing effort to unify the API across all versions.open ContextMenuPopup to Popups for easy third party creation of context menus.flatBuild in ContextResultBuilder that flattens the context map groups into one map.ContextResultBuilder build and other utility methods no longer accidentally internal.07.01.2025 · 4 724 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsCustomListWidget and the built-in implementation DynamicListWidget. This new list is more powerful than the vanilla lists, allowing for varying heights for each element, hiding/unhiding individual entries, built in searching of entries, and more.Searcher system for building simple search implementations from a collection of elements.ValidatedPair and corresponding method ValidatedPair.pairWith. This new validation joins two settings into one, and displays their widgets side-by-side. This is convenient for number ranges and so on.TEXTBOX_WITH_BUTTONS. The standard entrybox also has a small up and down button with this layout.Translatable now includes a prefix element. Add a lang key for a setting, section, or config to add inline "prefix text" that appears above the setting or at the top of the setting list, respectively. This pairs well with the next additionTranslatable, be sure to override hasPrefix, prefix, and prefixKey as needed.ContextAction system that allows for powerful handling of context actions and key presses.ValidatedField now has several helper methods for easily creating custom entries without needing to fully re-implement the base design.LayoutWidget added, a generalization and improvement of the system in PopupWidget. This widget can be used to create automatically laid out collections of widgets using a DOM-like layout model.Pos system now implements SupplierDecoration system, now Decorated, a simple Drawable-like interface that allows passing of different types of icons to various FC systems, dynamically rendered, animated, etc.TextureSet system for defining textures to use in various hovered and focused statesequals not mapping properly between de/serializations, which improperly caused resets of data.07.01.2025 · 34 420 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsCustomListWidget and the built-in implementation DynamicListWidget. This new list is more powerful than the vanilla lists, allowing for varying heights for each element, hiding/unhiding individual entries, built in searching of entries, and more.Searcher system for building simple search implementations from a collection of elements.ValidatedPair and corresponding method ValidatedPair.pairWith. This new validation joins two settings into one, and displays their widgets side-by-side. This is convenient for number ranges and so on.TEXTBOX_WITH_BUTTONS. The standard entrybox also has a small up and down button with this layout.Translatable now includes a prefix element. Add a lang key for a setting, section, or config to add inline "prefix text" that appears above the setting or at the top of the setting list, respectively. This pairs well with the next additionTranslatable, be sure to override hasPrefix, prefix, and prefixKey as needed.ContextAction system that allows for powerful handling of context actions and key presses.ValidatedField now has several helper methods for easily creating custom entries without needing to fully re-implement the base design.LayoutWidget added, a generalization and improvement of the system in PopupWidget. This widget can be used to create automatically laid out collections of widgets using a DOM-like layout model.Pos system now implements SupplierDecoration system, now Decorated, a simple Drawable-like interface that allows passing of different types of icons to various FC systems, dynamically rendered, animated, etc.TextureSet system for defining textures to use in various hovered and focused statesequals not mapping properly between de/serializations, which improperly caused resets of data.07.01.2025 · 65 167 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsCustomListWidget and the built-in implementation DynamicListWidget. This new list is more powerful than the vanilla lists, allowing for varying heights for each element, hiding/unhiding individual entries, built in searching of entries, and more.Searcher system for building simple search implementations from a collection of elements.ValidatedPair and corresponding method ValidatedPair.pairWith. This new validation joins two settings into one, and displays their widgets side-by-side. This is convenient for number ranges and so on.TEXTBOX_WITH_BUTTONS. The standard entrybox also has a small up and down button with this layout.Translatable now includes a prefix element. Add a lang key for a setting, section, or config to add inline "prefix text" that appears above the setting or at the top of the setting list, respectively. This pairs well with the next additionTranslatable, be sure to override hasPrefix, prefix, and prefixKey as needed.ContextAction system that allows for powerful handling of context actions and key presses.ValidatedField now has several helper methods for easily creating custom entries without needing to fully re-implement the base design.LayoutWidget added, a generalization and improvement of the system in PopupWidget. This widget can be used to create automatically laid out collections of widgets using a DOM-like layout model.Pos system now implements SupplierDecoration system, now Decorated, a simple Drawable-like interface that allows passing of different types of icons to various FC systems, dynamically rendered, animated, etc.TextureSet system for defining textures to use in various hovered and focused statesequals not mapping properly between de/serializations, which improperly caused resets of data.07.01.2025 · 330 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsCustomListWidget and the built-in implementation DynamicListWidget. This new list is more powerful than the vanilla lists, allowing for varying heights for each element, hiding/unhiding individual entries, built in searching of entries, and more.Searcher system for building simple search implementations from a collection of elements.ValidatedPair and corresponding method ValidatedPair.pairWith. This new validation joins two settings into one, and displays their widgets side-by-side. This is convenient for number ranges and so on.TEXTBOX_WITH_BUTTONS. The standard entrybox also has a small up and down button with this layout.Translatable now includes a prefix element. Add a lang key for a setting, section, or config to add inline "prefix text" that appears above the setting or at the top of the setting list, respectively. This pairs well with the next additionTranslatable, be sure to override hasPrefix, prefix, and prefixKey as needed.ContextAction system that allows for powerful handling of context actions and key presses.ValidatedField now has several helper methods for easily creating custom entries without needing to fully re-implement the base design.LayoutWidget added, a generalization and improvement of the system in PopupWidget. This widget can be used to create automatically laid out collections of widgets using a DOM-like layout model.Pos system now implements SupplierDecoration system, now Decorated, a simple Drawable-like interface that allows passing of different types of icons to various FC systems, dynamically rendered, animated, etc.TextureSet system for defining textures to use in various hovered and focused statesequals not mapping properly between de/serializations, which improperly caused resets of data.07.01.2025 · 3 280 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsCustomListWidget and the built-in implementation DynamicListWidget. This new list is more powerful than the vanilla lists, allowing for varying heights for each element, hiding/unhiding individual entries, built in searching of entries, and more.Searcher system for building simple search implementations from a collection of elements.ValidatedPair and corresponding method ValidatedPair.pairWith. This new validation joins two settings into one, and displays their widgets side-by-side. This is convenient for number ranges and so on.TEXTBOX_WITH_BUTTONS. The standard entrybox also has a small up and down button with this layout.Translatable now includes a prefix element. Add a lang key for a setting, section, or config to add inline "prefix text" that appears above the setting or at the top of the setting list, respectively. This pairs well with the next additionTranslatable, be sure to override hasPrefix, prefix, and prefixKey as needed.ContextAction system that allows for powerful handling of context actions and key presses.ValidatedField now has several helper methods for easily creating custom entries without needing to fully re-implement the base design.LayoutWidget added, a generalization and improvement of the system in PopupWidget. This widget can be used to create automatically laid out collections of widgets using a DOM-like layout model.Pos system now implements SupplierDecoration system, now Decorated, a simple Drawable-like interface that allows passing of different types of icons to various FC systems, dynamically rendered, animated, etc.TextureSet system for defining textures to use in various hovered and focused statesequals not mapping properly between de/serializations, which improperly caused resets of data.07.01.2025 · 9 476 загрузки
ValidatedEntityAttribute is removedCustom[Widgets] are moved from the internal widget package to the custom packagePopupWidget has many deprecations, and probably at least one breaking change despite my best effortsCustomListWidget and the built-in implementation DynamicListWidget. This new list is more powerful than the vanilla lists, allowing for varying heights for each element, hiding/unhiding individual entries, built in searching of entries, and more.Searcher system for building simple search implementations from a collection of elements.ValidatedPair and corresponding method ValidatedPair.pairWith. This new validation joins two settings into one, and displays their widgets side-by-side. This is convenient for number ranges and so on.TEXTBOX_WITH_BUTTONS. The standard entrybox also has a small up and down button with this layout.Translatable now includes a prefix element. Add a lang key for a setting, section, or config to add inline "prefix text" that appears above the setting or at the top of the setting list, respectively. This pairs well with the next additionTranslatable, be sure to override hasPrefix, prefix, and prefixKey as needed.ContextAction system that allows for powerful handling of context actions and key presses.ValidatedField now has several helper methods for easily creating custom entries without needing to fully re-implement the base design.LayoutWidget added, a generalization and improvement of the system in PopupWidget. This widget can be used to create automatically laid out collections of widgets using a DOM-like layout model.Pos system now implements SupplierDecoration system, now Decorated, a simple Drawable-like interface that allows passing of different types of icons to various FC systems, dynamically rendered, animated, etc.TextureSet system for defining textures to use in various hovered and focused statesequals not mapping properly between de/serializations, which improperly caused resets of data.07.12.2024 · 14 657 загрузки
ValidatedEntityAttribute. Reimplement usages of this class as needed.isDev method in PlatformApi for checking if the instance is running in a development environment.Registrar system for platform-agnostic registration of objects. This API is experimental, with scheduled stability by 0.6.0.RegistrySupplier instances, much like the (Neo)Forge deferred registry system.onRegisteredClient and onRegisteredServer to the EventApi for listening to config registrations and only acting after the config has been successfully registered.ValidatedField.validateAndSet, validateAndSetFlagged that accepts EntryFlag.Flag (and inspects the field own flags) and changes set behavior based on flags present.EntryFlag.Flag.QUIET: flagged field won't call listeners on changeEntryFlag.Flag.STRONG: field validateAndSet/validateAndSetFlagged will use strong validation. Weak validation is standard.EntryFlag.Flag.UPDATE: field will update its current sync state when the value is set.ValidationResult.report that takes a string consumer directly for immediate reporting of issues.Codecs helper class in PortingUtils for handling version-agnostic Packet Codecs. Thanks Mojang.ConfigApi.isConfigLoaded(scope) has been deprecated in favor of ConfigApi.isConfigLoaded(scope, type). This new overload can check for client configs; the now-deprecated method only checked synced ones.ValidatedEntityAttribute for removal in 0.6.0. It is completely unused as far as I can tell with a github-wide search, and quite an unstable concept in general. If needed, a similar validation can be built for your own usage.ValidatedEntityAttribute.Builder and EntityAttributeInstanceHolder07.12.2024 · 50 688 загрузки
ValidatedEntityAttribute. Reimplement usages of this class as needed.isDev method in PlatformApi for checking if the instance is running in a development environment.Registrar system for platform-agnostic registration of objects. This API is experimental, with scheduled stability by 0.6.0.RegistrySupplier instances, much like the (Neo)Forge deferred registry system.onRegisteredClient and onRegisteredServer to the EventApi for listening to config registrations and only acting after the config has been successfully registered.ValidatedField.validateAndSet, validateAndSetFlagged that accepts EntryFlag.Flag (and inspects the field own flags) and changes set behavior based on flags present.EntryFlag.Flag.QUIET: flagged field won't call listeners on changeEntryFlag.Flag.STRONG: field validateAndSet/validateAndSetFlagged will use strong validation. Weak validation is standard.EntryFlag.Flag.UPDATE: field will update its current sync state when the value is set.ValidationResult.report that takes a string consumer directly for immediate reporting of issues.Codecs helper class in PortingUtils for handling version-agnostic Packet Codecs. Thanks Mojang.ConfigApi.isConfigLoaded(scope) has been deprecated in favor of ConfigApi.isConfigLoaded(scope, type). This new overload can check for client configs; the now-deprecated method only checked synced ones.ValidatedEntityAttribute for removal in 0.6.0. It is completely unused as far as I can tell with a github-wide search, and quite an unstable concept in general. If needed, a similar validation can be built for your own usage.ValidatedEntityAttribute.Builder and EntityAttributeInstanceHolder07.12.2024 · 42 785 загрузки
ValidatedEntityAttribute. Reimplement usages of this class as needed.isDev method in PlatformApi for checking if the instance is running in a development environment.Registrar system for platform-agnostic registration of objects. This API is experimental, with scheduled stability by 0.6.0.RegistrySupplier instances, much like the (Neo)Forge deferred registry system.onRegisteredClient and onRegisteredServer to the EventApi for listening to config registrations and only acting after the config has been successfully registered.ValidatedField.validateAndSet, validateAndSetFlagged that accepts EntryFlag.Flag (and inspects the field own flags) and changes set behavior based on flags present.EntryFlag.Flag.QUIET: flagged field won't call listeners on changeEntryFlag.Flag.STRONG: field validateAndSet/validateAndSetFlagged will use strong validation. Weak validation is standard.EntryFlag.Flag.UPDATE: field will update its current sync state when the value is set.ValidationResult.report that takes a string consumer directly for immediate reporting of issues.Codecs helper class in PortingUtils for handling version-agnostic Packet Codecs. Thanks Mojang.ConfigApi.isConfigLoaded(scope) has been deprecated in favor of ConfigApi.isConfigLoaded(scope, type). This new overload can check for client configs; the now-deprecated method only checked synced ones.ValidatedEntityAttribute for removal in 0.6.0. It is completely unused as far as I can tell with a github-wide search, and quite an unstable concept in general. If needed, a similar validation can be built for your own usage.ValidatedEntityAttribute.Builder and EntityAttributeInstanceHolder07.12.2024 · 25 366 загрузки
ValidatedEntityAttribute. Reimplement usages of this class as needed.isDev method in PlatformApi for checking if the instance is running in a development environment.Registrar system for platform-agnostic registration of objects. This API is experimental, with scheduled stability by 0.6.0.RegistrySupplier instances, much like the (Neo)Forge deferred registry system.onRegisteredClient and onRegisteredServer to the EventApi for listening to config registrations and only acting after the config has been successfully registered.ValidatedField.validateAndSet, validateAndSetFlagged that accepts EntryFlag.Flag (and inspects the field own flags) and changes set behavior based on flags present.EntryFlag.Flag.QUIET: flagged field won't call listeners on changeEntryFlag.Flag.STRONG: field validateAndSet/validateAndSetFlagged will use strong validation. Weak validation is standard.EntryFlag.Flag.UPDATE: field will update its current sync state when the value is set.ValidationResult.report that takes a string consumer directly for immediate reporting of issues.Codecs helper class in PortingUtils for handling version-agnostic Packet Codecs. Thanks Mojang.ConfigApi.isConfigLoaded(scope) has been deprecated in favor of ConfigApi.isConfigLoaded(scope, type). This new overload can check for client configs; the now-deprecated method only checked synced ones.ValidatedEntityAttribute for removal in 0.6.0. It is completely unused as far as I can tell with a github-wide search, and quite an unstable concept in general. If needed, a similar validation can be built for your own usage.ValidatedEntityAttribute.Builder and EntityAttributeInstanceHolder07.12.2024 · 248 887 загрузки
ValidatedEntityAttribute. Reimplement usages of this class as needed.isDev method in PlatformApi for checking if the instance is running in a development environment.Registrar system for platform-agnostic registration of objects. This API is experimental, with scheduled stability by 0.6.0.RegistrySupplier instances, much like the (Neo)Forge deferred registry system.onRegisteredClient and onRegisteredServer to the EventApi for listening to config registrations and only acting after the config has been successfully registered.ValidatedField.validateAndSet, validateAndSetFlagged that accepts EntryFlag.Flag (and inspects the field own flags) and changes set behavior based on flags present.EntryFlag.Flag.QUIET: flagged field won't call listeners on changeEntryFlag.Flag.STRONG: field validateAndSet/validateAndSetFlagged will use strong validation. Weak validation is standard.EntryFlag.Flag.UPDATE: field will update its current sync state when the value is set.ValidationResult.report that takes a string consumer directly for immediate reporting of issues.Codecs helper class in PortingUtils for handling version-agnostic Packet Codecs. Thanks Mojang.ConfigApi.isConfigLoaded(scope) has been deprecated in favor of ConfigApi.isConfigLoaded(scope, type). This new overload can check for client configs; the now-deprecated method only checked synced ones.ValidatedEntityAttribute for removal in 0.6.0. It is completely unused as far as I can tell with a github-wide search, and quite an unstable concept in general. If needed, a similar validation can be built for your own usage.ValidatedEntityAttribute.Builder and EntityAttributeInstanceHolder07.12.2024 · 111 загрузки
ValidatedEntityAttribute. Reimplement usages of this class as needed.isDev method in PlatformApi for checking if the instance is running in a development environment.Registrar system for platform-agnostic registration of objects. This API is experimental, with scheduled stability by 0.6.0.RegistrySupplier instances, much like the (Neo)Forge deferred registry system.onRegisteredClient and onRegisteredServer to the EventApi for listening to config registrations and only acting after the config has been successfully registered.ValidatedField.validateAndSet, validateAndSetFlagged that accepts EntryFlag.Flag (and inspects the field own flags) and changes set behavior based on flags present.EntryFlag.Flag.QUIET: flagged field won't call listeners on changeEntryFlag.Flag.STRONG: field validateAndSet/validateAndSetFlagged will use strong validation. Weak validation is standard.EntryFlag.Flag.UPDATE: field will update its current sync state when the value is set.ValidationResult.report that takes a string consumer directly for immediate reporting of issues.Codecs helper class in PortingUtils for handling version-agnostic Packet Codecs. Thanks Mojang.ConfigApi.isConfigLoaded(scope) has been deprecated in favor of ConfigApi.isConfigLoaded(scope, type). This new overload can check for client configs; the now-deprecated method only checked synced ones.ValidatedEntityAttribute for removal in 0.6.0. It is completely unused as far as I can tell with a github-wide search, and quite an unstable concept in general. If needed, a similar validation can be built for your own usage.ValidatedEntityAttribute.Builder and EntityAttributeInstanceHolder07.12.2024 · 4 396 загрузки
ValidatedEntityAttribute. Reimplement usages of this class as needed.isDev method in PlatformApi for checking if the instance is running in a development environment.Registrar system for platform-agnostic registration of objects. This API is experimental, with scheduled stability by 0.6.0.RegistrySupplier instances, much like the (Neo)Forge deferred registry system.onRegisteredClient and onRegisteredServer to the EventApi for listening to config registrations and only acting after the config has been successfully registered.ValidatedField.validateAndSet, validateAndSetFlagged that accepts EntryFlag.Flag (and inspects the field own flags) and changes set behavior based on flags present.EntryFlag.Flag.QUIET: flagged field won't call listeners on changeEntryFlag.Flag.STRONG: field validateAndSet/validateAndSetFlagged will use strong validation. Weak validation is standard.EntryFlag.Flag.UPDATE: field will update its current sync state when the value is set.ValidationResult.report that takes a string consumer directly for immediate reporting of issues.Codecs helper class in PortingUtils for handling version-agnostic Packet Codecs. Thanks Mojang.ConfigApi.isConfigLoaded(scope) has been deprecated in favor of ConfigApi.isConfigLoaded(scope, type). This new overload can check for client configs; the now-deprecated method only checked synced ones.ValidatedEntityAttribute for removal in 0.6.0. It is completely unused as far as I can tell with a github-wide search, and quite an unstable concept in general. If needed, a similar validation can be built for your own usage.ValidatedEntityAttribute.Builder and EntityAttributeInstanceHolder06.12.2024 · 464 загрузки
ValidatedEntityAttribute. Reimplement usages of this class as needed.isDev method in PlatformApi for checking if the instance is running in a development environment.Registrar system for platform-agnostic registration of objects. This API is experimental, with scheduled stability by 0.6.0.RegistrySupplier instances, much like the (Neo)Forge deferred registry system.onRegisteredClient and onRegisteredServer to the EventApi for listening to config registrations and only acting after the config has been successfully registered.ValidatedField.validateAndSet, validateAndSetFlagged that accepts EntryFlag.Flag (and inspects the field own flags) and changes set behavior based on flags present.EntryFlag.Flag.QUIET: flagged field won't call listeners on changeEntryFlag.Flag.STRONG: field validateAndSet/validateAndSetFlagged will use strong validation. Weak validation is standard.EntryFlag.Flag.UPDATE: field will update its current sync state when the value is set.ValidationResult.report that takes a string consumer directly for immediate reporting of issues.Codecs helper class in PortingUtils for handling version-agnostic Packet Codecs. Thanks Mojang.ConfigApi.isConfigLoaded(scope) has been deprecated in favor of ConfigApi.isConfigLoaded(scope, type). This new overload can check for client configs; the now-deprecated method only checked synced ones.ValidatedEntityAttribute for removal in 0.6.0. It is completely unused as far as I can tell with a github-wide search, and quite an unstable concept in general. If needed, a similar validation can be built for your own usage.ValidatedEntityAttribute.Builder and EntityAttributeInstanceHolder06.12.2024 · 737 загрузки
ValidatedEntityAttribute. Reimplement usages of this class as needed.isDev method in PlatformApi for checking if the instance is running in a development environment.Registrar system for platform-agnostic registration of objects. This API is experimental, with scheduled stability by 0.6.0.RegistrySupplier instances, much like the (Neo)Forge deferred registry system.onRegisteredClient and onRegisteredServer to the EventApi for listening to config registrations and only acting after the config has been successfully registered.ValidatedField.validateAndSet, validateAndSetFlagged that accepts EntryFlag.Flag (and inspects the field own flags) and changes set behavior based on flags present.EntryFlag.Flag.QUIET: flagged field won't call listeners on changeEntryFlag.Flag.STRONG: field validateAndSet/validateAndSetFlagged will use strong validation. Weak validation is standard.EntryFlag.Flag.UPDATE: field will update its current sync state when the value is set.ValidationResult.report that takes a string consumer directly for immediate reporting of issues.Codecs helper class in PortingUtils for handling version-agnostic Packet Codecs. Thanks Mojang.ConfigApi.isConfigLoaded(scope) has been deprecated in favor of ConfigApi.isConfigLoaded(scope, type). This new overload can check for client configs; the now-deprecated method only checked synced ones.ValidatedEntityAttribute for removal in 0.6.0. It is completely unused as far as I can tell with a github-wide search, and quite an unstable concept in general. If needed, a similar validation can be built for your own usage.ValidatedEntityAttribute.Builder and EntityAttributeInstanceHolder06.12.2024 · 250 329 загрузки
ValidatedEntityAttribute. Reimplement usages of this class as needed.isDev method in PlatformApi for checking if the instance is running in a development environment.Registrar system for platform-agnostic registration of objects. This API is experimental, with scheduled stability by 0.6.0.RegistrySupplier instances, much like the (Neo)Forge deferred registry system.onRegisteredClient and onRegisteredServer to the EventApi for listening to config registrations and only acting after the config has been successfully registered.ValidatedField.validateAndSet, validateAndSetFlagged that accepts EntryFlag.Flag (and inspects the field own flags) and changes set behavior based on flags present.EntryFlag.Flag.QUIET: flagged field won't call listeners on changeEntryFlag.Flag.STRONG: field validateAndSet/validateAndSetFlagged will use strong validation. Weak validation is standard.EntryFlag.Flag.UPDATE: field will update its current sync state when the value is set.ValidationResult.report that takes a string consumer directly for immediate reporting of issues.Codecs helper class in PortingUtils for handling version-agnostic Packet Codecs. Thanks Mojang.ConfigApi.isConfigLoaded(scope) has been deprecated in favor of ConfigApi.isConfigLoaded(scope, type). This new overload can check for client configs; the now-deprecated method only checked synced ones.ValidatedEntityAttribute for removal in 0.6.0. It is completely unused as far as I can tell with a github-wide search, and quite an unstable concept in general. If needed, a similar validation can be built for your own usage.ValidatedEntityAttribute.Builder and EntityAttributeInstanceHolder24.11.2024 · 3 433 загрузки
@IgnoreVisibility not handling private classes with non-private memberstransient not working properly for de/serializationConfigSection now properly marks it's internal key as transient.24.11.2024 · 17 446 загрузки
@IgnoreVisibility not handling private classes with non-private memberstransient not working properly for de/serializationConfigSection now properly marks it's internal key as transient.24.11.2024 · 309 загрузки
@IgnoreVisibility not handling private classes with non-private memberstransient not working properly for de/serializationConfigSection now properly marks it's internal key as transient.24.11.2024 · 13 354 загрузки
@IgnoreVisibility not handling private classes with non-private memberstransient not working properly for de/serializationConfigSection now properly marks it's internal key as transient.24.11.2024 · 2 241 753 загрузки
@IgnoreVisibility not handling private classes with non-private memberstransient not working properly for de/serializationConfigSection now properly marks it's internal key as transient.24.11.2024 · 110 загрузки
@IgnoreVisibility not handling private classes with non-private memberstransient not working properly for de/serializationConfigSection now properly marks it's internal key as transient.24.11.2024 · 2 274 загрузки
@IgnoreVisibility not handling private classes with non-private memberstransient not working properly for de/serializationConfigSection now properly marks it's internal key as transient.24.11.2024 · 58 загрузки
@IgnoreVisibility not handling private classes with non-private memberstransient not working properly for de/serializationConfigSection now properly marks it's internal key as transient.24.11.2024 · 73 загрузки
@IgnoreVisibility not handling private classes with non-private memberstransient not working properly for de/serializationConfigSection now properly marks it's internal key as transient.24.11.2024 · 18 372 загрузки
@IgnoreVisibility not handling private classes with non-private memberstransient not working properly for de/serializationConfigSection now properly marks it's internal key as transient.16.11.2024 · 538 загрузки
ConfigScreenWidget for easily creating a textless 20x20 widget to open your config from another screen.TextlessButtonWidget is no longer final; make a custom implementation if you want!ValidatedField.toSet(collection) returning a list, not a set.toSet and accepted that it returns a ValidatedList instead, rather than raising an issue with me. Their field will now not match the type returned.16.11.2024 · 8 986 загрузки
ConfigScreenWidget for easily creating a textless 20x20 widget to open your config from another screen.TextlessButtonWidget is no longer final; make a custom implementation if you want!ValidatedField.toSet(collection) returning a list, not a set.toSet and accepted that it returns a ValidatedList instead, rather than raising an issue with me. Their field will now not match the type returned.16.11.2024 · 283 загрузки
ConfigScreenWidget for easily creating a textless 20x20 widget to open your config from another screen.TextlessButtonWidget is no longer final; make a custom implementation if you want!ValidatedField.toSet(collection) returning a list, not a set.toSet and accepted that it returns a ValidatedList instead, rather than raising an issue with me. Their field will now not match the type returned.16.11.2024 · 754 загрузки
ConfigScreenWidget for easily creating a textless 20x20 widget to open your config from another screen.TextlessButtonWidget is no longer final; make a custom implementation if you want!ValidatedField.toSet(collection) returning a list, not a set.toSet and accepted that it returns a ValidatedList instead, rather than raising an issue with me. Their field will now not match the type returned.16.11.2024 · 11 077 загрузки
ConfigScreenWidget for easily creating a textless 20x20 widget to open your config from another screen.TextlessButtonWidget is no longer final; make a custom implementation if you want!ValidatedField.toSet(collection) returning a list, not a set.toSet and accepted that it returns a ValidatedList instead, rather than raising an issue with me. Their field will now not match the type returned.16.11.2024 · 75 загрузки
ConfigScreenWidget for easily creating a textless 20x20 widget to open your config from another screen.TextlessButtonWidget is no longer final; make a custom implementation if you want!ValidatedField.toSet(collection) returning a list, not a set.toSet and accepted that it returns a ValidatedList instead, rather than raising an issue with me. Their field will now not match the type returned.16.11.2024 · 2 012 загрузки
ConfigScreenWidget for easily creating a textless 20x20 widget to open your config from another screen.TextlessButtonWidget is no longer final; make a custom implementation if you want!ValidatedField.toSet(collection) returning a list, not a set.toSet and accepted that it returns a ValidatedList instead, rather than raising an issue with me. Their field will now not match the type returned.16.11.2024 · 68 загрузки
ConfigScreenWidget for easily creating a textless 20x20 widget to open your config from another screen.TextlessButtonWidget is no longer final; make a custom implementation if you want!ValidatedField.toSet(collection) returning a list, not a set.toSet and accepted that it returns a ValidatedList instead, rather than raising an issue with me. Their field will now not match the type returned.16.11.2024 · 78 загрузки
ConfigScreenWidget for easily creating a textless 20x20 widget to open your config from another screen.TextlessButtonWidget is no longer final; make a custom implementation if you want!ValidatedField.toSet(collection) returning a list, not a set.toSet and accepted that it returns a ValidatedList instead, rather than raising an issue with me. Their field will now not match the type returned.16.11.2024 · 17 396 загрузки
ConfigScreenWidget for easily creating a textless 20x20 widget to open your config from another screen.TextlessButtonWidget is no longer final; make a custom implementation if you want!ValidatedField.toSet(collection) returning a list, not a set.toSet and accepted that it returns a ValidatedList instead, rather than raising an issue with me. Their field will now not match the type returned.26.10.2024 · 10 141 загрузки
EntryFlag to ValidatedField and ConfigAction. Currently only has one flag REQUIRES_WORLD. A field marked with REQUIRES_WORLD marks that the player needs to be in-game for the setting to work properly. The config screen will show Not in Game instead of the setting, when not in game.ofDynamicKey builder methods to ValidatedIdentifier. Use of ofRegistryKey for non-synced dynamic registries (Loot registries, or modded dynamic registries that don't sync, primarily) is now deprecated and will log a warning. ofDynamicKey handles synchronization of predicated registry lists more robustly.ValidatedIdentifier now automatically applies REQUIRES_WORLD to validation for dynamic registries, which require the world to be loaded. They will now not be available out of game.ClickAction.RUN_COMMAND or ClickAction.SUGGEST_COMMAND now automatically apply REQUIRES_WORLDValidatedIdentifier without validation no longer tries to "force" you to use the minecraft namespace in the text box26.10.2024 · 42 364 загрузки
EntryFlag to ValidatedField and ConfigAction. Currently only has one flag REQUIRES_WORLD. A field marked with REQUIRES_WORLD marks that the player needs to be in-game for the setting to work properly. The config screen will show Not in Game instead of the setting, when not in game.ofDynamicKey builder methods to ValidatedIdentifier. Use of ofRegistryKey for non-synced dynamic registries (Loot registries, or modded dynamic registries that don't sync, primarily) is now deprecated and will log a warning. ofDynamicKey handles synchronization of predicated registry lists more robustly.ValidatedIdentifier now automatically applies REQUIRES_WORLD to validation for dynamic registries, which require the world to be loaded. They will now not be available out of game.ClickAction.RUN_COMMAND or ClickAction.SUGGEST_COMMAND now automatically apply REQUIRES_WORLDValidatedIdentifier without validation no longer tries to "force" you to use the minecraft namespace in the text box26.10.2024 · 711 загрузки
EntryFlag to ValidatedField and ConfigAction. Currently only has one flag REQUIRES_WORLD. A field marked with REQUIRES_WORLD marks that the player needs to be in-game for the setting to work properly. The config screen will show Not in Game instead of the setting, when not in game.ofDynamicKey builder methods to ValidatedIdentifier. Use of ofRegistryKey for non-synced dynamic registries (Loot registries, or modded dynamic registries that don't sync, primarily) is now deprecated and will log a warning. ofDynamicKey handles synchronization of predicated registry lists more robustly.ValidatedIdentifier now automatically applies REQUIRES_WORLD to validation for dynamic registries, which require the world to be loaded. They will now not be available out of game.ClickAction.RUN_COMMAND or ClickAction.SUGGEST_COMMAND now automatically apply REQUIRES_WORLDValidatedIdentifier without validation no longer tries to "force" you to use the minecraft namespace in the text box26.10.2024 · 2 947 загрузки
EntryFlag to ValidatedField and ConfigAction. Currently only has one flag REQUIRES_WORLD. A field marked with REQUIRES_WORLD marks that the player needs to be in-game for the setting to work properly. The config screen will show Not in Game instead of the setting, when not in game.ofDynamicKey builder methods to ValidatedIdentifier. Use of ofRegistryKey for non-synced dynamic registries (Loot registries, or modded dynamic registries that don't sync, primarily) is now deprecated and will log a warning. ofDynamicKey handles synchronization of predicated registry lists more robustly.ValidatedIdentifier now automatically applies REQUIRES_WORLD to validation for dynamic registries, which require the world to be loaded. They will now not be available out of game.ClickAction.RUN_COMMAND or ClickAction.SUGGEST_COMMAND now automatically apply REQUIRES_WORLDValidatedIdentifier without validation no longer tries to "force" you to use the minecraft namespace in the text box26.10.2024 · 147 163 загрузки
EntryFlag to ValidatedField and ConfigAction. Currently only has one flag REQUIRES_WORLD. A field marked with REQUIRES_WORLD marks that the player needs to be in-game for the setting to work properly. The config screen will show Not in Game instead of the setting, when not in game.ofDynamicKey builder methods to ValidatedIdentifier. Use of ofRegistryKey for non-synced dynamic registries (Loot registries, or modded dynamic registries that don't sync, primarily) is now deprecated and will log a warning. ofDynamicKey handles synchronization of predicated registry lists more robustly.ValidatedIdentifier now automatically applies REQUIRES_WORLD to validation for dynamic registries, which require the world to be loaded. They will now not be available out of game.ClickAction.RUN_COMMAND or ClickAction.SUGGEST_COMMAND now automatically apply REQUIRES_WORLDValidatedIdentifier without validation no longer tries to "force" you to use the minecraft namespace in the text box26.10.2024 · 73 загрузки
EntryFlag to ValidatedField and ConfigAction. Currently only has one flag REQUIRES_WORLD. A field marked with REQUIRES_WORLD marks that the player needs to be in-game for the setting to work properly. The config screen will show Not in Game instead of the setting, when not in game.ofDynamicKey builder methods to ValidatedIdentifier. Use of ofRegistryKey for non-synced dynamic registries (Loot registries, or modded dynamic registries that don't sync, primarily) is now deprecated and will log a warning. ofDynamicKey handles synchronization of predicated registry lists more robustly.ValidatedIdentifier now automatically applies REQUIRES_WORLD to validation for dynamic registries, which require the world to be loaded. They will now not be available out of game.ClickAction.RUN_COMMAND or ClickAction.SUGGEST_COMMAND now automatically apply REQUIRES_WORLDValidatedIdentifier without validation no longer tries to "force" you to use the minecraft namespace in the text box26.10.2024 · 2 936 загрузки
EntryFlag to ValidatedField and ConfigAction. Currently only has one flag REQUIRES_WORLD. A field marked with REQUIRES_WORLD marks that the player needs to be in-game for the setting to work properly. The config screen will show Not in Game instead of the setting, when not in game.ofDynamicKey builder methods to ValidatedIdentifier. Use of ofRegistryKey for non-synced dynamic registries (Loot registries, or modded dynamic registries that don't sync, primarily) is now deprecated and will log a warning. ofDynamicKey handles synchronization of predicated registry lists more robustly.ValidatedIdentifier now automatically applies REQUIRES_WORLD to validation for dynamic registries, which require the world to be loaded. They will now not be available out of game.ClickAction.RUN_COMMAND or ClickAction.SUGGEST_COMMAND now automatically apply REQUIRES_WORLDValidatedIdentifier without validation no longer tries to "force" you to use the minecraft namespace in the text box26.10.2024 · 66 загрузки
EntryFlag to ValidatedField and ConfigAction. Currently only has one flag REQUIRES_WORLD. A field marked with REQUIRES_WORLD marks that the player needs to be in-game for the setting to work properly. The config screen will show Not in Game instead of the setting, when not in game.ofDynamicKey builder methods to ValidatedIdentifier. Use of ofRegistryKey for non-synced dynamic registries (Loot registries, or modded dynamic registries that don't sync, primarily) is now deprecated and will log a warning. ofDynamicKey handles synchronization of predicated registry lists more robustly.ValidatedIdentifier now automatically applies REQUIRES_WORLD to validation for dynamic registries, which require the world to be loaded. They will now not be available out of game.ClickAction.RUN_COMMAND or ClickAction.SUGGEST_COMMAND now automatically apply REQUIRES_WORLDValidatedIdentifier without validation no longer tries to "force" you to use the minecraft namespace in the text box26.10.2024 · 91 загрузки
EntryFlag to ValidatedField and ConfigAction. Currently only has one flag REQUIRES_WORLD. A field marked with REQUIRES_WORLD marks that the player needs to be in-game for the setting to work properly. The config screen will show Not in Game instead of the setting, when not in game.ofDynamicKey builder methods to ValidatedIdentifier. Use of ofRegistryKey for non-synced dynamic registries (Loot registries, or modded dynamic registries that don't sync, primarily) is now deprecated and will log a warning. ofDynamicKey handles synchronization of predicated registry lists more robustly.ValidatedIdentifier now automatically applies REQUIRES_WORLD to validation for dynamic registries, which require the world to be loaded. They will now not be available out of game.ClickAction.RUN_COMMAND or ClickAction.SUGGEST_COMMAND now automatically apply REQUIRES_WORLDValidatedIdentifier without validation no longer tries to "force" you to use the minecraft namespace in the text box26.10.2024 · 43 667 загрузки
EntryFlag to ValidatedField and ConfigAction. Currently only has one flag REQUIRES_WORLD. A field marked with REQUIRES_WORLD marks that the player needs to be in-game for the setting to work properly. The config screen will show Not in Game instead of the setting, when not in game.ofDynamicKey builder methods to ValidatedIdentifier. Use of ofRegistryKey for non-synced dynamic registries (Loot registries, or modded dynamic registries that don't sync, primarily) is now deprecated and will log a warning. ofDynamicKey handles synchronization of predicated registry lists more robustly.ValidatedIdentifier now automatically applies REQUIRES_WORLD to validation for dynamic registries, which require the world to be loaded. They will now not be available out of game.ClickAction.RUN_COMMAND or ClickAction.SUGGEST_COMMAND now automatically apply REQUIRES_WORLDValidatedIdentifier without validation no longer tries to "force" you to use the minecraft namespace in the text box23.10.2024 · 608 загрузки
23.10.2024 · 329 загрузки
23.10.2024 · 88 загрузки
22.10.2024 · 97 загрузки
ValidatedIdentifier.ofRegistryKey now works properly with the three types of tables that apparently aren't in the normal dynamic registry manager (loot, functions, predicates)@Translation negation not being respectedValidatedAny recognizes and prioritizes Translatable entries like normal config settings do22.10.2024 · 73 загрузки
ValidatedIdentifier.ofRegistryKey now works properly with the three types of tables that apparently aren't in the normal dynamic registry manager (loot, functions, predicates)@Translation negation not being respectedValidatedAny recognizes and prioritizes Translatable entries like normal config settings do22.10.2024 · 3 619 загрузки
21.10.2024 · 86 загрузки
ValidatedIdentifier.ofRegistryKey now works properly with the three types of tables that apparently aren't in the normal dynamic registry manager (loot, functions, predicates)@Translation negation not being respectedValidatedAny recognizes and prioritizes Translatable entries like normal config settings do21.10.2024 · 7 961 загрузки
ValidatedIdentifier.ofRegistryKey now works properly with the three types of tables that apparently aren't in the normal dynamic registry manager (loot, functions, predicates)@Translation negation not being respectedValidatedAny recognizes and prioritizes Translatable entries like normal config settings do21.10.2024 · 155 загрузки
ValidatedIdentifier.ofRegistryKey now works properly with the three types of tables that apparently aren't in the normal dynamic registry manager (loot, functions, predicates)@Translation negation not being respectedValidatedAny recognizes and prioritizes Translatable entries like normal config settings do21.10.2024 · 370 загрузки
ValidatedIdentifier.ofRegistryKey now works properly with the three types of tables that apparently aren't in the normal dynamic registry manager (loot, functions, predicates)@Translation negation not being respectedValidatedAny recognizes and prioritizes Translatable entries like normal config settings do21.10.2024 · 9 051 загрузки
ValidatedIdentifier.ofRegistryKey now works properly with the three types of tables that apparently aren't in the normal dynamic registry manager (loot, functions, predicates)@Translation negation not being respectedValidatedAny recognizes and prioritizes Translatable entries like normal config settings do21.10.2024 · 2 586 загрузки
ValidatedIdentifier.ofRegistryKey now works properly with the three types of tables that apparently aren't in the normal dynamic registry manager (loot, functions, predicates)@Translation negation not being respectedValidatedAny recognizes and prioritizes Translatable entries like normal config settings do21.10.2024 · 66 загрузки
ValidatedIdentifier.ofRegistryKey now works properly with the three types of tables that apparently aren't in the normal dynamic registry manager (loot, functions, predicates)@Translation negation not being respectedValidatedAny recognizes and prioritizes Translatable entries like normal config settings do21.10.2024 · 76 загрузки
ValidatedIdentifier.ofRegistryKey now works properly with the three types of tables that apparently aren't in the normal dynamic registry manager (loot, functions, predicates)@Translation negation not being respectedValidatedAny recognizes and prioritizes Translatable entries like normal config settings do21.10.2024 · 824 загрузки
ValidatedIdentifier.ofRegistryKey now works properly with the three types of tables that apparently aren't in the normal dynamic registry manager (loot, functions, predicates)@Translation negation not being respectedValidatedAny recognizes and prioritizes Translatable entries like normal config settings do16.10.2024 · 82 загрузки
ValdiatedCondition validation wrapper. Gate the wrapped value behind conditional checks added via withCondition when get is called. If checks fail, a fallback will be supplied instead of the stored "live" value, and the setting will be locked in-GUI.toCondition in ValidatedField to convert one to a ValidatedConditionText.isEmpty() and Text.isNotEmpty() extension functions in FcTexttoLinebreakText in FcText to convert a list of text into one text split by newlines16.10.2024 · 16 678 загрузки
ValdiatedCondition validation wrapper. Gate the wrapped value behind conditional checks added via withCondition when get is called. If checks fail, a fallback will be supplied instead of the stored "live" value, and the setting will be locked in-GUI.toCondition in ValidatedField to convert one to a ValidatedConditionText.isEmpty() and Text.isNotEmpty() extension functions in FcTexttoLinebreakText in FcText to convert a list of text into one text split by newlines16.10.2024 · 326 загрузки
ValdiatedCondition validation wrapper. Gate the wrapped value behind conditional checks added via withCondition when get is called. If checks fail, a fallback will be supplied instead of the stored "live" value, and the setting will be locked in-GUI.toCondition in ValidatedField to convert one to a ValidatedConditionText.isEmpty() and Text.isNotEmpty() extension functions in FcTexttoLinebreakText in FcText to convert a list of text into one text split by newlines16.10.2024 · 327 загрузки
ValdiatedCondition validation wrapper. Gate the wrapped value behind conditional checks added via withCondition when get is called. If checks fail, a fallback will be supplied instead of the stored "live" value, and the setting will be locked in-GUI.toCondition in ValidatedField to convert one to a ValidatedConditionText.isEmpty() and Text.isNotEmpty() extension functions in FcTexttoLinebreakText in FcText to convert a list of text into one text split by newlines16.10.2024 · 233 318 загрузки
ValdiatedCondition validation wrapper. Gate the wrapped value behind conditional checks added via withCondition when get is called. If checks fail, a fallback will be supplied instead of the stored "live" value, and the setting will be locked in-GUI.toCondition in ValidatedField to convert one to a ValidatedConditionText.isEmpty() and Text.isNotEmpty() extension functions in FcTexttoLinebreakText in FcText to convert a list of text into one text split by newlines16.10.2024 · 805 загрузки
ValdiatedCondition validation wrapper. Gate the wrapped value behind conditional checks added via withCondition when get is called. If checks fail, a fallback will be supplied instead of the stored "live" value, and the setting will be locked in-GUI.toCondition in ValidatedField to convert one to a ValidatedConditionText.isEmpty() and Text.isNotEmpty() extension functions in FcTexttoLinebreakText in FcText to convert a list of text into one text split by newlines16.10.2024 · 51 загрузки
ValdiatedCondition validation wrapper. Gate the wrapped value behind conditional checks added via withCondition when get is called. If checks fail, a fallback will be supplied instead of the stored "live" value, and the setting will be locked in-GUI.toCondition in ValidatedField to convert one to a ValidatedConditionText.isEmpty() and Text.isNotEmpty() extension functions in FcTexttoLinebreakText in FcText to convert a list of text into one text split by newlines16.10.2024 · 75 загрузки
ValdiatedCondition validation wrapper. Gate the wrapped value behind conditional checks added via withCondition when get is called. If checks fail, a fallback will be supplied instead of the stored "live" value, and the setting will be locked in-GUI.toCondition in ValidatedField to convert one to a ValidatedConditionText.isEmpty() and Text.isNotEmpty() extension functions in FcTexttoLinebreakText in FcText to convert a list of text into one text split by newlines16.10.2024 · 8 359 загрузки
ValdiatedCondition validation wrapper. Gate the wrapped value behind conditional checks added via withCondition when get is called. If checks fail, a fallback will be supplied instead of the stored "live" value, and the setting will be locked in-GUI.toCondition in ValidatedField to convert one to a ValidatedConditionText.isEmpty() and Text.isNotEmpty() extension functions in FcTexttoLinebreakText in FcText to convert a list of text into one text split by newlines13.10.2024 · 812 загрузки
ValidatedIdentifier.ofRegistryKey now takes ? extends Registry like the other helper method types, instead of just Registry.13.10.2024 · 87 загрузки
ValidatedIdentifier.ofRegistryKey now takes ? extends Registry like the other helper method types, instead of just Registry.13.10.2024 · 5 353 загрузки
ValidatedIdentifier.ofRegistryKey now takes ? extends Registry like the other helper method types, instead of just Registry.13.10.2024 · 167 загрузки
ValidatedIdentifier.ofRegistryKey now takes ? extends Registry like the other helper method types, instead of just Registry.13.10.2024 · 232 загрузки
ValidatedIdentifier.ofRegistryKey now takes ? extends Registry like the other helper method types, instead of just Registry.13.10.2024 · 25 569 загрузки
ValidatedIdentifier.ofRegistryKey now takes ? extends Registry like the other helper method types, instead of just Registry.13.10.2024 · 934 загрузки
ValidatedIdentifier.ofRegistryKey now takes ? extends Registry like the other helper method types, instead of just Registry.13.10.2024 · 52 загрузки
ValidatedIdentifier.ofRegistryKey now takes ? extends Registry like the other helper method types, instead of just Registry.13.10.2024 · 69 загрузки
ValidatedIdentifier.ofRegistryKey now takes ? extends Registry like the other helper method types, instead of just Registry.13.10.2024 · 1 996 загрузки
ValidatedIdentifier.ofRegistryKey now takes ? extends Registry like the other helper method types, instead of just Registry.04.10.2024 · 145 загрузки
ValidatedEnum popups now center the enum buttons on popups with very long enum names04.10.2024 · 74 загрузки
ValidatedEnum popups now center the enum buttons on popups with very long enum names04.10.2024 · 15 872 загрузки
ValidatedEnum popups now center the enum buttons on popups with very long enum names04.10.2024 · 212 загрузки
ValidatedEnum popups now center the enum buttons on popups with very long enum names04.10.2024 · 511 загрузки
ValidatedEnum popups now center the enum buttons on popups with very long enum names04.10.2024 · 46 441 загрузки
ValidatedEnum popups now center the enum buttons on popups with very long enum names04.10.2024 · 16 973 загрузки
ValidatedEnum popups now center the enum buttons on popups with very long enum names04.10.2024 · 68 загрузки
ValidatedEnum popups now center the enum buttons on popups with very long enum names04.10.2024 · 92 загрузки
ValidatedEnum popups now center the enum buttons on popups with very long enum names04.10.2024 · 5 109 загрузки
ValidatedEnum popups now center the enum buttons on popups with very long enum names03.10.2024 · 92 загрузки
ValidatedFloat and Double; the values within will now be formatted like #.##, instead of showing the entire fractional part.ValidatedNumber is provided with a min >= max.Item, Block, EntityType, and Fluid as types that can be automatically wrapped with validation without having to specify it yourself.@Translation at the config-level will add the option to use the prefix itself as a lang key for the config title.RELOAD_RESOURCES action on config-level alerts@Translation not working for config sections03.10.2024 · 64 загрузки
ValidatedFloat and Double; the values within will now be formatted like #.##, instead of showing the entire fractional part.ValidatedNumber is provided with a min >= max.Item, Block, EntityType, and Fluid as types that can be automatically wrapped with validation without having to specify it yourself.@Translation at the config-level will add the option to use the prefix itself as a lang key for the config title.RELOAD_RESOURCES action on config-level alerts@Translation not working for config sections03.10.2024 · 6 454 загрузки
ValidatedFloat and Double; the values within will now be formatted like #.##, instead of showing the entire fractional part.ValidatedNumber is provided with a min >= max.Item, Block, EntityType, and Fluid as types that can be automatically wrapped with validation without having to specify it yourself.@Translation at the config-level will add the option to use the prefix itself as a lang key for the config title.RELOAD_RESOURCES action on config-level alerts@Translation not working for config sections03.10.2024 · 100 загрузки
ValidatedFloat and Double; the values within will now be formatted like #.##, instead of showing the entire fractional part.ValidatedNumber is provided with a min >= max.Item, Block, EntityType, and Fluid as types that can be automatically wrapped with validation without having to specify it yourself.@Translation at the config-level will add the option to use the prefix itself as a lang key for the config title.RELOAD_RESOURCES action on config-level alerts@Translation not working for config sections03.10.2024 · 135 загрузки
ValidatedFloat and Double; the values within will now be formatted like #.##, instead of showing the entire fractional part.ValidatedNumber is provided with a min >= max.Item, Block, EntityType, and Fluid as types that can be automatically wrapped with validation without having to specify it yourself.@Translation at the config-level will add the option to use the prefix itself as a lang key for the config title.RELOAD_RESOURCES action on config-level alerts@Translation not working for config sections03.10.2024 · 996 загрузки
ValidatedFloat and Double; the values within will now be formatted like #.##, instead of showing the entire fractional part.ValidatedNumber is provided with a min >= max.Item, Block, EntityType, and Fluid as types that can be automatically wrapped with validation without having to specify it yourself.@Translation at the config-level will add the option to use the prefix itself as a lang key for the config title.RELOAD_RESOURCES action on config-level alerts@Translation not working for config sections03.10.2024 · 191 загрузки
ValidatedFloat and Double; the values within will now be formatted like #.##, instead of showing the entire fractional part.ValidatedNumber is provided with a min >= max.Item, Block, EntityType, and Fluid as types that can be automatically wrapped with validation without having to specify it yourself.@Translation at the config-level will add the option to use the prefix itself as a lang key for the config title.RELOAD_RESOURCES action on config-level alerts@Translation not working for config sections03.10.2024 · 65 загрузки
ValidatedFloat and Double; the values within will now be formatted like #.##, instead of showing the entire fractional part.ValidatedNumber is provided with a min >= max.Item, Block, EntityType, and Fluid as types that can be automatically wrapped with validation without having to specify it yourself.@Translation at the config-level will add the option to use the prefix itself as a lang key for the config title.RELOAD_RESOURCES action on config-level alerts@Translation not working for config sections03.10.2024 · 64 загрузки
ValidatedFloat and Double; the values within will now be formatted like #.##, instead of showing the entire fractional part.ValidatedNumber is provided with a min >= max.Item, Block, EntityType, and Fluid as types that can be automatically wrapped with validation without having to specify it yourself.@Translation at the config-level will add the option to use the prefix itself as a lang key for the config title.RELOAD_RESOURCES action on config-level alerts@Translation not working for config sections03.10.2024 · 2 283 загрузки
ValidatedFloat and Double; the values within will now be formatted like #.##, instead of showing the entire fractional part.ValidatedNumber is provided with a min >= max.Item, Block, EntityType, and Fluid as types that can be automatically wrapped with validation without having to specify it yourself.@Translation at the config-level will add the option to use the prefix itself as a lang key for the config title.RELOAD_RESOURCES action on config-level alerts@Translation not working for config sections25.09.2024 · 160 загрузки
ValidatedField mapping. Validation can be mapped to validation of any other convertible type with the new map methods.ValidatedRegistryType maps ValidatedIdentifier to registry objects, allowing for easy direct implmentation of setting based on registry objects (Items, Blocks, etc) without having to later map the identifiers yourself.ValidatedField now has a helper codec method for generating a Codec of the underlying type.ValidatedField now has a listener system that triggers on any set of the field. This listener is a Consumer<ValidatedField<T>> and is added with withListenerEventApi and corresponding direct implementations in the Config classConfigApionSyncClient - fires when a config is synced to a clientonUpdateClient - fires when a config is updated in-game on the client sideonUpdateServer - fires when a config is updated in-game on the server sideConfigAction, which can be used to add arbitrary on-click buttons in the Config GUI. Use them to link to your wiki, open a patchouli guide book, give the player an item, etc.PlatformApi for simple cross-loader tasks like checking if the game state is client-sided or not.PressableWidget or ButtonWidget, which was causing issues with Visual Overhaul or any other mod that leaks the constructor of the widget. It is recommended to use the Custom variants of those classes for any custom validation implementation.ValidatedIdentifier can now bind to dynamic registries using the ofRegistryKey initializer methods.25.09.2024 · 11 159 загрузки
ValidatedField mapping. Validation can be mapped to validation of any other convertible type with the new map methods.ValidatedRegistryType maps ValidatedIdentifier to registry objects, allowing for easy direct implmentation of setting based on registry objects (Items, Blocks, etc) without having to later map the identifiers yourself.ValidatedField now has a helper codec method for generating a Codec of the underlying type.ValidatedField now has a listener system that triggers on any set of the field. This listener is a Consumer<ValidatedField<T>> and is added with withListenerEventApi and corresponding direct implementations in the Config classConfigApionSyncClient - fires when a config is synced to a clientonUpdateClient - fires when a config is updated in-game on the client sideonUpdateServer - fires when a config is updated in-game on the server sideConfigAction, which can be used to add arbitrary on-click buttons in the Config GUI. Use them to link to your wiki, open a patchouli guide book, give the player an item, etc.PlatformApi for simple cross-loader tasks like checking if the game state is client-sided or not.PressableWidget or ButtonWidget, which was causing issues with Visual Overhaul or any other mod that leaks the constructor of the widget. It is recommended to use the Custom variants of those classes for any custom validation implementation.ValidatedIdentifier can now bind to dynamic registries using the ofRegistryKey initializer methods.25.09.2024 · 255 загрузки
ValidatedField mapping. Validation can be mapped to validation of any other convertible type with the new map methods.ValidatedRegistryType maps ValidatedIdentifier to registry objects, allowing for easy direct implmentation of setting based on registry objects (Items, Blocks, etc) without having to later map the identifiers yourself.ValidatedField now has a helper codec method for generating a Codec of the underlying type.ValidatedField now has a listener system that triggers on any set of the field. This listener is a Consumer<ValidatedField<T>> and is added with withListenerEventApi and corresponding direct implementations in the Config classConfigApionSyncClient - fires when a config is synced to a clientonUpdateClient - fires when a config is updated in-game on the client sideonUpdateServer - fires when a config is updated in-game on the server sideConfigAction, which can be used to add arbitrary on-click buttons in the Config GUI. Use them to link to your wiki, open a patchouli guide book, give the player an item, etc.PlatformApi for simple cross-loader tasks like checking if the game state is client-sided or not.PressableWidget or ButtonWidget, which was causing issues with Visual Overhaul or any other mod that leaks the constructor of the widget. It is recommended to use the Custom variants of those classes for any custom validation implementation.ValidatedIdentifier can now bind to dynamic registries using the ofRegistryKey initializer methods.25.09.2024 · 453 загрузки
ValidatedField mapping. Validation can be mapped to validation of any other convertible type with the new map methods.ValidatedRegistryType maps ValidatedIdentifier to registry objects, allowing for easy direct implmentation of setting based on registry objects (Items, Blocks, etc) without having to later map the identifiers yourself.ValidatedField now has a helper codec method for generating a Codec of the underlying type.ValidatedField now has a listener system that triggers on any set of the field. This listener is a Consumer<ValidatedField<T>> and is added with withListenerEventApi and corresponding direct implementations in the Config classConfigApionSyncClient - fires when a config is synced to a clientonUpdateClient - fires when a config is updated in-game on the client sideonUpdateServer - fires when a config is updated in-game on the server sideConfigAction, which can be used to add arbitrary on-click buttons in the Config GUI. Use them to link to your wiki, open a patchouli guide book, give the player an item, etc.PlatformApi for simple cross-loader tasks like checking if the game state is client-sided or not.PressableWidget or ButtonWidget, which was causing issues with Visual Overhaul or any other mod that leaks the constructor of the widget. It is recommended to use the Custom variants of those classes for any custom validation implementation.ValidatedIdentifier can now bind to dynamic registries using the ofRegistryKey initializer methods.25.09.2024 · 10 632 загрузки
ValidatedField mapping. Validation can be mapped to validation of any other convertible type with the new map methods.ValidatedRegistryType maps ValidatedIdentifier to registry objects, allowing for easy direct implmentation of setting based on registry objects (Items, Blocks, etc) without having to later map the identifiers yourself.ValidatedField now has a helper codec method for generating a Codec of the underlying type.ValidatedField now has a listener system that triggers on any set of the field. This listener is a Consumer<ValidatedField<T>> and is added with withListenerEventApi and corresponding direct implementations in the Config classConfigApionSyncClient - fires when a config is synced to a clientonUpdateClient - fires when a config is updated in-game on the client sideonUpdateServer - fires when a config is updated in-game on the server sideConfigAction, which can be used to add arbitrary on-click buttons in the Config GUI. Use them to link to your wiki, open a patchouli guide book, give the player an item, etc.PlatformApi for simple cross-loader tasks like checking if the game state is client-sided or not.PressableWidget or ButtonWidget, which was causing issues with Visual Overhaul or any other mod that leaks the constructor of the widget. It is recommended to use the Custom variants of those classes for any custom validation implementation.ValidatedIdentifier can now bind to dynamic registries using the ofRegistryKey initializer methods.25.09.2024 · 1 092 загрузки
ValidatedField mapping. Validation can be mapped to validation of any other convertible type with the new map methods.ValidatedRegistryType maps ValidatedIdentifier to registry objects, allowing for easy direct implmentation of setting based on registry objects (Items, Blocks, etc) without having to later map the identifiers yourself.ValidatedField now has a helper codec method for generating a Codec of the underlying type.ValidatedField now has a listener system that triggers on any set of the field. This listener is a Consumer<ValidatedField<T>> and is added with withListenerEventApi and corresponding direct implementations in the Config classConfigApionSyncClient - fires when a config is synced to a clientonUpdateClient - fires when a config is updated in-game on the client sideonUpdateServer - fires when a config is updated in-game on the server sideConfigAction, which can be used to add arbitrary on-click buttons in the Config GUI. Use them to link to your wiki, open a patchouli guide book, give the player an item, etc.PlatformApi for simple cross-loader tasks like checking if the game state is client-sided or not.PressableWidget or ButtonWidget, which was causing issues with Visual Overhaul or any other mod that leaks the constructor of the widget. It is recommended to use the Custom variants of those classes for any custom validation implementation.ValidatedIdentifier can now bind to dynamic registries using the ofRegistryKey initializer methods.25.09.2024 · 70 загрузки
ValidatedField mapping. Validation can be mapped to validation of any other convertible type with the new map methods.ValidatedRegistryType maps ValidatedIdentifier to registry objects, allowing for easy direct implmentation of setting based on registry objects (Items, Blocks, etc) without having to later map the identifiers yourself.ValidatedField now has a helper codec method for generating a Codec of the underlying type.ValidatedField now has a listener system that triggers on any set of the field. This listener is a Consumer<ValidatedField<T>> and is added with withListenerEventApi and corresponding direct implementations in the Config classConfigApionSyncClient - fires when a config is synced to a clientonUpdateClient - fires when a config is updated in-game on the client sideonUpdateServer - fires when a config is updated in-game on the server sideConfigAction, which can be used to add arbitrary on-click buttons in the Config GUI. Use them to link to your wiki, open a patchouli guide book, give the player an item, etc.PlatformApi for simple cross-loader tasks like checking if the game state is client-sided or not.PressableWidget or ButtonWidget, which was causing issues with Visual Overhaul or any other mod that leaks the constructor of the widget. It is recommended to use the Custom variants of those classes for any custom validation implementation.ValidatedIdentifier can now bind to dynamic registries using the ofRegistryKey initializer methods.25.09.2024 · 77 загрузки
ValidatedField mapping. Validation can be mapped to validation of any other convertible type with the new map methods.ValidatedRegistryType maps ValidatedIdentifier to registry objects, allowing for easy direct implmentation of setting based on registry objects (Items, Blocks, etc) without having to later map the identifiers yourself.ValidatedField now has a helper codec method for generating a Codec of the underlying type.ValidatedField now has a listener system that triggers on any set of the field. This listener is a Consumer<ValidatedField<T>> and is added with withListenerEventApi and corresponding direct implementations in the Config classConfigApionSyncClient - fires when a config is synced to a clientonUpdateClient - fires when a config is updated in-game on the client sideonUpdateServer - fires when a config is updated in-game on the server sideConfigAction, which can be used to add arbitrary on-click buttons in the Config GUI. Use them to link to your wiki, open a patchouli guide book, give the player an item, etc.PlatformApi for simple cross-loader tasks like checking if the game state is client-sided or not.PressableWidget or ButtonWidget, which was causing issues with Visual Overhaul or any other mod that leaks the constructor of the widget. It is recommended to use the Custom variants of those classes for any custom validation implementation.ValidatedIdentifier can now bind to dynamic registries using the ofRegistryKey initializer methods.25.09.2024 · 11 693 загрузки
ValidatedField mapping. Validation can be mapped to validation of any other convertible type with the new map methods.ValidatedRegistryType maps ValidatedIdentifier to registry objects, allowing for easy direct implmentation of setting based on registry objects (Items, Blocks, etc) without having to later map the identifiers yourself.ValidatedField now has a helper codec method for generating a Codec of the underlying type.ValidatedField now has a listener system that triggers on any set of the field. This listener is a Consumer<ValidatedField<T>> and is added with withListenerEventApi and corresponding direct implementations in the Config classConfigApionSyncClient - fires when a config is synced to a clientonUpdateClient - fires when a config is updated in-game on the client sideonUpdateServer - fires when a config is updated in-game on the server sideConfigAction, which can be used to add arbitrary on-click buttons in the Config GUI. Use them to link to your wiki, open a patchouli guide book, give the player an item, etc.PlatformApi for simple cross-loader tasks like checking if the game state is client-sided or not.PressableWidget or ButtonWidget, which was causing issues with Visual Overhaul or any other mod that leaks the constructor of the widget. It is recommended to use the Custom variants of those classes for any custom validation implementation.ValidatedIdentifier can now bind to dynamic registries using the ofRegistryKey initializer methods.14.09.2024 · 117 загрузки
@JvmStatic addition in ConfigApi that accidentally breaks code using the previous way, thanks to Kotlins assertion of an "additional" static simply being false (it replaces with a static)14.09.2024 · 18 122 загрузки
@JvmStatic addition in ConfigApi that accidentally breaks code using the previous way, thanks to Kotlins assertion of an "additional" static simply being false (it replaces with a static)14.09.2024 · 317 загрузки
@JvmStatic addition in ConfigApi that accidentally breaks code using the previous way, thanks to Kotlins assertion of an "additional" static simply being false (it replaces with a static)14.09.2024 · 1 078 загрузки
@JvmStatic addition in ConfigApi that accidentally breaks code using the previous way, thanks to Kotlins assertion of an "additional" static simply being false (it replaces with a static)14.09.2024 · 83 324 загрузки
@JvmStatic addition in ConfigApi that accidentally breaks code using the previous way, thanks to Kotlins assertion of an "additional" static simply being false (it replaces with a static)14.09.2024 · 1 797 загрузки
@JvmStatic addition in ConfigApi that accidentally breaks code using the previous way, thanks to Kotlins assertion of an "additional" static simply being false (it replaces with a static)14.09.2024 · 75 загрузки
@JvmStatic addition in ConfigApi that accidentally breaks code using the previous way, thanks to Kotlins assertion of an "additional" static simply being false (it replaces with a static)14.09.2024 · 87 загрузки
@JvmStatic addition in ConfigApi that accidentally breaks code using the previous way, thanks to Kotlins assertion of an "additional" static simply being false (it replaces with a static)14.09.2024 · 5 125 загрузки
@JvmStatic addition in ConfigApi that accidentally breaks code using the previous way, thanks to Kotlins assertion of an "additional" static simply being false (it replaces with a static)14.09.2024 · 100 загрузки
FcText.MutableText#command cleanly defines a Run Command click actionMutableText#tooltip adds a hovered tooltip to textMutableText#underline underlines the textMutableText#bold bolds the textMutableText#italic italicizes the textMutableText#strikethrough strikes through the textMutableText#colored colors the text with any RGB colorAny#transSupplied translates the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveAny#descSupplied describes the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveTranslation annotation. Yet another way to translate your in-game config settings!prefix.[fieldName] and prefix.[fieldName].desc. This applies to all instances of the field, so repeating units of the same setting will share a lang key!/fzzy_config_restart shuts down the client/fzzy_config_leave_game disconnects you from the current game and returns you to the proper title screen./fzzy_config_reload_resources reloads resources (F3+T)RELOG will have a leave game click action, and so on)@JvmStatic for ConfigApi#network14.09.2024 · 189 загрузки
FcText.MutableText#command cleanly defines a Run Command click actionMutableText#tooltip adds a hovered tooltip to textMutableText#underline underlines the textMutableText#bold bolds the textMutableText#italic italicizes the textMutableText#strikethrough strikes through the textMutableText#colored colors the text with any RGB colorAny#transSupplied translates the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveAny#descSupplied describes the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveTranslation annotation. Yet another way to translate your in-game config settings!prefix.[fieldName] and prefix.[fieldName].desc. This applies to all instances of the field, so repeating units of the same setting will share a lang key!/fzzy_config_restart shuts down the client/fzzy_config_leave_game disconnects you from the current game and returns you to the proper title screen./fzzy_config_reload_resources reloads resources (F3+T)RELOG will have a leave game click action, and so on)@JvmStatic for ConfigApi#network14.09.2024 · 66 загрузки
FcText.MutableText#command cleanly defines a Run Command click actionMutableText#tooltip adds a hovered tooltip to textMutableText#underline underlines the textMutableText#bold bolds the textMutableText#italic italicizes the textMutableText#strikethrough strikes through the textMutableText#colored colors the text with any RGB colorAny#transSupplied translates the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveAny#descSupplied describes the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveTranslation annotation. Yet another way to translate your in-game config settings!prefix.[fieldName] and prefix.[fieldName].desc. This applies to all instances of the field, so repeating units of the same setting will share a lang key!/fzzy_config_restart shuts down the client/fzzy_config_leave_game disconnects you from the current game and returns you to the proper title screen./fzzy_config_reload_resources reloads resources (F3+T)RELOG will have a leave game click action, and so on)@JvmStatic for ConfigApi#network14.09.2024 · 83 загрузки
FcText.MutableText#command cleanly defines a Run Command click actionMutableText#tooltip adds a hovered tooltip to textMutableText#underline underlines the textMutableText#bold bolds the textMutableText#italic italicizes the textMutableText#strikethrough strikes through the textMutableText#colored colors the text with any RGB colorAny#transSupplied translates the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveAny#descSupplied describes the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveTranslation annotation. Yet another way to translate your in-game config settings!prefix.[fieldName] and prefix.[fieldName].desc. This applies to all instances of the field, so repeating units of the same setting will share a lang key!/fzzy_config_restart shuts down the client/fzzy_config_leave_game disconnects you from the current game and returns you to the proper title screen./fzzy_config_reload_resources reloads resources (F3+T)RELOG will have a leave game click action, and so on)@JvmStatic for ConfigApi#network14.09.2024 · 175 загрузки
FcText.MutableText#command cleanly defines a Run Command click actionMutableText#tooltip adds a hovered tooltip to textMutableText#underline underlines the textMutableText#bold bolds the textMutableText#italic italicizes the textMutableText#strikethrough strikes through the textMutableText#colored colors the text with any RGB colorAny#transSupplied translates the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveAny#descSupplied describes the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveTranslation annotation. Yet another way to translate your in-game config settings!prefix.[fieldName] and prefix.[fieldName].desc. This applies to all instances of the field, so repeating units of the same setting will share a lang key!/fzzy_config_restart shuts down the client/fzzy_config_leave_game disconnects you from the current game and returns you to the proper title screen./fzzy_config_reload_resources reloads resources (F3+T)RELOG will have a leave game click action, and so on)@JvmStatic for ConfigApi#network14.09.2024 · 80 загрузки
FcText.MutableText#command cleanly defines a Run Command click actionMutableText#tooltip adds a hovered tooltip to textMutableText#underline underlines the textMutableText#bold bolds the textMutableText#italic italicizes the textMutableText#strikethrough strikes through the textMutableText#colored colors the text with any RGB colorAny#transSupplied translates the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveAny#descSupplied describes the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveTranslation annotation. Yet another way to translate your in-game config settings!prefix.[fieldName] and prefix.[fieldName].desc. This applies to all instances of the field, so repeating units of the same setting will share a lang key!/fzzy_config_restart shuts down the client/fzzy_config_leave_game disconnects you from the current game and returns you to the proper title screen./fzzy_config_reload_resources reloads resources (F3+T)RELOG will have a leave game click action, and so on)@JvmStatic for ConfigApi#network14.09.2024 · 71 загрузки
FcText.MutableText#command cleanly defines a Run Command click actionMutableText#tooltip adds a hovered tooltip to textMutableText#underline underlines the textMutableText#bold bolds the textMutableText#italic italicizes the textMutableText#strikethrough strikes through the textMutableText#colored colors the text with any RGB colorAny#transSupplied translates the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveAny#descSupplied describes the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveTranslation annotation. Yet another way to translate your in-game config settings!prefix.[fieldName] and prefix.[fieldName].desc. This applies to all instances of the field, so repeating units of the same setting will share a lang key!/fzzy_config_restart shuts down the client/fzzy_config_leave_game disconnects you from the current game and returns you to the proper title screen./fzzy_config_reload_resources reloads resources (F3+T)RELOG will have a leave game click action, and so on)@JvmStatic for ConfigApi#network14.09.2024 · 72 загрузки
FcText.MutableText#command cleanly defines a Run Command click actionMutableText#tooltip adds a hovered tooltip to textMutableText#underline underlines the textMutableText#bold bolds the textMutableText#italic italicizes the textMutableText#strikethrough strikes through the textMutableText#colored colors the text with any RGB colorAny#transSupplied translates the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveAny#descSupplied describes the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveTranslation annotation. Yet another way to translate your in-game config settings!prefix.[fieldName] and prefix.[fieldName].desc. This applies to all instances of the field, so repeating units of the same setting will share a lang key!/fzzy_config_restart shuts down the client/fzzy_config_leave_game disconnects you from the current game and returns you to the proper title screen./fzzy_config_reload_resources reloads resources (F3+T)RELOG will have a leave game click action, and so on)@JvmStatic for ConfigApi#network14.09.2024 · 214 загрузки
FcText.MutableText#command cleanly defines a Run Command click actionMutableText#tooltip adds a hovered tooltip to textMutableText#underline underlines the textMutableText#bold bolds the textMutableText#italic italicizes the textMutableText#strikethrough strikes through the textMutableText#colored colors the text with any RGB colorAny#transSupplied translates the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveAny#descSupplied describes the receiver, with a supplied fallback literal if necessary. Useful if the fallback is computationally intensiveTranslation annotation. Yet another way to translate your in-game config settings!prefix.[fieldName] and prefix.[fieldName].desc. This applies to all instances of the field, so repeating units of the same setting will share a lang key!/fzzy_config_restart shuts down the client/fzzy_config_leave_game disconnects you from the current game and returns you to the proper title screen./fzzy_config_reload_resources reloads resources (F3+T)RELOG will have a leave game click action, and so on)@JvmStatic for ConfigApi#network11.09.2024 · 260 загрузки
11.09.2024 · 66 загрузки
11.09.2024 · 72 загрузки
11.09.2024 · 1 098 загрузки
10.09.2024 · 79 загрузки
configure_update list command to list the current quarantined updates, to help get the proper id names now that the argument for the command is a simple string.configure_update command now uses a string argument to avoid needing to serialize a custom argument. Fzzy config should work with vanilla clients again.09.09.2024 · 8 654 загрузки
configure_update list command to list the current quarantined updates, to help get the proper id names now that the argument for the command is a simple string.configure_update command now uses a string argument to avoid needing to serialize a custom argument. Fzzy config should work with vanilla clients again.09.09.2024 · 182 загрузки
configure_update list command to list the current quarantined updates, to help get the proper id names now that the argument for the command is a simple string.configure_update command now uses a string argument to avoid needing to serialize a custom argument. Fzzy config should work with vanilla clients again.09.09.2024 · 399 загрузки
configure_update list command to list the current quarantined updates, to help get the proper id names now that the argument for the command is a simple string.configure_update command now uses a string argument to avoid needing to serialize a custom argument. Fzzy config should work with vanilla clients again.09.09.2024 · 5 680 загрузки
configure_update list command to list the current quarantined updates, to help get the proper id names now that the argument for the command is a simple string.configure_update command now uses a string argument to avoid needing to serialize a custom argument. Fzzy config should work with vanilla clients again.09.09.2024 · 126 загрузки
configure_update list command to list the current quarantined updates, to help get the proper id names now that the argument for the command is a simple string.configure_update command now uses a string argument to avoid needing to serialize a custom argument. Fzzy config should work with vanilla clients again.09.09.2024 · 71 загрузки
configure_update list command to list the current quarantined updates, to help get the proper id names now that the argument for the command is a simple string.configure_update command now uses a string argument to avoid needing to serialize a custom argument. Fzzy config should work with vanilla clients again.09.09.2024 · 71 загрузки
configure_update list command to list the current quarantined updates, to help get the proper id names now that the argument for the command is a simple string.configure_update command now uses a string argument to avoid needing to serialize a custom argument. Fzzy config should work with vanilla clients again.09.09.2024 · 988 загрузки
configure_update list command to list the current quarantined updates, to help get the proper id names now that the argument for the command is a simple string.configure_update command now uses a string argument to avoid needing to serialize a custom argument. Fzzy config should work with vanilla clients again.08.09.2024 · 2 030 загрузки
@WithCustomPerms and @AdminLevel for definition of user permissions using LuckPerms/Forge Permissions API "Node" style permissions/configure_update command, accepting or denying the update as needed.@RequiresAction annotation that supplants the functionality of the now-deprecated RequiresRestartValidatedString#fromValues for creation of a Validated string with a vararg set of allowable strings, no list wrapper needed.@RequiresRestartValidatedChoice now properly updates its tooltip after each selection change.ConfigApiJava into the most recent versions.ValidatedSet#toChoices08.09.2024 · 95 загрузки
@WithCustomPerms and @AdminLevel for definition of user permissions using LuckPerms/Forge Permissions API "Node" style permissions/configure_update command, accepting or denying the update as needed.@RequiresAction annotation that supplants the functionality of the now-deprecated RequiresRestartValidatedString#fromValues for creation of a Validated string with a vararg set of allowable strings, no list wrapper needed.@RequiresRestartValidatedChoice now properly updates its tooltip after each selection change.ConfigApiJava into the most recent versions.ValidatedSet#toChoices08.09.2024 · 157 загрузки
@WithCustomPerms and @AdminLevel for definition of user permissions using LuckPerms/Forge Permissions API "Node" style permissions/configure_update command, accepting or denying the update as needed.@RequiresAction annotation that supplants the functionality of the now-deprecated RequiresRestartValidatedString#fromValues for creation of a Validated string with a vararg set of allowable strings, no list wrapper needed.@RequiresRestartValidatedChoice now properly updates its tooltip after each selection change.ConfigApiJava into the most recent versions.ValidatedSet#toChoices08.09.2024 · 3 527 загрузки
@WithCustomPerms and @AdminLevel for definition of user permissions using LuckPerms/Forge Permissions API "Node" style permissions/configure_update command, accepting or denying the update as needed.@RequiresAction annotation that supplants the functionality of the now-deprecated RequiresRestartValidatedString#fromValues for creation of a Validated string with a vararg set of allowable strings, no list wrapper needed.@RequiresRestartValidatedChoice now properly updates its tooltip after each selection change.ConfigApiJava into the most recent versions.ValidatedSet#toChoices08.09.2024 · 151 загрузки
@WithCustomPerms and @AdminLevel for definition of user permissions using LuckPerms/Forge Permissions API "Node" style permissions/configure_update command, accepting or denying the update as needed.@RequiresAction annotation that supplants the functionality of the now-deprecated RequiresRestartValidatedString#fromValues for creation of a Validated string with a vararg set of allowable strings, no list wrapper needed.@RequiresRestartValidatedChoice now properly updates its tooltip after each selection change.ConfigApiJava into the most recent versions.ValidatedSet#toChoices08.09.2024 · 63 загрузки
@WithCustomPerms and @AdminLevel for definition of user permissions using LuckPerms/Forge Permissions API "Node" style permissions/configure_update command, accepting or denying the update as needed.@RequiresAction annotation that supplants the functionality of the now-deprecated RequiresRestartValidatedString#fromValues for creation of a Validated string with a vararg set of allowable strings, no list wrapper needed.@RequiresRestartValidatedChoice now properly updates its tooltip after each selection change.ConfigApiJava into the most recent versions.ValidatedSet#toChoices08.09.2024 · 70 загрузки
@WithCustomPerms and @AdminLevel for definition of user permissions using LuckPerms/Forge Permissions API "Node" style permissions/configure_update command, accepting or denying the update as needed.@RequiresAction annotation that supplants the functionality of the now-deprecated RequiresRestartValidatedString#fromValues for creation of a Validated string with a vararg set of allowable strings, no list wrapper needed.@RequiresRestartValidatedChoice now properly updates its tooltip after each selection change.ConfigApiJava into the most recent versions.ValidatedSet#toChoices08.09.2024 · 348 загрузки
@WithCustomPerms and @AdminLevel for definition of user permissions using LuckPerms/Forge Permissions API "Node" style permissions/configure_update command, accepting or denying the update as needed.@RequiresAction annotation that supplants the functionality of the now-deprecated RequiresRestartValidatedString#fromValues for creation of a Validated string with a vararg set of allowable strings, no list wrapper needed.@RequiresRestartValidatedChoice now properly updates its tooltip after each selection change.ConfigApiJava into the most recent versions.ValidatedSet#toChoices29.08.2024 · 3 290 загрузки
26.08.2024 · 106 загрузки
ConfigApiJava which includes methods that may cause IDE issues if called by java code directly from ConfigApi.translate helper method to ValidatedChoice for shortcutting common translation/description provider creation.min(a,b) and max(a,b) to ExpressionValidatedExpression widget now includes max and min, and the widget buttons have descriptive tooltips.@ConvertFrom file candidate if it is missing (already converted, or never existed), rather than tossing an exception into the log.26.08.2024 · 20 304 загрузки
ConfigApiJava which includes methods that may cause IDE issues if called by java code directly from ConfigApi.translate helper method to ValidatedChoice for shortcutting common translation/description provider creation.min(a,b) and max(a,b) to ExpressionValidatedExpression widget now includes max and min, and the widget buttons have descriptive tooltips.@ConvertFrom file candidate if it is missing (already converted, or never existed), rather than tossing an exception into the log.26.08.2024 · 6 007 загрузки
ConfigApiJava which includes methods that may cause IDE issues if called by java code directly from ConfigApi.translate helper method to ValidatedChoice for shortcutting common translation/description provider creation.min(a,b) and max(a,b) to ExpressionValidatedExpression widget now includes max and min, and the widget buttons have descriptive tooltips.@ConvertFrom file candidate if it is missing (already converted, or never existed), rather than tossing an exception into the log.26.08.2024 · 293 597 загрузки
ConfigApiJava which includes methods that may cause IDE issues if called by java code directly from ConfigApi.translate helper method to ValidatedChoice for shortcutting common translation/description provider creation.min(a,b) and max(a,b) to ExpressionValidatedExpression widget now includes max and min, and the widget buttons have descriptive tooltips.@ConvertFrom file candidate if it is missing (already converted, or never existed), rather than tossing an exception into the log.24.08.2024 · 2 442 загрузки
ValidatedChoice now has the params translationProvider and descriptionProvider, BiFunctions that let you convert the choices base translation key and an instance of the choice into a Text instance. Useful for creating translations/Descriptions for strings or other choices that aren't Translatable.ValidatedList.toChoices now lets the user define translation and widget behavior.24.08.2024 · 308 загрузки
ValidatedChoice now has the params translationProvider and descriptionProvider, BiFunctions that let you convert the choices base translation key and an instance of the choice into a Text instance. Useful for creating translations/Descriptions for strings or other choices that aren't Translatable.ValidatedList.toChoices now lets the user define translation and widget behavior.24.08.2024 · 806 загрузки
ValidatedChoice now has the params translationProvider and descriptionProvider, BiFunctions that let you convert the choices base translation key and an instance of the choice into a Text instance. Useful for creating translations/Descriptions for strings or other choices that aren't Translatable.ValidatedList.toChoices now lets the user define translation and widget behavior.20.06.2024 · 169 171 загрузки
ValidatedEnum cycling style widget crashing client with certain kotlin enums.20.06.2024 · 5 071 загрузки
ValidatedEnum cycling style widget crashing client with certain kotlin enums.20.06.2024 · 115 272 загрузки
ValidatedEnum cycling style widget crashing client with certain kotlin enums.13.06.2024 · 753 загрузки
cast and nullCast extension functions for functional programming style of type casting. Ex: val thing: MyType2 = myType1.cast<MyType2>().withThing().doAnotherThing()Expression with pre-compiled shortcuts for many situations; optimized constant usage.hashcode and equals methods for direct comparison.13.06.2024 · 1 765 загрузки
cast and nullCast extension functions for functional programming style of type casting. Ex: val thing: MyType2 = myType1.cast<MyType2>().withThing().doAnotherThing()Expression with pre-compiled shortcuts for many situations; optimized constant usage.hashcode and equals methods for direct comparison.13.06.2024 · 26 196 загрузки
cast and nullCast extension functions for functional programming style of type casting. Ex: val thing: MyType2 = myType1.cast<MyType2>().withThing().doAnotherThing()Expression with pre-compiled shortcuts for many situations; optimized constant usage.hashcode and equals methods for direct comparison.24.05.2024 · 238 загрузки
ValidatedIngredient interface to a new popup with two list editors, list viewers, and "Clear" buttons.supplyTooltipOnOverflow method to SuppliedTextWidget that allows for provision of a tooltip in case the text widget overflows and "trims" the input. This can be identical to the text supplier (can be the text supplier instance itself), or can be a separate supplier with, for example, newlines instead of commas separating text elementsValidatedIngredient now supports both tags and item IDs, instead of just item ids. The constructor now accepts Set<Object>, which can be composed of TagKeys and Identifiers (for tags and items, respectively)20.05.2024 · 142 загрузки
ValidatedIngredient interface to a new popup with two list editors, list viewers, and "Clear" buttons.supplyTooltipOnOverflow method to SuppliedTextWidget that allows for provision of a tooltip in case the text widget overflows and "trims" the input. This can be identical to the text supplier (can be the text supplier instance itself), or can be a separate supplier with, for example, newlines instead of commas separating text elementsValidatedIngredient now supports both tags and item IDs, instead of just item ids. The constructor now accepts Set<Object>, which can be composed of TagKeys and Identifiers (for tags and items, respectively)20.05.2024 · 8 854 загрузки
ValidatedIngredient interface to a new popup with two list editors, list viewers, and "Clear" buttons.supplyTooltipOnOverflow method to SuppliedTextWidget that allows for provision of a tooltip in case the text widget overflows and "trims" the input. This can be identical to the text supplier (can be the text supplier instance itself), or can be a separate supplier with, for example, newlines instead of commas separating text elementsValidatedIngredient now supports both tags and item IDs, instead of just item ids. The constructor now accepts Set<Object>, which can be composed of TagKeys and Identifiers (for tags and items, respectively)20.05.2024 · 306 690 загрузки
ValidatedIngredient interface to a new popup with two list editors, list viewers, and "Clear" buttons.supplyTooltipOnOverflow method to SuppliedTextWidget that allows for provision of a tooltip in case the text widget overflows and "trims" the input. This can be identical to the text supplier (can be the text supplier instance itself), or can be a separate supplier with, for example, newlines instead of commas separating text elementsValidatedIngredient now supports both tags and item IDs, instead of just item ids. The constructor now accepts Set<Object>, which can be composed of TagKeys and Identifiers (for tags and items, respectively)18.05.2024 · 380 загрузки
18.05.2024 · 156 загрузки
Supplier overloads to ConfigApi to provide smoother interop with Java implementations, reducing the need for java mods to add fabric language kotlin to their compile class path.validateAndSet methods to ValidatedIngredient that allow for direct updating via Identifier, Set, or Tag without having to make your own Ingredient Provider instance first.18.05.2024 · 1 070 загрузки
Supplier overloads to ConfigApi to provide smoother interop with Java implementations, reducing the need for java mods to add fabric language kotlin to their compile class path.validateAndSet methods to ValidatedIngredient that allow for direct updating via Identifier, Set, or Tag without having to make your own Ingredient Provider instance first.04.05.2024 · 17 829 загрузки
ValidatedEntityAttribute for configuring paired EntityAttribute/EntityAttributeModifier instances.SuppliedTextWidget, a generic TextWidget that renders text from a Supplier of text rather than a static text input.toSet() methods in ValidatedField, allowing for quick wrapping of sets in the same manner as the pre-existing toList() methods.OnClickTextFieldWidget now renders its displayed text from the beginning, instead of the end.ValidatedString will throw an exception from the Regex constructor if the regex can't match to the default value givenValidatedDouble or ValidatedFloat with small ranges now have better slider scaling with keyboard navigation, instead of sticking to increments of 1.0configure command including all screen subscopes, not just the relevant subscopesValidatedEnum client crash related to certain types of Enums.OnClickTextFieldWidget improperly trapping keyboard navigation.04.05.2024 · 40 364 загрузки
ValidatedEntityAttribute for configuring paired EntityAttribute/EntityAttributeModifier instances.SuppliedTextWidget, a generic TextWidget that renders text from a Supplier of text rather than a static text input.toSet() methods in ValidatedField, allowing for quick wrapping of sets in the same manner as the pre-existing toList() methods.OnClickTextFieldWidget now renders its displayed text from the beginning, instead of the end.ValidatedString will throw an exception from the Regex constructor if the regex can't match to the default value givenValidatedDouble or ValidatedFloat with small ranges now have better slider scaling with keyboard navigation, instead of sticking to increments of 1.0configure command including all screen subscopes, not just the relevant subscopesValidatedEnum client crash related to certain types of Enums.OnClickTextFieldWidget improperly trapping keyboard navigation.27.04.2024 · 668 загрузки
IgnoreVisiblity annotation. A config marked with ignore visibility can have private/protected etc. fields/props. This was added for backwards compatibility with configs that may be using restricted visibility to store non-config information.IgnoreVisiblity stateOnClickTextFieldWidget now takes an OnInteractAction instance instead of a Consumer<OnClickTextFieldWidget>. This lets the text field pass key presses to whatever the widget desires (generally a newly pushed PopupWidget element)27.04.2024 · 2 780 загрузки
IgnoreVisiblity annotation. A config marked with ignore visibility can have private/protected etc. fields/props. This was added for backwards compatibility with configs that may be using restricted visibility to store non-config information.IgnoreVisiblity stateOnClickTextFieldWidget now takes an OnInteractAction instance instead of a Consumer<OnClickTextFieldWidget>. This lets the text field pass key presses to whatever the widget desires (generally a newly pushed PopupWidget element)25.04.2024 · 361 загрузки
Translatable now has a hasTranslation() and hasDescription method in case an inheritor can have valid descriptions or translations other than via the typical I18n key check.Entry Widget has gained the method widgetAndTooltipEntry, which attempts to apply a description tooltip to a widget, if applicable.EntryWidget is no longer a functional interfaceMapListWidget not properly firing mouseReleased on its children when the mouse is released out of that child's bounds.PopupWidgetScreen now correctly shows tooltips on screen even when popups are open.25.04.2024 · 638 загрузки
Translatable now has a hasTranslation() and hasDescription method in case an inheritor can have valid descriptions or translations other than via the typical I18n key check.Entry Widget has gained the method widgetAndTooltipEntry, which attempts to apply a description tooltip to a widget, if applicable.EntryWidget is no longer a functional interfaceMapListWidget not properly firing mouseReleased on its children when the mouse is released out of that child's bounds.PopupWidgetScreen now correctly shows tooltips on screen even when popups are open.24.04.2024 · 149 загрузки
ValidatedString methods not returning a ValidatedString as intended.24.04.2024 · 817 загрузки
ValidatedString methods not returning a ValidatedString as intended.24.04.2024 · 107 загрузки
ValidatedString.fromList() for easy construction of a ValidatedString from a known list of options or a supplier of potential options.EntrySuggester which has the SAM getSuggestions.AllowableStrings utility, much like AllowableIdentifiers. Implements EntryChecker and the new EntrySuggester.SuggestionBackedTextFieldWidget if an AllowableStrings is passed as its EntryChecker. Using the new fromList() automatically does this.ValidatedIdentifier.ofSuppliedList() to construct validation with lists that aren't tags/registries but may not be fully known at validation time.AllowableIdentifiers now implements EntryValidator and the new EntrySuggester.24.04.2024 · 212 загрузки
ValidatedString.fromList() for easy construction of a ValidatedString from a known list of options or a supplier of potential options.EntrySuggester which has the SAM getSuggestions.AllowableStrings utility, much like AllowableIdentifiers. Implements EntryChecker and the new EntrySuggester.SuggestionBackedTextFieldWidget if an AllowableStrings is passed as its EntryChecker. Using the new fromList() automatically does this.ValidatedIdentifier.ofSuppliedList() to construct validation with lists that aren't tags/registries but may not be fully known at validation time.AllowableIdentifiers now implements EntryValidator and the new EntrySuggester.23.04.2024 · 92 загрузки
23.04.2024 · 259 загрузки
22.04.2024 · 544 загрузки
ValidatedAny crashing on an object without a 0-arg constructor.22.04.2024 · 223 загрузки
RequiresRestart annotation now applicable to classes. Not transitive through Sections yet.RequiresRestart and NonSync not being able to target java fields21.04.2024 · 143 загрузки
RequiresRestart annotation now applicable to classes. Not transitive through Sections yet.RequiresRestart and NonSync not being able to target java fields21.04.2024 · 124 загрузки
RequiresRestart annotation now applicable to classes. Not transitive through Sections yet.RequiresRestart and NonSync not being able to target java fields20.04.2024 · 1 003 загрузки