![Readme Banner](assets/img/chatformatter.png) [![Available on SpigotMC](https://raw.githubusercontent.com/vLuckyyy/badges/main/available-on-spigotmc.svg)](https://raw.githubusercontent.com/intergrav/devins-badges/1aec26abb75544baec37249f42008b2fcc0e731f/assets/cozy/supported/paper_vector.svg) [![Available on Modrinth](https://github.com/vLuckyyy/badges/raw/main/avaiable-on-modrinth.svg)](https://modrinth.com/plugin/chatformatter) [![Available on Hangar](https://raw.githubusercontent.com/vLuckyyy/badges/main/avaiable-on-hangar.svg)](https://hangar.papermc.io/EternalCodeTeam/EternalChatFormatter) [![Discord](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/cozy/social/discord-plural_vector.svg)](https://discord.gg/FQ7jmGBd6c) [![Docs](https://raw.githubusercontent.com/vLuckyyy/badges/main/read-the-documentation.svg)](https://docs.eternalcode.pl/eternalcore/introduction) [![bStats](https://raw.githubusercontent.com/vLuckyyy/badges/main/available-on-bstats.svg)](https://bstats.org/plugin/bukkit/ChatForrmatter/15199)
> ⚠ **This plugin requires PlaceholderAPI and Vault to run!** ## 🌌 Preview: ![1](assets/gif/ChatFormatterHoverPlayerInfo.gif) ![2](assets/gif/ChatFormatterClickableMessage2.gif) ## ✨ Features: - PlaceholderAPI Support - [MiniMessages Support](https://docs.adventure.kyori.net/minimessage/format.html) with Legacy Colors Support! - Template System - Custom Placeholders System - Per-permission miniMessages Tags (see permissions below) ## 🔗 Useful links: - [Web UI](https://webui.adventure.kyori.net) - [MiniMessages Format](https://docs.adventure.kyori.net/minimessage/format.html) ## 🔑 Permissions: > **Note:** Each color and decoration permission (e.g., `chatformatter.color.white`, `chatformatter.reset`, `chatformatter.decorations.bold`) grants access to both the legacy code (e.g., `&f`, `&r`, `&l`) and the MiniMessage tag (e.g., ``, ``, ``). | **Permission** | **Access** | |:------------------------------------------|:------------------------------------------------------------------------------------------------------| | `chatformatter.decorations.*` | ``, ``, ``, ``, ``, `&l`, `&o`, `&n`, `&m`, `&k` | | `chatformatter.decorations.bold` | ``, ``, `&l` | | `chatformatter.decorations.italic` | ``, ``, ``, `&o` | | `chatformatter.decorations.underlined` | ``, `&n` | | `chatformatter.decorations.strikethrough` | ``, ``, `&m` | | `chatformatter.decorations.obfuscated` | ``, ``, `&k` | | `chatformatter.reset` | ``, `&r` | | `chatformatter.newline` | ``, `
` | | `chatformatter.shadow` | ``, | | `chatformatter.gradient` | `` | | `chatformatter.rainbow` | `` | | `chatformatter.pride` | `` | | `chatformatter.transition` | `` | | `chatformatter.hover` | `` | | `chatformatter.click` | `` | | `chatformatter.insertion` | `` | | `chatformatter.color.*` | All color codes: ``, ``, `<#a568a9>`, `&c`, `&#a568a9`, etc. | | `chatformatter.color.black` | ``, `&0` | | `chatformatter.color.dark_blue` | ``, `&1` | | `chatformatter.color.dark_green` | ``, `&2` | | `chatformatter.color.dark_aqua` | ``, `&3` | | `chatformatter.color.dark_red` | ``, `&4` | | `chatformatter.color.dark_purple` | ``, `&5` | | `chatformatter.color.gold` | ``, `&6` | | `chatformatter.color.gray` | ``, `&7` | | `chatformatter.color.dark_gray` | ``, `&8` | | `chatformatter.color.blue` | ``, `&9` | | `chatformatter.color.green` | ``, `&a` | | `chatformatter.color.aqua` | ``, `&b` | | `chatformatter.color.red` | ``, `&c` | | `chatformatter.color.light_purple` | ``, `&d` | | `chatformatter.color.yellow` | ``, `&e` | | `chatformatter.color.white` | ``, `&f` | | `chatformatter.score` | `` | | `chatformatter.selector` | `` | | `chatformatter.font` | `` | | `chatformatter.translatable` | `` | | `chatformatter.keybind` | `` | | `chatformatter.nbt` | `` | | `chatformatter.reload` | `/chatformatter reload` | | `chatformatter.receiveupdates` | receive update announcements for this plugin | ### config.yml ```yaml # ____ _ _ _____ ChatFormatter _ _ # / ___| |__ __ _| |_| ___|__ _ __ _ __ ___ __ _| |_| |_ ___ _ __ # | | | '_ \ / _` | __| |_ / _ \| '__| '_ ` _ \ / _` | __| __/ _ \ '__| # | |___| | | | (_| | |_| _| (_) | | | | | | | | (_| | |_| || __/ | # \____|_| |_|\__,_|\__|_| \___/|_| |_| |_| |_|\__,_|\__|\__\___|_| # Do you want to receive updates about new versions of ChatFormatter? receiveUpdates: true # Chat format for ranks (Vault) Support mini-messages and legacy colors # We're recommending to use webui for mini-messages: https://webui.adventure.kyori.net/ # documentation is here: https://docs.adventure.kyori.net/minimessage/format.html # You can check LuckPerms setup and placeholders here: https://luckperms.net/wiki/Placeholders # # Example usages: # # Hover message: # One line: test'>TEST # Multiple lines: test'>TestTest2 # # Click message: # Open URL: TEST # Run command: Click to say hello # Suggest command: # # RGB and gradient message usage: # Example message # Example message # # You can use three more internal placeholders: # defaultFormat: "{displayname} » {message}" # Here you can set different formats for each rank. # Remember! Rank name must be exactly the same as in you permission plugin configuration. # If player have more than one rank remember to correctly setup rank weight configuration format: default: "{member} &7$hoverName({displayname}) &8» {message} " vip: "{vip} &f$hoverName({displayname}) » {message}" mod: "{mod} &f$hoverName({displayname}) » {message}" admin: "{admin} &f$hoverName({displayname}) » {message}" owner: "{owner} &f$hoverName({displayname}) » {message}" # Placeholders, it allows you to make a shorter text, you can use some prefixes, characters etc. # You can use here PAPI placeholders. placeholders: {displayname}: "" {name}: "" {message}: "" {member}: "<#6e6764>Member" {vip}: "VIP" {mod}: "<#00c900>Mod" {admin}: "<#6e86ff>Admin" {owner}: "Owner" {rankDescription}: "Rank: %vault_group%" {joinDate}: "Joined: %player_first_join_date%" {health}: "Health: %player_health%" {lvl}: "LVL: %player_level%" {privateMessage}: "Click to send private message" # This section is made for experienced users # It is used to shorten the text even more and keep the clean file! templates: - "$hoverName($name) -> 'Name: $name

{rankDescription}
{joinDate}
{health}
{lvl}

{privateMessage}'>{displayname}'" ```