Carbon viewer-context bug: <luckperms_prefix> resolves against viewer
not sender. Researched two open-source alternatives.
Both fix the bug. ChatChat (HelpChat fork) renders per-recipient with
PlaceholderAPI.setPlaceholders(sender, ...) + Kyorifier converts legacy
& codes to MM. VentureChat resolves PAPI once vs sender, splits packets
via ProtocolLib.
Concerns:
- ChatChat: 0 GitHub releases, last commit 2025-04-02, apiVersion 1.21.4,
uses deprecated AsyncPlayerChatEvent
- VentureChat: built for 1.21.8, open issues #154/#156/#157 report
1.21.10+ breakage with no maintainer response 4+ months
Both verdicts: cautious recommend. Operator decision pending player
input + migration plan synthesis.