Skip to content

API Usage

SlamTheHam edited this page Jan 26, 2026 · 1 revision

SimpleColor provides a comprehensive API for other plugins to parse colored text.

Available Classes

Aliases

All aliases provide the same functionality:

import org.slamstudios.simplecolor.enums.ChatColor;
import org.slamstudios.simplecolor.aliases.CC;
import org.slamstudios.simplecolor.aliases.Color;

Core Classes

import org.slamstudios.simplecolor.SimpleColor;
import org.slamstudios.simplecolor.ColorParser;
import org.slamstudios.simplecolor.GradientUtil;

Color Constants

All color constants return §x format when converted to string:

ChatColor.BLACK         // §0
ChatColor.DARK_BLUE     // §1
ChatColor.DARK_GREEN    // §2
ChatColor.DARK_AQUA     // §3
ChatColor.DARK_RED      // §4
ChatColor.DARK_PURPLE   // §5
ChatColor.GOLD          // §6
ChatColor.GRAY          // §7
ChatColor.DARK_GRAY     // §8
ChatColor.BLUE          // §9
ChatColor.GREEN         // §a
ChatColor.AQUA          // §b
ChatColor.RED           // §c
ChatColor.LIGHT_PURPLE  // §d
ChatColor.YELLOW        // §e
ChatColor.WHITE         // §f

Use with Message.raw():

player.sendMessage(Message.raw(CC.GREEN + "Success!"));
player.sendMessage(Message.raw(CC.RED + "Error!"));

// Multiple colors
player.sendMessage(Message.raw(
    CC.GOLD + "Server: " + CC.WHITE + "Welcome!"
));

Translating Color Codes

The translate() method parses color code strings and returns a Message:

// Legacy codes
player.sendMessage(CC.translate("&aGreen &cRed &eYellow"));

// Hex colors
player.sendMessage(CC.translate("&#FF5733Orange &#00FFFFCyan"));

// Gradients
player.sendMessage(CC.translate("&#FF0000:0000FFRed to blue"));

// Rainbow
player.sendMessage(CC.translate("&*Rainbow text!"));

// Links
player.sendMessage(CC.translate("&(https://example.com)[Click!]"));

// Combined
player.sendMessage(CC.translate(
    "&aSuccess! &7Visit &(https://example.com)[our site]"
));

Building Color Code Strings

Helper methods return code strings that need translation:

Hex Colors

// Returns "&#FF5733"
String code = ChatColor.hex("#FF5733");
String code2 = CC.hex("00FFFF");  // # is optional

player.sendMessage(ChatColor.translate(
    ChatColor.hex("#FF5733") + "Orange"
));

Gradients

// Returns "&#FF5555:5555FF"
String code = ChatColor.gradient("red", "blue");
String code2 = CC.gradient("#FF5733", "#FFC300", "#3498DB");

player.sendMessage(ChatColor.translate(
    ChatColor.gradient("red", "blue") + "Gradient text"
));

Rainbow

// Returns "&*"
String code = ChatColor.RAINBOW;
String code2 = CC.RAINBOW;

player.sendMessage(ChatColor.translate(
    ChatColor.RAINBOW + "Rainbow text"
));

Links

// Returns "&(url)[text]"
String code = ChatColor.link("https://example.com", "Click!");

player.sendMessage(ChatColor.translate(
    ChatColor.link("https://example.com", "Click Here")
));

Permission-Based Parsing

Use SimpleColor.parse() with a player for permission checks:

import org.slamstudios.simplecolor.SimpleColor;

// Strips codes player doesn't have permission for
Message msg = SimpleColor.parse("&c&lBold Red", player);
player.sendMessage(msg);

Use ColorParser.parse() without permission checks:

import org.slamstudios.simplecolor.ColorParser;

// No permission checks
Message msg = ColorParser.parse("&c&lBold Red");

Stripping Colors

Remove color codes from strings:

// Strip legacy codes (§x format)
String plain = ChatColor.stripColor(CC.GREEN + "Hello");
// Returns "Hello"

// Strip all codes (hex, gradients, rainbow, links)
String stripped = ChatColor.stripAll("&#FF5733Custom &*rainbow &(url)[link]");
// Returns "Custom rainbow link"

// Also via aliases
String stripped2 = CC.stripAll("&aColored text");

ChatColor Enum Methods

// Get by code character
ChatColor red = ChatColor.getByCode('c');

// Get by name
ChatColor blue = ChatColor.getByName("blue");

// Get java.awt.Color
java.awt.Color awtColor = ChatColor.RED.getColor();

// Parse hex to java.awt.Color
java.awt.Color custom = ChatColor.parseHex("FF5500");

// Convert Color to hex string
String hex = ChatColor.toHex(awtColor);  // "ff5555"

// Apply color to text
String colored = ChatColor.RED.apply("Error");  // "§cError"

// Create Message directly
Message msg = ChatColor.GREEN.message("Success!");

GradientUtil

Generate color gradients programmatically:

import org.slamstudios.simplecolor.GradientUtil;
import java.awt.Color;
import java.util.List;

// Two-color gradient
List<Color> gradient = GradientUtil.generateGradient(
    Color.RED,
    Color.BLUE,
    10  // steps
);

// Multi-color gradient
List<Color> colors = List.of(Color.RED, Color.YELLOW, Color.GREEN);
List<Color> multi = GradientUtil.generateMultiGradient(colors, 20);

// Interpolate between colors
Color mid = GradientUtil.interpolate(Color.RED, Color.BLUE, 0.5f);

Complete Example

import org.slamstudios.simplecolor.enums.ChatColor;
import org.slamstudios.simplecolor.aliases.CC;
import org.slamstudios.simplecolor.SimpleColor;
import com.hypixel.hytale.server.core.Message;

public class MyPlugin {

    public void sendWelcome(Player player) {
        // Simple colored message
        player.sendMessage(Message.raw(CC.GOLD + "Welcome!"));

        // Gradient title
        player.sendMessage(ChatColor.translate(
            ChatColor.gradient("gold", "yellow") + "=== My Server ==="
        ));

        // Info with link
        player.sendMessage(ChatColor.translate(
            "&7Visit our website: " +
            ChatColor.link("https://example.com", "&b&lClick Here")
        ));

        // Permission-checked message
        Message userMsg = SimpleColor.parse(userInput, player);
        player.sendMessage(userMsg);
    }
}

Clone this wiki locally