AstralChat Overview
AstralChat is the network-wide chat plugin for AstralRealms. It replaces vanilla chat with a configurable channel system, cross-server private messaging, filters, tags, mentions, and a public API that other plugins can hook into.
What it provides
Feature | Summary |
|---|---|
Channels | YAML-defined chat channels with their own format, permission, cooldown, and optional custom command. |
Private messages |
|
Social spy | Staff command to monitor private messages with bypass permissions. |
Filters | Regex, caps, and similarity filters with configurable per-violation actions. |
Mentions |
|
Chat tags | YAML-defined prefix tags players can equip via menu actions. |
Nicknames |
|
Hide paid roles | Players can toggle their paid rank prefix on/off. |
AstralCore actions | Registers five new action types usable in any menu or dialog. |
Developer API | Public services, a cancellable |
Requirements
Dependency | Required | Notes |
|---|---|---|
Paper 1.21+ | Yes |
|
AstralCore | Yes | Menus, configuration, action framework, placeholders. |
AstralSync | Yes | Persists |
LuckPerms | Yes | Required for the |
LiteBans | Yes | Mute status is checked before broadcasting channel messages. |
RabbitMQ | Yes | Cross-server private messages, mentions, channel pause/broadcast. |
Redis | Yes | Caching for ignores and player data. |
MariaDB/PostgreSQL | Yes | Persistence for |
CraftEngine | Optional | Adventure component formatting integration. |
Architecture at a glance
Service | Responsibility |
|---|---|
| Pause/resume/broadcast channel messages, schedule auto-resume. |
| Renders and broadcasts the actual chat component to viewers. |
| Routes |
| Reads/writes the |
| Runs each registered |
| Detects |
| Loads |
| Tracks last-message timestamps for per-channel cooldowns. |
| Caches |
The chat pipeline is driven by three Bukkit listeners:
ChannelListener— enforces pause state and per-channel cooldown.FiltersListener— runs filters when the channel hasfiltered: true.DefaultChannelChatListener— renders the message, filters viewers, fires mentions, firesChannelChatEvent, broadcasts to subscribers.