A customizable Minecraft Spigot plugin for managing player join and quit messages with support for random messages, permission-based messages, PlaceholderAPI integration, and hex color codes.
- Static Messages - Set custom join and quit messages
- Random Messages - Display random messages from predefined lists
- Permission-Based Messages - Show different messages based on player permissions
- PlaceholderAPI Support - Use placeholders in your messages
- Hex Color Support - Modern color codes for Minecraft 1.16+
- Backwards Compatible - Existing configurations work seamlessly
- Download the latest release JAR file
- Place it in your server's
pluginsfolder - Restart your server
- Configure the plugin in
plugins/JoinAndQuitMessages/config.yml
joinmessage: "&7[&2+&7]&4%player%"
quitmessage: "&7[&4-&7]&4%player%"random:
enabled: true
messages:
join:
- "&7[&2+&7]&4%player%"
- "&4%player% &7has joined the server"
- "&6Welcome &4%player% &6to the server!"
leave:
- "&7[&4-&7]&4%player%"
- "&4%player% &7has left the server"
- "&6Goodbye &4%player%&6!"permission_messages:
enabled: true
join:
joinandquitmessages.owner: "&7[&4OWNER+&7]&4%player%"
joinandquitmessages.admin: "&7[&cADMIN+&7]&c%player%"
joinandquitmessages.mod: "&7[&9MOD+&7]&9%player%"
joinandquitmessages.vip: "&7[&6VIP+&7]&6%player%"
joinandquitmessages.premium: "&7[&5PREMIUM+&7]&5%player%"
leave:
joinandquitmessages.owner: "&7[&4OWNER-&7]&4%player%"
joinandquitmessages.admin: "&7[&cADMIN-&7]&c%player%"
joinandquitmessages.mod: "&7[&9MOD-&7]&9%player%"
joinandquitmessages.vip: "&7[&6VIP-&7]&6%player%"
joinandquitmessages.premium: "&7[&5PREMIUM-&7]&5%player%"joinmessage: "&7[<#00FF00>+&7]<#FF6B6B>%player%"
quitmessage: "&7[<#FF0000>-&7]<#FF6B6B>%player%"joinmessage: "&7[&2+&7] &6%player% &7from &b%player_world% &7joined! (&a%server_online%&7/&a%server_max_players%&7)"
quitmessage: "&7[&4-&7] &6%player% &7left the server after &e%player_session_time%"# Basic messages (fallback when random and permission messages are disabled)
joinmessage: "&7[&2+&7]&4%player%"
quitmessage: "&7[&4-&7]&4%player%"
# Plugin settings
version: "1.1"
update_check: true
# Random messages
random:
enabled: false
messages:
join:
- "&7[&2+&7]&4%player%"
- "&4%player% &7has joined the server"
- "&6Welcome back &4%player%&6!"
leave:
- "&7[&4-&7]&4%player%"
- "&4%player% &7has left the server"
- "&6See you later &4%player%&6!"
# Permission-based messages
permission_messages:
enabled: true
join:
joinandquitmessages.owner: "&7[&4&lOWNER&r&7] <#FF6B6B>%player% &7joined the server"
joinandquitmessages.admin: "&7[&c&lADMIN&r&7] <#FFA500>%player% &7joined the server"
joinandquitmessages.vip: "&7[&6&lVIP&r&7] <#FFD700>%player% &7joined the server"
leave:
joinandquitmessages.owner: "&7[&4&lOWNER&r&7] <#FF6B6B>%player% &7left the server"
joinandquitmessages.admin: "&7[&c&lADMIN&r&7] <#FFA500>%player% &7left the server"
joinandquitmessages.vip: "&7[&6&lVIP&r&7] <#FFD700>%player% &7left the server"Base command for the plugin.
Usage: /joinandquitmessages <test [message]|reload>
Tests your current join message with all formatting applied, or tests a custom message if provided.
Usage:
/jqm test- Test your configured join message/jqm test &7[&6VIP&7] &6%player% &7joined!- Test a custom message
Example Output:
/jqm test
Testing configured join message:
Result: [VIP+]PlayerName
/jqm test &7[<#FF6B6B>CUSTOM</#FF6B6B>&7] &6%player% &7joined the server!
Testing custom message:
Result: [CUSTOM]PlayerName joined the server!
Reloads the plugin configuration from disk.
Example:
/jqm reload
Configuration reloaded successfully!
| Permission | Description | Default |
|---|---|---|
joinandquitmessages.use |
Allows using the main command | true |
joinandquitmessages.test |
Allows testing join messages | true |
joinandquitmessages.reload |
Allows reloading configuration | op |
You can create any permission for your messages. Common examples:
joinandquitmessages.owner- Server owner messagesjoinandquitmessages.admin- Administrator messagesjoinandquitmessages.mod- Moderator messagesjoinandquitmessages.vip- VIP player messagesjoinandquitmessages.premium- Premium player messages
The plugin uses the following priority order:
- Permission-based messages (if enabled and player has permission)
- Random messages (if enabled)
- Default static message
Use & followed by a color code:
&0- Black&1- Dark Blue&2- Dark Green&3- Dark Aqua&4- Dark Red&5- Dark Purple&6- Gold&7- Gray&8- Dark Gray&9- Blue&a- Green&b- Aqua&c- Red&d- Light Purple&e- Yellow&f- White
&l- Bold&m- Strikethrough&n- Underline&o- Italic&r- Reset
Use <#RRGGBB> format:
<#FF6B6B>- Light Red<#4ECDC4>- Teal<#45B7D1>- Light Blue<#96CEB4>- Light Green<#FFEAA7>- Light Yellow<#DDA0DD>- Plum
Common placeholders you can use (requires PlaceholderAPI):
%player_name%- Player's name%player_displayname%- Player's display name%player_world%- Current world name%player_x%- X coordinate%player_y%- Y coordinate%player_z%- Z coordinate%player_health%- Current health%player_level%- Experience level
%server_online%- Online player count%server_max_players%- Maximum players%server_unique_joins%- Total unique joins%server_name%- Server name
%player_first_join_date%- First join date%player_session_time%- Current session time%server_time_24%- Server time (24h format)
joinmessage: "&7[&a+&7] &6%player% &7joined the game"
quitmessage: "&7[&c-&7] &6%player% &7left the game"permission_messages:
enabled: true
join:
myserver.diamond: "&7[&bDIAMOND&7] &b%player% &7sparkled into the server!"
myserver.gold: "&7[&6GOLD&7] &6%player% &7joined with style!"
myserver.iron: "&7[&7IRON&7] &7%player% &7joined the server"random:
enabled: true
messages:
join:
- "&7[&2+&7] &6%player% &7joined! &cHappy Holidays!"
- "&7[&2+&7] &6%player% &7entered the winter wonderland!"
- "&7[&2+&7] &a๐ &6%player% &7joined the festivities!"- GitHub Issues: Report bugs and request features
- Discord: Join our community server
- Wiki: Detailed documentation and tutorials
- Spigot/Paper: 1.8+
- PlaceholderAPI: Optional (for placeholder support)
- Java: 8+