xChat
PluginMIT

xChat

An advanced chat plugin with formatting, ignore, and PMs/MSG

165
Downloads
2
Followers
4 months ago
Updated
📦
4
Versions

📖About xChat

banner

xChat - Your Ultimate Chat Solution

〢Use ProtocolLib

xChat - Advanced and Professional Chat Formatting
Tired of basic and outdated chat plugins? xChat is here to completely transform communication on your server. This plugin doesn't just format the chat; it turns it into an interactive, modern, and fully customizable experience.

From rank-based formats and interactive text when hovering over to a complete private messaging system with quick replies and socialspy, xChat is designed to be the only chat tool you'll ever need.

⭐ Main Features ⭐
✅ Professional Chat Formatting

Hex/RGB Colors: Use the full Minecraft color palette! (&#RRGGBB).

Full PlaceholderAPI Support: Show any player statistics directly in the chat.

Rank-based Formats (via Vault): Perfect integration with LuckPerms and other permission plugins to show prefixes and group formats.

Interactive Hover Text: Show detailed player stats (money, hours played, etc.) just by hovering over their name.

Click to Whisper: Click on a player's name in the chat to instantly start a private message.

✅ Advanced Private Messaging System

Customizable Formats: Set how the sent and received messages look.

Quick Reply Command (/r): Reply to the last private message with a single command. Essential for your users!

Notification Sounds: A small sound when receiving a message to ensure it doesn't get missed.

✅ Staff and Server Tools

Social Spy (/socialspy): Allows staff members with permissions to monitor private messages to keep the community safe.

Ignore System (/ignore): Allows users to persistently ignore other players.

Anti-Spam: Prevents chat flooding with a configurable cooldown between messages.

Update Notifier: Alerts in the console when a new version of xChat is available on Modrinth.

✅ Optimization and Compatibility

Lightweight and Optimized: Built on the Paper API and using packets with ProtocolLib for maximum performance.

100% Customizable: Absolutely all messages, formats, and functions can be adjusted from the generated config.yml.

Anonymous Statistics with bStats: To help us understand how the plugin is used and improve it.

🖼️ Plugin Previews

chatnormal
msg
hover

🔧 Commands and Permissions

Comando	Alias	Permiso	Descripción
/xchat reload	/xc reload	xchat.reload	Recarga la configuración del plugin.
/xchat help	/xc help	(Ninguno)	Muestra la ayuda principal.
/msg <jugador>	/tell, /w	(Ninguno)	Envía un mensaje privado.
/reply <msg>	/r <msg>	(Ninguno)	Responde al último mensaje privado.
/ignore	/ign	(Ninguno)	Gestiona tu lista de ignorados.
/socialspy	/spy	xchat.socialspy	Activa/desactiva el espía de PMs.
(Bypass Spam)	-	xchat.antispam.bypass	Permite saltarse el cooldown del chat.

Export to Spreadsheets
🔌 Required Dependencies
To make xChat work with its full potential, you need to install these three plugins:

Vault: For permission and economy plugin integration.

PlaceholderAPI: To use the thousands of available placeholders.

ProtocolLib: For advanced feature functionality.

🐠Config.YML

#           ___ _           _  
#   __  __ / __\ |__   __ _| |_  
#   \ \/ // /  | '_ \ / _` | __|    Plugin by  
#    >  </ /___| | | | (_| | |_   xPlugins inc  
#   /_/\_\____/|_| |_|\__,_|\__|  
#
# 🐠 Wiki: http://xchat.willfry.net/  
# 💥 Discord: https://discord.gg/9khbRDhPCS

# This is the default chat format if a player doesn't have a specific group format.
# Works with PlaceholderAPI: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Placeholders

chat-format: "%vault_rank% %player_name%&7 ▸ &f%message%"

# Format by LuckPerms groups (via Vault).
# The group name (e.g., 'vip') must be the same as in your permissions plugin.
groups:
  vip: "&b&lVIP &b%player_name% &7▸ &f%message%"

# Format with HOVER when hovering over the name.
# This format takes priority over 'groups' and 'chat-format' formats.
hover-format:
  default:
    description: "&7▸ &#77C3FFPlayer stats &n%player_name%&r"
    lines:
      - "&8▸ Personal information ◂"
      - ""
      - "&fPlayer name: &#34D399%player_name% ✔"
      - "&fJoined: &#34D399%player_first_join_date%"
      - ""
      - "&8 • &fTotal coins: &#34D399%vault_eco_balance_formatted%"
      - "&8 • &fHours played: &#34D399%statistic_hours_played%"
      - "&8 • &fCurrent guild: &#FCA5A5None"
      - "&8 • &fCurrent partner: &#FCA5A5None"
      - ""
      - "&#77C3FF!&nClick&#77C3FF to send message!"
    click: "/msg %player_name% "
    format: "&#C084FC%changeoutput_equals_input:default_matcher:{vault_rank}_ifmatch:&#FF0000Get it!_else:{vault_prefix}% &#E5E7EB%player_name%"

# PRIVATE MESSAGES (/msg, /r, /socialspy)
#
#   /\/\  ___  __ _  
#  /    \/ __|/ _` |  Idea by  
# / /\/\ \__ \ (_| |  xPlugins  
# \/    \/___/\__, |  
#             |___/  
pm:
  # Format that both players see. Placeholders adapt to the sender and receiver.
  # %player_name% will be the sender, %essentials_nickname% will be the receiver (or vice versa).
  format:
    sender:   "&#FCD05C✉ Messages! &8▸ &fFrom &#FCD05C%sender_name% &fa &#FCD05C%receiver_name%&7 ▸ &f%message%"
    receiver: "&#FCD05C✉ Messages! &8▸ &fFrom &#FCD05C%sender_name% &fa &#FCD05C%receiver_name%&7 ▸ &f%message%"

  # Sound the receiver hears when receiving a message.
  # List of sounds: https://jd.papermc.io/paper/1.20/org/bukkit/Sound.html
  sound: "ENTITY_EXPERIENCE_ORB_PICKUP"

  # System for staff to view private messages.
  social-spy:
    enabled: true
    format: "&8[&cSPY&8] &#FCD05C%sender_name% &8▸ &#FCD05C%receiver_name% &8▸ &f"

  # Configurable messages for the MSG / Pm system.
  messages:
    usage: "&cUse it like this: /{label} <player> <message>"
    reply_usage: "&cUse it like this: /{label} <message>"
    player-not-found: "&cThat player is not online."
    cannot-message-self: "&cYou cannot message yourself."
    no-reply-target: "&cYou have no one to reply to."
    social-spy-on: "&aSocialSpy enabled. You will now see private messages."
    social-spy-off: "&cSocialSpy disabled."

# HELP MESSAGES (/xchat help, /ignore help)
#   /\/\  ___  __ _  
#  /    \/ __|/ _` |   Idea by  
# / /\/\ \__ \ (_| |  xPlugins  
# \/    \/___/\__, |  
#             |___/  
help-message:
  xchat:
    - "&7-------&f xChat Help &7------"
    - ""
    - "&#AEC6CF> /xchat help &#878787➛&f Displays this help message."
    - "&#AEC6CF> /xchat reload &#878787➛&f Reloads plugin configuration."
    - ""
    - "&7---------------------------------------"
  ignore:
    - "&7-----------------&f Ignore Help &7--------------------"
    - ""
    - "&#AEC6CF /ignore help &#878787➛&f Displays this help."
    - "&#AEC6CF /ignore list &#878787➛&f See who you are ignoring."
    - "&#AEC6CF /ignore add <player> &#878787➛&f Start ignoring them."
    - "&#AEC6CF /ignore remove <player> &#878787➛&f Stop ignoring them."
    - ""
    - "&7---------------------------------------"

# IGNORE SYSTEM (/ignore)
#   _____  
#   \_   \__ _ _ __   ___  _ __ ___  
#    / /\/ _` | '_ \ / _ \| '__/ _ \  Idea by  
# /\/ /_| (_| | | | | (_) | | |  __/ xPlugins  
# \____/ \__, |_| |_|\___/|_|  \___|  
#        |___/  
ignore:
  enabled: true
  storage: "ignores.yml"
  messages:
    added: "&aYou are now ignoring &f%target%."
    removed: "&eYou are no longer ignoring &f%target%."
    not_found: "&cPlayer not found."
    usage: "&eUsage: /ignore <help|list|add|remove|toggle> [player]"
    cannot_ignore_self: "&cYou cannot ignore yourself."
    list_empty: "&7You are not ignoring anyone."
    list_header: "&6Ignoring:"
    list_format: "&7- &f%target%"

# Anti Spam
#    _         _   _       __  
#   /_\  _ __ | |_(_)     / _\_ __   __ _ _ __ ___  
#  //_\\| '_ \| __| |_____\ \| '_ \ / _` | '_ ` _ \   Idea by  
# /  _  \ | | | |_| |_____|\ \ |_) | (_| | | | | | |  xPlugins  
# \_/ \_/_| |_|\__|_|     \__/ .__/ \__,_|_| |_| |_|  
#                            |_|           1.0.0  
anti-spam:
  enabled: true
  delay-seconds: 3
  message: "&#ff0000 ⚠ Slow down! You must wait %time% second(s) before chatting again."

# GENERAL PLUGIN MESSAGES
#   /\/\  ___  __ _  
#  /    \/ __|/ _` |   Idea by  
# / /\/\ \__ \ (_| |  xPlugins  
# \/    \/___/\__, |  
#             |___/  
plugin-messages:
  reload: "&#75e25f ✔ Hey! xChat configuration has been reloaded!"
  no-permission: "&#ff2c2c ☀ Oops! You don't have permission to run this command!"  

# UPDATE NOTIFIER
#                  _       _       
#  /\ /\ _ __   __| | __ _| |_ ___  
# / / \ \ '_ \ / _` |/ _` | __/ _ \  
# \ \_/ / |_) | (_| | (_| | ||  __/  
#  \___/| .__/ \__,_|\__,_|\__\___|  
#       |_|        1.0.0             
update-checker:
  enabled: true

⚙️ Installation

Download the xChat .jar file.

Make sure you have the 3 dependencies above installed.

Place all the .jar files in your server's plugins folder.

Start or restart the server.

Configure everything to your liking in the generated config.yml file!

❤️ Support and Credits
Created with love by WillfryDev (xPlugins inc.).

Need help, have a suggestion, or found a bug?