Custom Join / Quit Message
Custom join/quit messages with multiple pools
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
Custom Join / Quit Message
🚪 Custom Join / Quit Message
Custom join/quit messages with multiple pools, and permissions
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✨ Features - Random join/quit messages from configurable pools - Permission-based pools (default, vip, admin, etc.) - Separate first-join messages with automatic fallback - MiniMessage formatting (HEX, gradients, bold/italic/tags) - Optional PlaceholderAPI support (works without it) - Disable messages in specific worlds - Default Minecraft join/quit messages are suppressed



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Compatibility - Minecraft 1.18.2 – 1.21.x - Paper, Spigot, Purpur - Java 17+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📦 Installation 1) Drop the jar into plugins/ 2) Start the server to generate config.yml 3) Edit pools and messages 4) /cj reload
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🧩 Commands - /cj reload
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔐 Permissions - customjoinquit.reload - customjoinquit.pool.vip - customjoinquit.pool.admin
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🧪 Usage Examples - Give VIPs a special pool (LuckPerms): /lp group vip permission set customjoinquit.pool.vip true - Disable messages in the Nether: disabled-worlds: [world_nether] - Add a bold gradient first-join message: "<gradient:#00ff87:#60efff><bold>{player}</bold> joined for the first time!</bold></gradient>"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🧩 Placeholders Built-in: - {player} = player name - {displayname} = display name - {uuid} = player UUID - {world} = current world - {server} = server name - {online} = online player count - {max} = max players PlaceholderAPI: - Any %placeholder% from PlaceholderAPI works automatically if installed.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎨 MiniMessage Examples - "<gradient:#ff7eb3:#65d6ff>Gradient Title</gradient>" - "<#ff8800><bold>HEX + Bold</bold></#ff8800>" - "<italic><green>Stylish join!</green></italic>" - "<rainbow>Rainbow welcome</rainbow>"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ️ Notes - Pools are selected by priority (highest first). - First pool whose permission matches is used; empty permission acts as fallback. - If first-join list is empty, a normal join message is used.