-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: ClassCastException for Color conversion in newer Java versions #161
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This commit corrects the issue by converting the Color object to its RGB hex string representation.
TrentinTheKid
added
type: Bug
Something is broken :(
status: Pending
Issue is waiting to be verified as still active
labels
Aug 13, 2024
ItsNature
added
status: Accepted
An issue that is going to be fixed
and removed
status: Pending
Issue is waiting to be verified as still active
labels
Aug 16, 2024
Your code fixes one issue but creates a new one. The code must support the This is the current master behavior: options.set(ModMemory.LOW_MEM_COLOR, "#FFFFAA00"); // Works
options.set(ModMemory.LOW_MEM_COLOR, Color.RED); // Broken After your changes: options.set(ModMemory.LOW_MEM_COLOR, "#FFFFAA00"); // Broken
options.set(ModMemory.LOW_MEM_COLOR, Color.RED); // Works |
Irrelevant due to recent changes |
…pport This commit addresses the regression introduced in the previous fix that enabled Color object usage but broke HEX string compatibility. The code has been adjusted to ensure that both HEX strings (e.g., "#FFFFAA00") and Color objects (e.g., Color.RED) can be used interchangeably when setting color values in options.set(). This fix ensures backward compatibility with the previous behavior while retaining the ability to use Color objects without causing a ClassCastException.
The commit 75df5dd fixes the issue. It has been tested for Java 17 and 8. |
ItsNature
approved these changes
Aug 27, 2024
vectrixdevelops
approved these changes
Aug 28, 2024
This was referenced Sep 3, 2024
Merged
ItsNature
added a commit
that referenced
this pull request
Oct 28, 2024
* Deploy as 1.1.5-SNAPSHOT * Lightweight (#162) * WIP: lightweight docs * Lightweight doc revamp * Simple touch-ups * Switch methods to tabs * Attempt to fix tabs * Close tabs * again * Revert tabs * Attempt to add tabs once more * Add tab import * Fix tab import * Add lightweight-wrapper & lightweight-example modules * Register "lunar:apollo" for player detection * Add protobuf repo section * Remove lightweight-wrapper & lightweight-example * Add the Apollo repository & protobuf-java-util as dependency to docs * Use correct ` * Fix typo --------- Co-authored-by: TrentinTheKid <[email protected]> * fix: ClassCastException for Color conversion in newer Java versions (#161) * fix: ClassCastException for Color conversion in newer Java versions This commit corrects the issue by converting the Color object to its RGB hex string representation. * fix: Restore HEX string compatibility while retaining Color object support This commit addresses the regression introduced in the previous fix that enabled Color object usage but broke HEX string compatibility. The code has been adjusted to ensure that both HEX strings (e.g., "#FFFFAA00") and Color objects (e.g., Color.RED) can be used interchangeably when setting color values in options.set(). This fix ensures backward compatibility with the previous behavior while retaining the ability to use Color objects without causing a ClassCastException. * Throw RuntimeException for invalid Color types --------- Co-authored-by: ItsNature <[email protected]> * make player an audience (#163) * Deploy as 1.1.6-SNAPSHOT * Feature - Tebex Module (#167) * Implement Tebex module * Rename TebexCheckoutSupportType to TebexEmbeddedCheckoutSupport & add basket id parameter to the tebex command * basketId -> basketIdent * Remove callout & doc page --------- Co-authored-by: TrentinTheKid <[email protected]> * Feature - Add Tebex locale field (#174) * Add locale field to the tebex module * Add seperate method to not break the API * Use correct locale arg * Lightweight: Documentation (#172) * Add a bunch of lightweight examples * Add more examples * Even more examples... * More examples & prepare for example plugin merge * Fix adventure usages * Testable state * Add more notes * Add switch implementation command * Finish more examples, start working on markdown * Spotless fixes * Update beam.mdx with new examples * Finish team examples * More markdown work * Add missing import to chat.mdx * Move builders outside tabs again * Fix remaining serialization issues * Add more markdown examples * Add hologram & limb examples * move builders inside API tab, add nametag, nickhider & notification examples * Finish proto examples * Remove object utils * add temp layout * Finish all Json Examples * Add Tebex module locale field to lightweight examples * The merge! * Start lightweight.mdx rewrite * Close tab * Import callout * ADd modsettings examples * richpresence, serverrule, staffmod, stopwatch, title, tntcountdown, tranfser, vignette & waypoint markdown examples * Protobuf Lightweight Documentation * Minor changes * Updating player world code & markdown, packet enrichment & minor parameter fixups * Fix links * Fix the fixed links * Spotless fixes * Add lightweight callout to intro * add intro to meta json * Finish JSON lightweight docs * Remove old lightweight.mdx * Link usage methods, add module examples note * resolve callout issue? * Rebuild * Team markdown examples * update callout * update callout * remove placeholder text * Remove build status * Replace Component#appendNewLine with Component.append(Component.newline()) for backwards compatibility * Default implementation type to API * Remove protobuf-java-util dependency * Final touch-ups * fix typo * Wording Change * Lightning -> Lighting * Use Futures for Roundtrip example & implement timeout * Mark player data fields with `@Nullable` --------- Co-authored-by: TrentinTheKid <[email protected]> * Feature - Add packet spam debug command example (#177) * add spam packet debug command * decrease delay on packet spam * improve spam packets command --------- Co-authored-by: ItsNature <[email protected]> * Sync LunarClient Mods & Options (#181) * Sync LunarClient Mods & Options * Update version tags to 1.1.6 --------- Co-authored-by: LunarClient Bot <[email protected]> * Bump to 1.1.6 (#182) --------- Co-authored-by: TrentinTheKid <[email protected]> Co-authored-by: Hugo <[email protected]> Co-authored-by: Connor <[email protected]> Co-authored-by: LunarClient Bot <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit corrects the issue by converting the
Color
object to its RGB hex string representation. The problem was that attempting to cast ajava.awt.Color
object to aString
caused aClassCastException
in newer Java versions. The fix ensures that color values can be set using either HEX strings orColor
objects without causing exceptions.Overview
Description:
This pull request resolves the issue where attempting to cast a
java.awt.Color
object to aString
caused aClassCastException
in newer Java versions. The problem arose when handling color values that could be either HEX strings orColor
objects.Changes:
The code has been updated to properly handle both
String
andColor
inputs when setting color values. Specifically:current
value is aString
, it is used directly.current
value is aColor
object, it is converted to its RGB hex string representation usingInteger.toHexString(currentColor.getRGB())
before being set.This change ensures compatibility with both HEX string and
Color
object inputs, allowing the system to handle either type without causing exceptions.Code Example:
The new implementation:
This logic ensures that color values are consistently stored as strings, whether they originate as HEX strings or Color objects.
Related Issue (If applicable):
Screenshots and/or Videos (If applicable):
Review Request Checklist
feature/add-module
&bugfix/fix-issue
)Thanks to @AndyReckt for his help.