Skip to content

GTNH-Credits ​

16 merged pull requests.

New Features ​

  • #23 Added ESC keybind handler to CreditsScreen to close the screen. - @Worive
    • Added: ESC keybind to close credits screen
  • #22 Modified Config and CreditsRepository to check for credits.json in 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 FuzzyFinder class implementing Damerau-Levenshtein distance scoring with configurable layers: perfect match (0.0), prefix match (0.1+), substring match (5+), and fuzzy match (10+). Updated CreditsController and CreditsScreen to use fuzzy search instead of regex. - @SkorchedEU
    • Added: FuzzyFinder utility class, fuzzy search functionality, search cost configuration
  • #3 Added CmmActionHandler and GuiMainMenuHandler classes to handle IMC messages from Custom Main Menu, integrated into ClientProxy and 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 CreditsPerson to use Map<String, List<String>> for categoryRoles instead of separate categories/roles lists. Updated CreditsRepository, CreditsValidator, and schema generation. Replaced hand-rolled validator with com.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 @Mod annotation, added proper InputStream closing in icon loading, renamed texture folder from 'credis' to 'credits', refactored CachedRichTextWidget.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 CreditsCategorySelector to 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.modularui package 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 libCredits subproject containing CreditsParser, 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)