Skip to content

Hide inert formatting guards in finished dialogs and action bars - #112

Closed
BenCodez wants to merge 10 commits into
mainfrom
fix/inert-votesite-display-boundaries-20261011
Closed

BenCodez wants to merge 10 commits into
mainfrom
fix/inert-votesite-display-boundaries-20261011

Conversation

@BenCodez

@BenCodez BenCodez commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

Regression

VotingPlugin's externally supplied vote-site identifiers use U+2060 WORD JOINER to isolate color and placeholder syntax (VotingPlugin#1643). Some Minecraft clients render those otherwise-invisible characters as box glyphs around site names.

Permanent fix

  • Preserve the inert markers through both SimpleAPI formatting and UniDialog's own second, legacy-component parsing pass.
  • Paper: inject a UniDialog legacy-section component deserializer that strips U+2060 from the parsed Adventure Component tree, never from another format string.
  • Spigot: pass pre-rendered Bungee TextComponents to UniDialog title/body/buttons/tooltips/input labels. Parse with markers present, remove them from the completed components.
  • Action bars: parse legacy colors first, then strip guards from finalized text components.
  • Initial dialog text input defaults are restored only as literal initial values, not as templates.
  • Tests cover normal names, ampersand and section-sign boundary attacks, and nested placeholder literals on both Paper and Spigot.

Security / compatibility

Removing U+2060 before UniDialog's second color parser can expose a § formatting token across a trusted/untrusted boundary. This patch deliberately avoids that bypass. Color in admin-authored templates remains functional and vote identifiers remain exact. No administrator config change required.

Related changes

  • AdvancedCore #362: chat, inventories/items, books, boss bars and titles.
  • VotingPlugin #1705: NeoForge literal-message sink.
  • All patched libraries must be built into the VotingPlugin shaded jar before this issue can be considered released.

Validation

GitHub Actions Maven package/test checks required, followed by an integration build using updated shaded AdvancedCore and SimpleAPI. PR intentionally remains draft pending full review/integration; do not merge yet.

@coderabbitai

coderabbitai Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: dcfad39b-a3cb-4f10-9aeb-1ac810cc577c

  • 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