
hChat
A modern and complete chat system for Paper 1.18+ servers.
Оцените первым
55
4
Список изменений
[1.3.0] 2026-08-09
Added
🛡️ Moderation
/slowmode <seconds|off|status>— global per-player chat cooldown kept in memory (never rewritesconfig.yml, comments preserved), with configurable bypass permission (hchat.slowmode.bypass)./chatlock on|off|status— locks the whole chat; staff withhchat.chatlock.bypasskeep talking.- Staff chat
/sc— private staff channel with its own format and optional console logging (staff-chat.*). - Mass mentions
@everyone/@here— permission-gated (hchat.mention.everyone/hchat.mention.here) with per-token cooldown and sound;@hereonly reaches players in the same world. - Advanced filter chain (
filters:section, config v6): anti-caps (block/mask/lowercase), anti-unicode (zero-width spaces, direction overrides, tag characters, BOM), anti-advertisement (regex patterns + whitelist + fast-fail) and anti-spam (global per-player cooldown + sliding-window flood detection with Levenshtein similarity).WordFilternow runs inside the sameFilterChainpipeline.
💬 Chat & channels
- Per-world channels —
channels.<id>.per-worldstops messages from crossing worlds;{world}placeholder available in channel formats. - Default channel by permission —
channels.default-by-permissionjoins the first matching channel on entry without overriding a persisted choice. - Channel action-bar hints — 3-second action bar with the active
channel after switching (
channels.hint-on-switch) and on join (channels.hint-on-join). - Chat replay —
/hchat replay [player]reprints the last lines of chat (ring buffer,replay.capacity, default 50) and/hchat replay clear-bufferempties it. Channels with a see-permission are never buffered. - Mention highlight — bold highlight on top of the mention color
(
mentions.highlight). A real background color is not possible in vanilla chat (AdventureStylehas no background), so the highlight is bold text. - Click-to-reply on global chat — the previously unused
hover-text.formatnow renders the hover tooltip +/msgsuggestion on public chat.
🧑🤝🧑 Social & QoL
/dnd [on|off]— completes the DND feature: DMs to a DND player are blocked with a lang message;hchat.bypass.dndoverrides./ping [player]and/seen <player>./afk [message]— built-in AFK with automatic inactivity detection (afk.auto-timeout-seconds), activity-based unset (movement/chat/commands/interactions), chat announcement when returning (afk.notify-unset) and integration with the[afk]chat token (built-in state first, PAPI fallback)./hchat mail read|clear|send— offline messages now keep the sender + timestamp; joining shows a clickable summary (offline-messages-pending) instead of auto-delivering, and/hchat mail readlists them with a reply suggestion.- Silenced-DM action bar — when a DM is not delivered (receiver has
DND or ignores the sender), the sender sees the configurable
direct-messages.silenced-action-bar. /hchat aboutand/hchat ignore list(click to unignore).- Death messages — configurable, per-cause death messages
(
death-message.*), replacing the vanilla line.
🔌 API & developer
- Expanded public API —
HChatProvidernow exposeschannelManager(),dndManager(),messageHistory()andbroadcastService(), pluspublishToChannel(channel, message). - Premium extension API —
dev.hauch.hchat.api.premium(PremiumModule,PremiumChatEnhancer) lets a private Premium edition register commands/listeners/managers and hook chat processing (allowChat/transformMessage/transformFormat) without forking the free core. The free distribution never references it and keeps working without it.
🛠️ Build & tests
- Config v7 — new sections
slowmode,chat-lock,staff-chat,death-message,mentions.everyone-*+mentions.highlight,filters:*,replay,afk:*,channels.default-by-permission+channels.hint-*,direct-messages.silenced-action-bar. Automatic migration merges the new keys into existing configs and now backs up the old file once per source version (config-backup-v{n}.yml). - Unit tests — JUnit 5 suite in
core(26 tests) coveringOfflineMessageStore,ChatReplay,FilterAction,ChatChannelandMessageFormatter. CI now runs the tests on every build (removed-DskipTests). - New commands —
/slowmode,/chatlock,/sc,/dnd,/ping,/seen,/afk(plushchat.afkand the other permissions) inplugin.yml.
Fixed
- Mention colors now actually render — the renderer previously
ignored
event.message(), so the mention-color edit was invisible. The message is now built as aComponentwith styled mentions embedded into the rendered format. @everyoneXfalse positive — mass-mention tokens use a word-boundary check, so@everyoneXis no longer treated as@everyone.- Blocked messages no longer consume cooldowns — the mass-mention gate (and the chatlock/slowmode/channel checks) run before any cooldown is recorded.
/dnd on|offstate message — explicit on/off no longer showed the inverted state./slowmodeno longer destroysconfig.ymlcomments — the value is kept in memory, not written back to the file.
Changed
OfflineMessageStoreentries carry sender + timestamp and are only removed when read or cleared (/hchat mail); joining shows a summary.DynamicPlaceholderResolverprefers the built-in AFK state for[afk]; the PAPI placeholder remains the fallback.
Файлы
hChat-1.3.0.jar(269.44 KiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.3.0
Загрузчики
BukkitPaperPurpurSpigot
Версии игры
1.18–26.2
Загрузок
39
Дата публикации
09.08.2026
