Skip to content

Remove vote-site WORD JOINER guards only at final display sinks - #362

Closed
BenCodez wants to merge 13 commits into
masterfrom
fix/inert-votesite-display-boundaries-20261011
Closed

BenCodez wants to merge 13 commits into
masterfrom
fix/inert-votesite-display-boundaries-20261011

Conversation

@BenCodez

@BenCodez BenCodez commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

Problem

VotingPlugin #1643 deliberately guards untrusted vote-site identifiers with U+2060 WORD JOINER, but the client can display it as missing-glyph boxes. Removing the guards where the values are created would re-enable color/placeholder injection.

Fix

  • Strip the guards from finalized chat components, hover content, inventory titles, book layouts, display titles and boss bars.
  • For item display names and lore, render a clean copy only when guards exist. Keep the original builder's guarded text for subsequent GUI updates, which would otherwise reparse an unsafe &a or %placeholder% string.
  • Keep exact command/action placeholders unchanged; formatting security is still enforced until all interpreters are finished.
  • Add focused tests for visible name, exact clickable URL, and a previously guarded literal color sequence.

Dependency

SimpleAPI #112 fixes the shared dialog and action-bar last sinks; this branch handles AdvancedCore's other outputs. VotingPlugin's NeoForge last sink is handled separately. All are shaded into VotingPlugin, so no admin-side plugin installation is needed.

Validation

GitHub CI and a cross-repository VotingPlugin packaging/regression pass are required before marking ready. Maven isn't available in the current tool runtime; please use CI for full builds. No merge requested.

Secondary legacy-string safety

String-only Bukkit sinks (inventory names, item metadata, boss bars) can be parsed by the client again. For an incomplete trusted § directly before a guarded site name, the final cleanup inserts a separating space rather than creating a new color code. Parsed Bungee components strip markers without that adjustment because the parsing is already finished.

@coderabbitai

coderabbitai Bot commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 33 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 528ed009-a869-40c3-984e-327377c657f9

📥 Commits

Reviewing files that changed from the base of the PR and between 6390c1c and 25e771d.


📒 Files selected for processing (9)
  • AdvancedCore/src/main/java/com/bencodez/advancedcore/api/bookgui/BookWrapper.java
  • AdvancedCore/src/main/java/com/bencodez/advancedcore/api/bookgui/Layout.java
  • AdvancedCore/src/main/java/com/bencodez/advancedcore/api/inventory/BInventory.java
  • AdvancedCore/src/main/java/com/bencodez/advancedcore/api/item/ItemBuilder.java
  • AdvancedCore/src/main/java/com/bencodez/advancedcore/api/messages/DisplayTextBoundaries.java
  • AdvancedCore/src/main/java/com/bencodez/advancedcore/api/messages/PlaceholderUtils.java
  • AdvancedCore/src/main/java/com/bencodez/advancedcore/api/misc/effects/BossBar.java
  • AdvancedCore/src/main/java/com/bencodez/advancedcore/api/misc/effects/Title.java
  • AdvancedCore/src/test/java/com/bencodez/advancedcore/api/messages/DisplayTextBoundariesTest.java

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@BenCodez BenCodez closed this Oct 11, 2026
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.

1 participant