Skip to content

BusyBee-Development/ChatColor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

132 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌈 ChatColor

ChatColor is an advanced Minecraft chat color plugin built for Paper 1.21+ that lets players personalize their chat messages with solid colors, multi-stop gradients, and character-cycling patterns — all through a sleek GUI or simple commands.


✨ Features

  • 🎨 24+ Solid Colors — From standard Minecraft colors to custom hex values like Hot Pink, Coral, Mint, and Lavender.
  • 🌅 12 Gradient Presets — Multi-stop gradients including Sunset, Ocean, Cosmic, Rose Gold, Lava, and more.
  • 🔥 6 Pattern Presets — Character-cycling color patterns like Rainbow, Fire, Ice, Galaxy, Toxic, and Cherry.
  • 🛠️ Custom Color Creation — Create your own custom colors with simple commands.
  • 🖥️ Interactive GUI — Full inventory-based color selector with a main menu and category pages.
  • ⌨️ Command Support — Set, reset, and manage colors entirely from the command line.
  • 🔒 Per-Entry Permissions — Grant or restrict individual colors, gradients, and patterns per player/group.
  • 💾 Persistent Data — Player color selections are saved to disk and restored on rejoin.
  • 🔌 PlaceholderAPI Support — Expose player color data as placeholders for use in other plugins.
  • 🛠️ Developer API — Clean ChatColorAPI class for third-party plugin integration.
  • Hot Reload — Reload all configuration files at runtime without restarting.

📦 Installation

  1. Download the ChatColor.jar file.
  2. Place it in your server's plugins/ folder.
  3. Restart your server.
  4. Configure config.yml, colors.yml, messages.yml, and patterns.yml to your liking.
  5. (Optional) Install PlaceholderAPI for placeholder support.

Requirements:

  • Paper (or Spigot) 1.21+
  • Java 21+
  • PlaceholderAPI (optional)

🕹️ Commands

Command Description Permission
/color Opens the main color selector GUI chatcolor.use
/color gui Opens the main color selector GUI chatcolor.use
/color reset Removes your active chat color chatcolor.use
/color set <type> <key> Sets a color, gradient, or pattern by key chatcolor.use
/color create <name> <tag> <icon> [permission] Create a new custom color chatcolor.create
/color reload Reloads all plugin configuration chatcolor.reload

Aliases: /chatcolor, /cc


🔑 Permissions

Permission Description Default
chatcolor.use Access to the GUI and basic commands true
chatcolor.reload Reload the plugin config op
chatcolor.create Create custom colors op
chatcolor.gui.solid Access to Solid Colors section false
chatcolor.gui.gradient Access to Gradients section false
chatcolor.gui.pattern Access to Patterns section false
chatcolor.color.* Access to all solid colors op
chatcolor.gradient.* Access to all gradients op
chatcolor.pattern.* Access to all patterns op

Individual entries have their own permission nodes, for example:

  • chatcolor.color.red
  • chatcolor.gradient.sunset
  • chatcolor.pattern.rainbow

⚙️ Configuration

config.yml

Controls GUI titles and general plugin settings.

settings:
  apply-to-message: true   # Apply color to chat messages
  apply-to-name: false     # Apply color to display name
  default-color: "NONE"    # Default color for new players
  event-priority: "LOWEST" # Priority for the chat listener

colors.yml

Defines all solid colors and gradients.

colors:
  red:
    display-name: "Red"
    tag: "<red>"
    permission: "chatcolor.color.red"
    icon: "RED_WOOL"

gradients:
  sunset:
    display-name: "Sunset"
    tag: "<gradient:#FF4500:#FF8C00:#FFD700>"
    permission: "chatcolor.gradient.sunset"
    icon: "ORANGE_WOOL"

patterns.yml

Defines character-cycling color patterns.

patterns:
  rainbow:
    display-name: "Rainbow"
    permission: "chatcolor.pattern.rainbow"
    icon: "YELLOW_WOOL"
    colors:
      - "<red>"
      - "<gold>"
      - "<yellow>"
      - "<green>"
      - "<aqua>"
      - "<blue>"
      - "<light_purple>"

🔌 PlaceholderAPI

When PlaceholderAPI is installed, the following placeholders are available:

Placeholder Description Example Output
%chatcolor_color_type% Player's active color type SOLID, GRADIENT, PATTERN, NONE
%chatcolor_color_key% Key of player's active selection red, sunset, rainbow, none
%chatcolor_color% Raw MiniMessage tag / Pattern key <red>, rainbow
%chatcolor_message% Player's last chat message colored §cHello world!
%chatcolor_message_mm% Last message (MiniMessage) <red>Hello world!
%chatcolor_formatted_msg_<text>% Applies color to text (Legacy) §6§lBusyBee
%chatcolor_formatted_msg_mm_<text>% Applies color to text (MiniMessage) <gradient:red:blue>BusyBee

🛠️ Developer API

Add ChatColor as a dependency and use the ChatColorAPI to interact with player color data programmatically.

ChatColor plugin = (ChatColor) Bukkit.getPluginManager().getPlugin("ChatColor");
ChatColorAPI api = plugin.getChatColorAPI();

// Set a player's color
api.setColor(player, "red");
api.setGradient(player, "sunset");
api.setPattern(player, "rainbow");

// Reset a player's color
api.resetColor(player);

// Get player data
PlayerColorData data = api.getPlayerData(player.getUniqueId());
String type = data.getColorType(); // "SOLID", "GRADIENT", "PATTERN"
String key  = data.getColorKey();

// Apply the player's color to a string and get a Component
Component colored = api.applyColorToText(player, "Hello, world!");

About

Plugin for Spigot that allows you to create patterns and colors for the chat

Resources

License

Stars

Watchers

Forks

Contributors

Languages