Skip to content

Conversation

@ThatOneDevil
Copy link
Owner

No description provided.

…left-clicking it still registers the button press
## Changelog

## Fixes
- Fixes major bug when hovering over button. closing the inventory and left-clicking it still registers the button press

## Code Changes
- Added debug option to config for developers to log more information.
- Changed the name of the parsed files to be formatted as `<serverIp>_<timestamp>.txt` for easier identification.
- Changed logger from main to client
- Fixed 1.21.1 build error
## Summary

Modrinth is currently unavailable; downloads and some services may be temporarily affected.

## Fixes

- Fixed a bug where hovering over a button, closing the inventory, and then left-clicking still registered the button press.

## Code Changes

- Added a `debug` option to the config to enable more detailed developer logging.
- Renamed parsed files to the format `<serverIp>_<timestamp>.txt` for easier identification.
- Switched logger context from `main` to `client`.
- Resolved build error for Minecraft `1.21.1`.
## Features

- Added shadow parsing (e.g., `<shadow:hex:alpha>`) to allow for custom shadow colors in text

## Bug Fixes

- Fixed duplicate text rendering issue where text was being appended twice:
  - The TextHandler was appending text via `ComponentValueRegistry.process(obj)` on line 28
  - The same text was being appended again via `obj.get("text")?.asString` on line 32
  - Removed the redundant append to prevent text duplication

# Code changes
- I see the problem! On line 32, it appends obj.get("text")?.asString again, but the TextHandler already appended the text in line 28 via ComponentValueRegistry.process(obj). This causes the text to appear twice.
## Features

- Added shadow parsing (e.g., `<shadow:hex:alpha>`) to allow for custom shadow colors in text
- Added the ability to toggle the parsing options for all options on by default
- Added the option to include raw nbt data in the file

## Bug Fixes

- Fixed duplicate text rendering issue where text was being appended twice:
  - The TextHandler was appending text via `ComponentValueRegistry.process(obj)` on line 28
  - The same text was being appended again via `obj.get("text")?.asString` on line 32
  - Removed the redundant append to prevent text duplication

# Code changes
- I see the problem! On line 32, it appends obj.get("text")?.asString again, but the TextHandler already appended the text in line 28 via ComponentValueRegistry.process(obj). This causes the text to appear twice.``
## Features

- Added shadow parsing (e.g., `<shadow:hex:alpha>`) to allow for custom shadow colors in text
- Added the ability to toggle the parsing options for all options on by default
- Added the option to include raw nbt data in the file

## Bug Fixes

- Fixed duplicate text rendering issue where text was being appended twice:
  - The TextHandler was appending text via `ComponentValueRegistry.process(obj)` on line 28
  - The same text was being appended again via `obj.get("text")?.asString` on line 32
  - Removed the redundant append to prevent text duplication

# Code changes
- I see the problem! On line 32, it appends obj.get("text")?.asString again, but the TextHandler already appended the text in line 28 via ComponentValueRegistry.process(obj). This causes the text to appear twice.``
## Features

- Added shadow parsing (e.g., `<shadow:hex:alpha>`) to allow for custom shadow colors in text
- Added the ability to toggle the parsing options for all options on by default
- Added the option to include raw nbt data in the file

## Bug Fixes

- Fixed duplicate text rendering issue where text was being appended twice:
  - The TextHandler was appending text via `ComponentValueRegistry.process(obj)` on line 28
  - The same text was being appended again via `obj.get("text")?.asString` on line 32
  - Removed the redundant append to prevent text duplication

# Code changes
- I see the problem! On line 32, it appends obj.get("text")?.asString again, but the TextHandler already appended the text in line 28 via ComponentValueRegistry.process(obj). This causes the text to appear twice.``
## Features
- Added /yoinkgui debug command where u can copy latest log along with mod info for easier bug reporting
- Added the ability to move the parse buttons around the screen by dragging them. Press M to toggle the menu
- Removed scale from config and made it a scrollable option in the menu (press M to open)

## Fixes

- Ensure the parse button hover state won't accidentally trigger when the inventory (or other screens) are closed.
- Prevent failures when sending formatted chat notifications (wraps chat sends and records errors instead of crashing).

## Code changed
- Added devauth for development stuff idk
## Features
- Added /yoinkgui debug command where u can copy latest log along with mod info for easier bug reporting
- Added the ability to move the parse buttons around the screen by dragging them. Press M to toggle the menu
- Removed scale from config and made it a scrollable option in the menu (press M to open)

## Fixes

- Ensure the parse button hover state won't accidentally trigger when the inventory (or other screens) are closed.
- Prevent failures when sending formatted chat notifications (wraps chat sends and records errors instead of crashing).

## Code changed
- Added devauth for development stuff idk
### Released December 27, 2025

### In-Game Changelog Viewer
You can now view changelogs directly in-game! No more alt-tabbing to check what's new.
- Use /yoinkguiclient changelog to view this changelog

### GUI Repositioning Menu
- Use /yoinkguiclient menu to open the repositioning screen
- Drag the button to your preferred location

## Bug Fixes
- Fixed the move button appearing on non-inventory screens
- The move button now only shows up when you're viewing your inventory

## Technical Improvements
- Enhanced stability with null safety checks for changelog loading
- Improved error handling to prevent crashes when viewing changelogs
- Better resource management for markdown parsing
- Debug command now includes class name instead of stacktrace. But stacktrace is copied.
- Added `Utils#toClickCommand` method.

## Commands Summary
- /yoinkguiclient changelog - View version history
- /yoinkguiclient menu - Reposition GUI button
### Released December 27, 2025

### In-Game Changelog Viewer
- You can now view changelogs directly in-game!
- Use /yoinkguiclient changelog to view this changelog

### GUI Repositioning Menu
- Use /yoinkguiclient menu to open the repositioning screen
- Drag the button to your preferred location

## Bug Fixes
- Fixed the move button appearing on non-inventory screens
- The move button now only shows up when you're viewing your inventory

## Technical Improvements
- Enhanced stability with null safety checks for changelog loading
- Improved error handling to prevent crashes when viewing changelogs
- Better resource management for markdown parsing
- Debug command now includes class name instead of stacktrace. But stacktrace is copied.
- Added `Utils#toClickCommand` method.

## Commands Summary
- /yoinkguiclient changelog - View version history
- /yoinkguiclient menu - Reposition GUI button
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @ThatOneDevil, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a significant update to the YoinkGUI mod, focusing on user experience, NBT parsing flexibility, and developer tooling. It empowers users with greater control over the in-game UI, offers advanced NBT formatting options, and provides robust debugging features. The changes aim to make the mod more customizable, stable, and user-friendly, while also streamlining development and support processes.

Highlights

  • Version Update & Dependency Management: The mod version has been updated to 1.7.2. A new Maven repository for 'DevAuth' has been added, along with a corresponding modRuntimeOnly dependency. Redundant URL definitions for Maven repositories were also cleaned up.
  • Enhanced UI/UX and Button Customization: A new keybinding (default 'M') has been introduced to open a dedicated screen for interactively repositioning and scaling the 'Yoink and Parse NBT' button. The button's rendering is now restricted to specific inventory screens, preventing it from appearing in unintended contexts.
  • NBT Parsing Improvements & Configurability: NBT parsing logic has been refined to prevent duplicate text appending and to correctly handle both minecraft:custom_name and minecraft:item_name. The output file naming now includes the server name and timestamp for better organization. Users can now toggle various NBT component parsers (Color, Style, Shadow, Gradient) and choose between Legacy and MiniMessage formatting via new configuration options. A new 'ShadowHandler' has been added for parsing shadow colors.
  • Command System Overhaul & Debugging Tools: The command system has been refactored, introducing a new /yoinkguiclient command with subcommands for checking updates (version), opening the button repositioning menu (menu), viewing in-game changelogs (changelog), and accessing detailed debug information (debug). A new LatestErrorLog utility helps record and retrieve recent errors for easier bug reporting.
  • In-Game Changelog Viewer: A new in-game changelog viewer has been implemented, allowing users to read mod updates directly within Minecraft via the /yoinkguiclient changelog command. This feature also includes Markdown parsing capabilities.
  • Codebase Refinements: Numerous internal code improvements include dynamic registration of NBT component handlers based on user settings, enhanced error handling for chat messages and update checks, conditional debug logging, and minor cleanup across various files.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/build.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@ThatOneDevil
Copy link
Owner Author

/gemini review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This is an impressive pull request with a substantial number of features, bug fixes, and refactorings. The introduction of a configurable button position screen, an in-game changelog viewer, a debug command, and more granular NBT parsing options are all excellent additions that significantly improve the mod's usability and maintainability. The code quality is high, and the architectural changes, like the dynamic NBT parser registration and improved error logging, are well-implemented. I've found a couple of minor issues that I've detailed in the comments, but overall, this is a fantastic update.

ThatOneDevil and others added 2 commits January 2, 2026 22:02
Added branches-ignore to prevent builds on beta branch.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces significant updates to the YoinkGUI mod, focusing on enhanced configurability, improved NBT parsing, and better user experience. Key changes include updating the mod version to 1.7.2, refactoring Gradle build configurations to add a new Maven repository for DevAuth, and updating the changelog path. The readme.md was updated to reflect new features like a configuration menu and shadow parsing, along with updated images. The mod now includes a dedicated ButtonPositionScreen accessible via the 'M' key (or /yoinkguiclient menu command) for dragging and scaling the NBT parsing button, replacing the previous config option. The NBT parser was improved to handle minecraft:item_name, simplify text component parsing, and allow configurable inclusion of raw NBT data in output files, which are now named based on the server IP and timestamp. Error handling was enhanced with a new LatestErrorLog utility and a /yoinkguiclient debug command for easier bug reporting. Additionally, a new /yoinkguiclient changelog command allows in-game viewing of release notes. The configuration system was extended to allow toggling of individual NBT formatting options (color, style, shadow, gradient) and switching between MiniMessage and Legacy formatting, with a fix for an italic parsing issue. The ScreenMixin was updated to restrict the NBT button's visibility to specific inventory screens, preventing accidental triggers. Review comments highlighted several areas for improvement: correcting the default value for formatOption to use .name instead of .displayName.toString(), removing a leading space in the DevAuth Maven repository URL, simplifying the instanceof checks in ScreenMixin by using a Set of allowed screen types, avoiding redundant calls to debugMessage in DebugCommand, fixing a typo in a user-facing string ('formating' to 'formatting'), and using a mod-specific keybinding category for the new button positioning keybind.

@ThatOneDevil ThatOneDevil merged commit 8c9cf57 into beta Jan 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants