
ClickCopyChat
Allows one click copy of any Paper server message in chat (Server-side only)
📖About ClickCopyChat
ClickCopyChat — make every chat line copyable, not just player messages.
Requirements / Dependencies
- ProtocolLib (https://www.spigotmc.org/resources/protocollib.1997/) !Required!
- Paper 1.21.x (not tested below 1.21.8)
- Java 17+ runtime.
How it works:
For player chat, it wraps the rendered Adventure Component.
For plugin/system chat, it uses ProtocolLib to intercept PLAY→SERVER chat packets (e.g., SYSTEM_CHAT, DISGUISED_CHAT, CHAT), decorates their payloads (Adventure, WrappedChatComponent, or raw JSON), and writes them back. If mutation isn’t possible, it cancels and resends a decorated copy—avoiding duplicates and action-bar overlays.
Highlights
- Click-to-copy on player chat and most plugin messages (Essentials, Skript broadcasts/errors, LuckPerms replies, etc.).
- Deep application to child components—entire line is copyable.
- Preserves formatting; adds hover hint; minimal overhead.
- Built-in diagnostics: /cccdebug (toggle logs), /cccpackets (show hooked packet types).
- Graceful degrade: without ProtocolLib, still enables copy-to-clipboard for player chat.
Limitations
Client-side constraint: copy_to_clipboard is a Java client feature; Bedrock (via Geyser/floodgate) won’t copy.
Non-chat UIs (titles/subtitles/action bar, boss bars) aren’t standard chat; optional mirroring can be added if desired.
Commands / Permissions
/cccdebug — toggle debug logs (permission: clickcopychat.debug).
/cccpackets — list hooked packet types (permission: clickcopychat.debug).