Перейти к содержимому
Mineforgian

X-Chat

A plugin to easily manage chat

Загрузки
82
Подписчики
0
Обновлён
12 июля 2026 г.
Лицензия
MIT

Опубликован 30 мая 2026 г.

Spigot Wiki Discord

X-Chat

Advanced chat management with MiniMessage and custom formats

📝 Description

X-Chat is a comprehensive chat management plugin that gives you full control over your server's chat experience. From priority-weighted formats and interactive hover/click effects to real-time moderation filters and custom emojis — everything is configurable from YAML files. Supports all major color formats and gracefully handles both Paper and Spigot servers. Compatible with Minecraft 1.18+.

Features

  • Priority-based Format System: Create unlimited chat formats (admin, vip, default, etc.) with numeric priorities. The highest-priority format the player has permission for is automatically selected. Each format has independent color permissions (legacy, hex, MiniMessage).
  • Full Color Format Support: MiniMessage (<red>, <gradient>), Legacy (&c, &l), Hex (&#FF0000), BBCode ([BOLD], [COLOR=#hex]), and HTML shorthand (<b>, <i>, <u>, <s>) — all auto-converted seamlessly.
  • Interactive Player Names: Hover over a player's name to see custom info (rank, ping, etc. via PlaceholderAPI). Click to execute configurable actions (suggest command, run command, open URL, copy to clipboard). Works with all formats.
  • Auto-Mentions: Automatically detects when a player mentions another by name in chat. Highlights the mentioned name with a custom gradient format and plays a configurable sound. Supports optional @ prefix requirement.
  • Smart Moderation Suite: Anti-Spam (configurable cooldown), Anti-Caps (percentage threshold with auto-lowercase or block), Anti-Advertising (regex-based IP and Discord link detection), and Smart Censor (partial w**d or full **** word censoring). Each filter has its own bypass permission.
  • Dynamic Chat Tags: [item] — shows held item with hover tooltip (name, amount, durability, enchantments). [pos] — displays coordinates with click-to-copy. [ping] — shows player latency. All individually configurable with their own YAML files.
  • Custom Emoji System: Define text shortcuts that are replaced with emojis or formatted text. Supports MiniMessage in emoji values. Permission-gated or open to everyone.
  • Auto-Links: URLs in chat are automatically converted to clickable links with configurable hover text.
  • Private Messaging System: /msg, /r (reply) — usable by all players by default. Includes SocialSpy for staff, ignore system with persistence, and self-message prevention.
  • Chat History: Per-player message log saved in memory and disk. View with /chatlog or /history with paginated output.
  • Custom Join/Leave Messages: Configurable join, leave, and first-join messages with MiniMessage and PlaceholderAPI support. Cancels default Bukkit messages.
  • Auto-Broadcaster: Timed announcements with random or sequential order, configurable sounds, and multi-line MiniMessage support.
  • Custom Death Messages: Per-cause death messages (PvP, fall, drown, fire, lava, void, explosion, cactus, lightning, magic, projectile, etc.) with MiniMessage formatting.
  • Placeholders in Messages: Allow players to use PlaceholderAPI placeholders directly in their chat messages (configurable with permission).
  • 6 Language Files: EN, ES, PT, JA, RU, and CUSTOM — switch languages at runtime with /xchat locate.
  • Dynamic Command Registration: All commands (names and aliases) are defined in config.yml — no need to edit plugin.yml. Changes apply on reload.
  • Config Auto-Updater: Detects outdated configurations, creates a backup, and rebuilds automatically on startup.
  • Paper & Spigot Compatible: Hover, click, and interactive effects work natively on Paper. On Spigot, they are automatically stripped to plain text — no errors, no crashes.
  • Folia Supported: Fully compatible with Folia's regionized threading.

🖥️ Compatibility

Software Supported
Bukkit / Spigot / Paper / Purpur
Folia
PlaceholderAPI ✅ (soft)
Vault ✅ (soft)
Minecraft 1.18 → 1.21+

🛠️ Main Commands

/msg <player> <message> Sends a private message to a player. Usable by everyone by default.

/r <message> Replies to the last player who sent you a private message. Usable by everyone by default.

/clearchat Clears the chat for all online players.

/socialspy Toggles SocialSpy mode — see all private messages sent between players.

/ignore <player> Ignores a player. You will no longer see their messages or receive messages from them. Persistent across restarts.

/sudo <player> <command/message> Forces a player to execute a command or send a chat message.

/chatlog <player> [page] View a player's recent chat history with paginated output.

/broadcast <message> Send a global announcement to all online players with a custom format.

/xchat [subcommand]

  • help — Shows the help menu.
  • reload — Reloads all YAML configurations.
  • version — Shows the current version info.
  • update — Manually check for updates.
  • locate <language> — Changes the plugin language at runtime.

🛡️ Permissions

Chat Formats

  • xchat.format.admin — Use the admin chat format. (default: none)
  • xchat.format.vip — Use the VIP chat format. (default: none)
  • xchat.format.default — Use the default chat format. (default: none)

General

  • xchat.colors — Master permission to use ALL color types (legacy, hex, MiniMessage). (default: op)
  • xchat.tags.all — Master permission to use ALL interactive tags. (default: none)

Commands

  • xchat.command.clear — Use /clearchat. (default: op)
  • xchat.command.spy — Use /socialspy. (default: op)
  • xchat.command.ignore — Use /ignore. (default: op)
  • xchat.command.sudo — Use /sudo. (default: op)
  • xchat.command.history — Use /chatlog. (default: op)
  • xchat.command.broadcast — Use /broadcast. (default: op)

Administration

  • xchat.admin — Use /xchat admin commands. (default: op)

Filter Bypass

  • xchat.bypass.spam — Bypass anti-spam cooldown. (default: none)
  • xchat.bypass.caps — Bypass anti-caps filter. (default: none)
  • xchat.bypass.advertising — Bypass anti-advertising filter. (default: none)
  • xchat.bypass.blocked-words — Bypass blocked-words filter. (default: none)
  • xchat.bypass.grammar — Bypass auto-grammar corrections. (default: none)

Features

  • xchat.placeholders — Use PlaceholderAPI placeholders in chat messages. (default: none)
  • xchat.emojis — Use custom emojis in chat. (default: none)
  • xchat.tags.click — Use click tags in chat. (default: none)
  • xchat.tags.hover — Use hover tags in chat. (default: none)
  • xchat.tags.insert — Use insert tags in chat. (default: none)
  • xchat.tags.font — Use font tags in chat. (default: none)

Tip: /msg and /r have no permission by default — all players can use them. You can add a permission in config.yml to restrict access.


Need help? Join our [Discord](https://ptb.discord.com/invite/Yb6GsfGWmd) or report issues in the discussion section.

Ченджлог

1.3-Beta-07Бета26.1.1, 26.1.2, 26.2 · 12 июля 2026 г.

🚀 X-Chat v1.3-Beta-07 - Changelog

⚙️ Bug Fixes

  • Fixed local links not clickable + chat format removed — Moved legacy color conversion before system tags to prevent corrupting MiniMessage tags and URL parameters.
  • Fixed mention colors lost (local + cross-server) — Same pipeline fix preserves mention formatting correctly.
  • Fixed cross-server hover/click broken — Fixed server prefix deserializer, JSON now preserves all interactive data.
  • Fixed tags not hoverable cross-server — Tag configs now support both legacy and MiniMessage formats properly.
1.3-Beta-06Бета26.1.1, 26.1.2, 26.2 · 10 июля 2026 г.

🚀 X-Chat v1.3-Beta-06 - Changelog

🐛 Bugs/Error Fixes

  • Fixed IllegalPluginAccessException on plugin disableRedisMessagingService.publish() no longer uses the Bukkit scheduler (runTaskAsynchronously), which threw an error when the plugin was shutting down. Now uses CompletableFuture.runAsync() for all Redis publishes, making it safe during the entire plugin lifecycle including disable.
  • Fixed cross-server mention formatting lost — Mention highlights (color, bold, etc.) were stripped when messages traveled between servers. The cross-server payload now sends MiniMessage source strings instead of JSON-serialized Components, preserving all rich text formatting end-to-end.
  • Fixed cross-server auto-links not clickable — URLs with <click:open_url> and <hover> events were lost in transit. The new MiniMessage-based transfer preserves click and hover actions on links for Paper servers.
  • Fixed cross-server interactive player names not working — Hover and click events on player names in chat format were discarded cross-server. Now fully preserved via MiniMessage serialization.
  • Fixed cross-server tags ([inv], [pos], [ping]) losing hover/click — Item tooltips, position data, and ping display with their hover components now transfer correctly to other servers.
  • Fixed cross-server PM sender name not interactive — Private messages from other servers now show the sender's name with hover info (including their origin server) and click-to-reply action, matching the local PM behavior.
  • Fixed cross-server mention sound detection — The mention sound now uses pre-mention plain text for reliable player name matching, avoiding false negatives from MiniMessage tags wrapping player names.
1.3-Beta-05Бета26.1.1, 26.1.2, 26.2 · 9 июля 2026 г.

🚀 X-Chat v1.3-Beta-05 - Changelog

✨ New Features

  • Per-broadcast cross-server toggle — New cross-server: true/false option under broadcast-settings in config.yml to control whether /broadcast sends globally or locally only.
  • Per-broadcast server prefix toggle — New show-server-prefix: true/false option under broadcast-settings controls whether the [ServerName] prefix is shown on other servers when a broadcast is received.
  • Mentions now cover player prefix — When a player has a prefix (e.g. [Admin] Fabian), mentioning @Fabian or @[Admin] Fabian will both trigger the mention highlight and sound. The longer display name is matched first.

🐛 Bug Fixes

  • Fixed NullPointerException on cross-server /msgConcurrentHashMap.put(null) crash when sending a PM to a player on another server. Added null validation in setLastMessageTarget().
  • Fixed /r not working cross-server — Both the sender's and receiver's server now store the appropriate reply target name, so /r works correctly in both directions.
  • Fixed SocialSpy not working — Spy messages were never sent to local players in any cross-server PM path. Added the missing local spy broadcast to all three cross-server PM code paths. Also fixed duplicate spy messages by removing the incorrect publish from the receiver's server.
  • Fixed URL/link formatting broken cross-server — On Spigot servers, URLs in cross-server messages are now re-processed to display as underlined blue text. On Paper, the JSON component already preserves auto-links.
  • Fixed Hover/Click components not transmitted cross-server — Cross-server messages on Paper no longer have their JSON component discarded and rebuilt. The original serialized component (with hover events, click actions, and auto-links) is preserved.
  • Fixed ChatLog cross-server — /chatlog now loads player history from disk for cross-server players whose data isn't in memory, fixing empty results.
  • Fixed Join/Leave double server prefix — Removed the redundant [ServerName] prefix from cross-server join and quit messages.
1.3-Beta-04Бета26.1.1, 26.1.2, 26.2 · 8 июля 2026 г.

🚀 X-Chat v1.3-Beta-04 - Changelog

✨ New Features

  • Default connection guard — If cross-server.storage is set to mysql, redis or both but the connection settings are still at default values (localhost, empty password), the plugin will not attempt to connect and will fall back to yaml with a warning in console instead of throwing an error.

🐛 Bug Fixes

  • Fixed config auto-merge not triggering for existing configs — bumped config-code to 5.
1.3-Beta-03Бета26.1.1, 26.1.2, 26.2 · 8 июля 2026 г.

🚀 X-Chat v1.3-Beta-03 - Changelog

✨ New Features

  • Cross-server join/quit messages — Join and quit messages are now published via Redis pub/sub and displayed on all connected servers. Toggle with cross-server.join-quit.enabled in config.yml.
  • Cross-server player list sync — Player online/offline events are synced across servers via the xchat:playerlist Redis channel, enabling global tab-completion and player lookups.
  • Configurable server prefix — The [ServerName] prefix on cross-server messages can now be enabled/disabled and customized with colors using cross-server.server-prefix.format in config.yml.

🐛 Bug Fixes

  • Fixed cross-server message payload format — unified to serverName|senderUUID|senderName|message (4 parts) across all channels.
  • Fixed "both" storage mode overwriting MySQL with Redis — MySQL is now the primary storage, Redis is used for pub/sub messaging only.
  • Fixed incoming cross-server messages being ignored — a MessageHandler is now properly registered to process incoming chat, PM, spy, broadcast, join, and quit messages.
  • Fixed Social Spy state and reply target not being restored from Redis/MySQL when a player rejoins.
  • Replaced direct casts to RedisMessagingService with plugin.getMessagingService() interface calls.
1.3-Beta-02Бета26.1.1, 26.1.2, 26.2 · 7 июля 2026 г.

🚀 X-Chat v1.3-Beta-02 - Changelog

⚙️ Error fixes

  • Add missing component (commons-pool2)
1.3-Beta-01Бета26.1.1, 26.1.2, 26.2 · 7 июля 2026 г.

🚀 X-Chat v1.3 - Changelog

✨ New Features

  • Redis + MySQL cross-server support: Chat, private messages, social spy, and broadcasts now work across multiple servers. Choose between yaml (single-server), redis, mysql, or both (MySQL storage + Redis messaging) in config.yml. Messages from other servers show a [ServerName] prefix, ignore lists and spy states sync across servers, and player data is restored on join.
  • Debug system: New /xchat debug command to toggle debug mode at runtime, plus a DebugLogger that logs detailed internal operations for easier troubleshooting.
  • PlaceholderAPI expansion: Added %xchat_ignored_count%, %xchat_is_spying%, and %xchat_chat_history_size% placeholders.
  • Config auto-update with backup: When the config version changes, the old config is backed up as config_old.yml before generating the new one.
  • Adventure MiniMessage color support: Internal color system upgraded to use Adventure's MiniMessage for better formatting.
  • Shared dependency directory: Libby now downloads runtime libraries to plugins/X-API/ so all X plugins share dependencies instead of each having their own copy.
  • Updated startup messages with standardized logging format.
  • Tab-completion command hiding: Own namespaced commands (xchat:*, x-chat:*) are now hidden from player tab-completion.
  • Standardized plugin lifecycle (onEnable/onDisable) for improved stability and error handling.

🐛 Bug Fixes

  • Debug messages now include the plugin name in the format: [DEBUG] [X-Chat] [Category] message.
1.2Релиз26.1, 26.1.1, 26.1.2 · 7 июня 2026 г.

🚀 X-Chat v1.2 - Changelog

✨ New Features

  • Friendly Error Messages: Unknown commands no longer show ugly server errors. Players now see a clean message like "Command not found: /hola. Use /xchat help to see available commands." — fully customizable from config.yml under the new errors section, with support for MiniMessage colors and %prefix% placeholder.
  • New placeholder %prefix% for the plugin

Комментарии

Загружаем…