Skip to content

Restore release vote-site formatting and fix proxy service logs - #1711

Merged
BenCodez merged 1 commit into
masterfrom
fix/restore-release-site-formatting
Oct 13, 2026
Merged

BenCodez merged 1 commit into
masterfrom
fix/restore-release-site-formatting

Conversation

@BenCodez

Copy link
Copy Markdown
Owner

Restore vote-site display formatting to the GitHub 7.1.1 release behavior and preserve ordinary service punctuation in proxy receipt logs.

  • Revert the later Bukkit/Paper formatting guards and display-only reward/reminder overrides across chat, inventories, books, dialogs, broadcasts, cooldowns and rewards. Preserve configured colors and spacing; compatibility formatting getters return the raw values.
  • Use service-specific sanitation in both BungeeCord and Velocity receipt logs; player names retain username sanitation. Raw service identities and vote/reward/accounting/storage/async processing remain unchanged.
  • Restore the original reward-message template for newly generated sites; existing configuration is untouched. No new command, configuration migration or companion-library update is required.

This intentionally restores the release's formatting trust semantics: external/fallback values can participate in existing formatting and placeholder interpretation. It does not retain the later interpreter-boundary protection. The separate NeoForge replay adapter and shared guard helper are unchanged.

Validation: 82 focused tests passed. The final latest-master clean package ran 2,435 tests: 2,434 passed, zero failures/errors and one existing optional paired-Votifier diagnostics test skipped because its optional artifact was not supplied. All five packaged-artifact tests passed. Verified ZIP integrity, intended class bytes, absence of packaged test dependencies, exact public AdvancedCore snapshot identity and the isolated 20-file PR scope. Build used bounded local JVM heaps after an environment OOM. The JAR is 10,632,801 bytes, exceeding the advisory 10 MiB limit by 147,041 bytes. No native Minecraft client/Paper/Folia gameplay verification is claimed.

Fresh independent source-only review of the final base-to-HEAD diff: No findings.

@coderabbitai

coderabbitai Bot commented Oct 13, 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 2 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 79d8647b-3a6f-4db6-888b-da7ee4359554
📥 Commits

Reviewing files that changed from the base of the PR and between 9a91be8 and a9e9c28.

📒 Files selected for processing: 20
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/backendproxy/messaging/BackendProxyMessageRouter.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/commands/gui/player/VoteLast.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/commands/gui/player/VoteNext.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/commands/gui/player/VoteToday.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/commands/gui/player/VoteURL.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/commands/gui/player/VoteURLVoteSite.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/config/ConfigVoteSites.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/cooldown/CoolDownCheck.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/listeners/PlayerVoteListener.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/proxy/bungee/VotingPluginBungee.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/proxy/velocity/VotingPluginVelocity.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/user/VotingPluginUser.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/votereminding/VoteRemindersListener.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/votereminding/VoteRemindersManager.java
  • VotingPlugin/src/main/java/com/bencodez/votingplugin/votesites/VoteSite.java
  • VotingPlugin/src/test/java/com/bencodez/votingplugin/proxy/ServiceSiteVoteLoggingRegressionTest.java
  • VotingPlugin/src/test/java/com/bencodez/votingplugin/tests/reminders/VoteRemindersListenerTest.java
  • VotingPlugin/src/test/java/com/bencodez/votingplugin/tests/votesite/ReleaseSiteFormattingTest.java
  • VotingPlugin/src/test/java/com/bencodez/votingplugin/tests/votesite/VoteSiteTest.java
  • docs/service-site-rendering.md
  • 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.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-13T22:31:12.371809Z a9e9c28 PR opened
🔒 Security Review ✅ Completed 2026-10-13T22:35:08.731658Z a9e9c28 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a9e9c282f5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@Override public boolean siteEnabled(VoteSite site) { return site.isEnabled(); }
@Override public String siteKey(VoteSite site) { return site.getKey(); }
@Override public String siteDisplayName(VoteSite site) { return site.getDisplayNameForFormatting(); }
@Override public String siteDisplayName(VoteSite site) { return site.getDisplayName(); }

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep untrusted service names inert during formatting

When AutoCreateVoteSites is enabled (the shipped default), a Votifier sender can supply an otherwise-valid service such as %player_ip%, which becomes the generated site's fallback display name. Returning that raw value here lets BroadcastFormat insert it into %site%, after which BroadcastHandler.broadcastNow runs PlaceholderUtils.replacePlaceHolders, turning attacker-controlled service text into a second-pass PlaceholderAPI expression; installed expansions may therefore disclose data or perform expansion-specific effects instead of displaying the service literally. Preserve the inert display value for broadcasts and other rendering paths while retaining the raw identifier only for matching and action placeholders.

AGENTS.md reference: AGENTS.md:L7-L9

Useful? React with 👍 / 👎.

@BenCodez

Copy link
Copy Markdown
Owner Author

Regarding the P1 formatting finding: acknowledged and deferred to follow-up work.

This PR intentionally restores the 7.1.1 Bukkit/Paper formatting behavior, including raw site values entering the existing formatter. The interpreter-boundary risk is documented in service-site-rendering.md and the PR description. The finding remains valid; this rollback does not claim to prevent expansion of untrusted service text.

The immediate scope restores normal site-name spacing and corrects proxy service-name logging. The proposed AutoCreateVoteSites setup reminder is separate work and does not resolve this boundary. The formatting-security follow-up remains deferred. No change is being represented as a security fix here.

@BenCodez
BenCodez merged commit 4724d57 into master Oct 13, 2026
6 checks passed
@BenCodez
BenCodez deleted the fix/restore-release-site-formatting branch October 13, 2026 22:38
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