hChat — the chat plugin
a Paper 1.20+ server actually wants.
A modern, complete chat system for Paper 1.20+ servers. Built by @hauchdev. MIT, on GitHub, one plugin instead of six.
$ ls plugins/
hChat.jar LuckPerms.jar PlaceholderAPI.jar
$ java -jar paper-1.21.4.jar nogui
[hChat] Hooked PlaceholderAPI 2.11.3 — registering identifiers
[hChat] Permissions: read from LuckPerms (112 nodes detected)
[hChat] Languages loaded: en, es, fr (3 files)
[hChat] /hchat reload · /hchat lang · /msg · /reply · /spy ready
[hChat] softdepend: Vault=disabled, DiscordSRV=present (no relay yet)
> What we have on github.com/hauchdev.
Pulled live from the GitHub API every hour. New repos show up here automatically; you don't have to come back to edit this page.
The last few commits to hChat.
Pulled live — every hour — from /repos/hauchdev/hChat/commits. If GitHub is unavailable, we show the last cached value (or nothing, on the very first visit).
Opinions we hold out loud.
Skip these if you don't care. They're why hChat behaves the way it does.
Hot reload is a contract.
/hchat reload picks up config.yml and every lang_*.yml without bouncing the server. We treat that as part of the public API, not a convenience.
Per-player language > server-wide only.
A single key in storage/player-lang.yml is enough for a player to choose their own locale; the server-wide lang is just the fallback.
Permission gates are written once.
No runtime permission check scattered across handlers. Every command & feature describes itself in plugin.yml, and the runtime reads from there.
Drop the JAR and run.
No config wizard, no installer flow. wget, reload, done.