GTNH-Credits
16 merged pull requests.
New Features
- #23 Added ESC keybind handler to
CreditsScreento close the screen. - @Worive- Added: ESC keybind to close credits screen
- #22 Modified
ConfigandCreditsRepositoryto check forcredits.jsonin the config directory before falling back to bundled resources. Moved the example config file location. - @Worive- Added: config folder support for credits.json, config folder support for gtnh-credits.cfg
- #18 Created GitHub Actions workflow to build and release the editor JAR with launch scripts on tag events. - @leagris
- Added: release-tags.yml workflow, editor build configuration
- #10 Created creditsEditor subproject with Gradle integration, installable as a fat JAR with launch scripts. Supports editing credits.json and en_US.lang files from either the mod's resource directory or a ZIP pack. - @leagris
- Added: Credits editor desktop application, creditsEditor gradle subproject, shell/batch launch scripts, installation to ~/.local
- #7 Added
FuzzyFinderclass implementing Damerau-Levenshtein distance scoring with configurable layers: perfect match (0.0), prefix match (0.1+), substring match (5+), and fuzzy match (10+). UpdatedCreditsControllerandCreditsScreento use fuzzy search instead of regex. - @SkorchedEU- Added: FuzzyFinder utility class, fuzzy search functionality, search cost configuration
- #3 Added
CmmActionHandlerandGuiMainMenuHandlerclasses to handle IMC messages from Custom Main Menu, integrated intoClientProxyand build configuration. - @leagris- Added: Custom Main Menu IMC integration, CmmActionHandler for opening credits via IMC
- Removed: GuiMainMenuHandler stub
- #1 Replaced plain text matching with regex in CreditsBodyPanel. Implemented custom text input handling in CreditsScreen using GuiScreen events to support dead key input when lwjgl3ify is loaded, since MUI2 text widgets don't support composition. - @leagris
- Added: Regex filter support, custom text input handler for dead keys
- Fixed: Dead key input on non-US keyboards
Changes
- #6 Refactored
CreditsPersonto useMap<String, List<String>>forcategoryRolesinstead of separate categories/roles lists. UpdatedCreditsRepository,CreditsValidator, and schema generation. Replaced hand-rolled validator withcom.networknt:json-schema-validator:3.0.1(test-scoped). - @leagris- Added: credits.json schema version 2, per-category role assignment, json-schema-validator dependency (test)
- Removed: top-level role field in CreditsPerson
- Fixed: GHSA-72hv-8253-57qq with jackson-core 3.1.0, WS-2026-0003 with jackson-core 3.1.0
- Migration: Update credits.json files to schema version 2: move roles into nested category objects instead of top-level role arrays.
- #5 Replaced Jackson/json-schema-validator with Gson in dependencies. Fixed mod name in
@Modannotation, added properInputStreamclosing in icon loading, renamed texture folder from 'credis' to 'credits', refactoredCachedRichTextWidget.draw()into focused helpers, migrated validation from Gradle task to JUnit tests. - @leagris- Added: JUnit validation tests for credits.json, Gson dependency
- Removed: json-schema-validator dependency, Jackson dependency, validateCreditsJson Gradle task
- Fixed: CVE GHSA-72hv-8253-57qq, CVE WS-2026-0003, InputStream not closed after ImageIO.read
Bug Fixes
- #24 Modified
CreditsCategorySelectorto clamp the category section scroll offset when the GUI is resized. - @Worive- Fixed: sidebar scroll offset not resetting on GUI resize
- #21 Corrected text formatting reset logic in CreditsContentRenderer to properly clear color formatting after role entries. - @Worive
- Fixed: Role colors not resetting
- #19 Enabled shadow dependencies in gradle.properties and dependencies.gradle to include libCredits in the mod JAR. - @SuperSoupr
- Fixed: Credits page crash due to missing libCredits
Removals
- #4 Deleted unused
com.cleanroommc.modularuipackage files:IKey.java,ITextLine.java,RichText.java,StringKey.java. - @leagris- Removed: com.cleanroommc.modularui.api.drawable.IKey, com.cleanroommc.modularui.api.drawable.ITextLine, com.cleanroommc.modularui.drawable.text.RichText, com.cleanroommc.modularui.drawable.text.StringKey
Internal / Refactor
- #8 Created new
libCreditssubproject containingCreditsParser,CreditsData,CreditsCategory,CreditsPerson,FuzzyFinder, and related classes. Updated main mod to depend on and use the library. Modified dependencies and settings.gradle to include the new module. - @leagris- Added: libCredits library module, CreditsParser in library, CreditsParseException in library
- Removed: CreditsRepository from main mod
Documentation
- #20 Updated README.md with revised setup steps and configuration format details. - @Worive
- #2 Added 2 lines to README.md. - @leagris
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@leagris (11), @boubou19 (5), @Worive (5), @FourIsTheNumber (1), @github-code-quality (1), @github-code-quality[bot] (1), @SkorchedEU (1), @SuperSoupr (1)