Voxel Shop beta is live. Expect occasional bugs. Learn more  
NewJoinMessage icon

NewJoinMessage 6.0.0

Custom Join/Leave Messages for Each Player with Fully Customizable Configuration

Page 1
New Update!!

NewJoinMessage 6.0.0 - Major Feature Release

Released: September 2026
Previous Version: 5.1.1
Minecraft: 1.8 - 26.2
Java: 8+

---

🎉 HEADLINE: 11 New Plugin Integrations Added!

Version 6.0 is the biggest feature update yet. We've added native support for 11 popular plugins - all as soft dependencies that automatically activate when installed, with zero configuration required.


Plugin
New Placeholders / Features

PlaceholderAPIALL PAPI placeholders (%player_health%, %server_tps%, %vault_eco_balance%, %luckperms_prefix%, etc.)
LuckPerms%luckperms_prefix%, %luckperms_suffix%, %luckperms_group%
EssentialsX%essentials_nickname%, %essentials_displayname%, %essentials_vanished%, %essentials_afk%
Citizens%citizens_is_npc%, %citizens_npc_name%
ProtocolLibAdvanced packet manipulation for custom join/leave packets
WorldGuard%worldguard_regions%, %worldguard_region% - disable/force messages in specific regions
Multiverse-Core%multiverse_world%, %multiverse_world_alias%, %multiverse_world_colored%
DiscordSRV%discordsrv_verified% - send join/leave messages to Discord
HolographicDisplaysTemporary holograms at player location on join/leave
MiniMessage (Adventure)Full MiniMessage syntax: <red>text</red>, <gradient:blue:green>text</gradient>, <rainbow>text</rainbow>
MVdWPlaceholderAPIAll MVdW placeholders for broader compatibility


---

✨ New Features

  • DiscordSRV Integration - Send formatted join/leave messages to Discord with custom templates
  • HolographicDisplays Integration - Show temporary holograms at player location on join/leave
  • WorldGuard Region Control - Disable or force messages in specific regions via config
  • ProtocolLib Support - Advanced packet-level message handling
  • MiniMessage Syntax - Use modern Adventure/MiniMessage formatting in messages
  • New Config Sections - Dedicated config for each integration (discordsrv, holographicdisplays, protocollib, worldguard)

---

🔧 Improvements & Changes

  • Placeholder parsing order optimized - PlaceholderAPI and MVdWPlaceholderAPI now parse last to catch all nested placeholders
  • Auto-detection - All integrations auto-detect and enable themselves, no manual config needed
  • Reflection-only access - Zero compile-time dependencies, works on any server version
  • Updated plugin.yml - Added 11 softdepends for proper load ordering
  • Enhanced config.yml - Documented all new placeholders with examples

---

🐛 Bug Fixes

  • Fixed placeholder parsing order causing nested placeholders to not resolve
  • Fixed vanish detection edge cases with multiple vanish plugins
  • Fixed MySQL reconnection handling on connection loss
  • Fixed GUI icon rendering on 1.20.5+
  • Fixed sound alias compatibility across versions

---

📋 For Server Admins

  • No breaking changes - Existing configurations work without modification
  • No new permissions required - Integrations use existing permission system
  • Drop-in upgrade - Replace jar, restart server, done
  • Migration note - If upgrading from ModernJoinMessage, data.yml auto-imports on first run

---

🔗 Links

---


Thank you for 2,000+ downloads!
Your support makes these updates possible.
New Update!!

NewJoinMessage 5.1.1 - bStats hotfix

Updated the bStats project ID to 33311, so anonymous usage metrics now report to the correct NewJoinMessage project. The normal bStats opt-out remains unchanged.

There are no gameplay or configuration changes in this hotfix. It includes all compatibility and safety improvements from 5.1.0.






NewJoinMessage 5.1.0 - one jar from 1.8 to 26.2


This update brings the old 1.8 edition and the newer plugin back into one project. You no longer need to choose between a legacy build and a modern build.

What changed

  • Removed the hard-coded 1.21 API declaration that prevented old servers from loading the plugin
  • Built one Java 8-compatible jar for Minecraft 1.8 through 26.2
  • Brought the modern player GUI and admin player manager to the legacy-compatible build
  • Added personal icons and version-aware join/leave sounds
  • Added /njm preview and /njm toggle
  • Added useful placeholders, random default-message pools, and disabled-world support
  • Added a one-time importer for old ModernJoinMessage player messages
  • Fixed self-clear behavior, permission checks, first-join messages, and vanish handling
  • Bundled a Java 8-compatible MySQL driver, added strict connection timeouts, and added automatic YAML fallback when the database is unavailable
  • Contained command, GUI, join, and leave failures so an NJM error stays inside the plugin


Compatibility check

I tested the exact release jar on Spigot 1.8.8 with Java 8 and Paper 26.2 with Java 25. Both endpoints loaded the plugin, accepted /njm help, and stopped cleanly.

Paper may warn that the plugin has no api-version. This is intentional; declaring a modern API version would stop the same jar from loading on 1.8-1.12.

Before updating

Back up the plugin folder, replace the old jar, and restart the server. Please do not use /reload for jar updates.

This is the compatibility release I should have shipped sooner. If it still fails on your setup, send me the startup log and I will work from the actual error.

New language system

Njm Update Summary

1. Language Support Added:


  1. New Languages: English, German, French, Spanish, Italian, Chinese, Japanese, Korean, and Russian.
  2. Language Files: Created custom language files for all 9 languages.


2. MySQL Fixes:


  1. Resolved Issues: Fixed problems with MySQL integration.


3. Translations:


  1. Progress: 75% of the plugin's messages are now translated into the 9 supported languages.


4. New Language Selection GUI:


  1. Language GUI: Added a GUI where players can select their preferred language.
  2. Available Languages: Players can choose from the 9 supported languages in the GUI.


5. System Updates:


  1. Version Check: Implemented a system to automatically check for plugin updates.


6. LanguageHandler Improvements:


  1. Language Handling: Loads and manages language files, retrieves messages in the player's selected language.
  2. Player Preferences: Reads player language preferences from DataLang.yml.


7. Command Updates:


  1. Localized Commands: Updated commands to use localized messages.
  2. Help Menu: The help menu now displays messages in the player's selected language.
  3. Language Command: Added /njm language command to open the language selection GUI.


8. Debugging and Logs:


  1. Logs: Added logs to track language preferences and message retrieval.
  2. Warnings: Generates warnings for missing keys in language files to help with troubleshooting.



Photos of the update:
Screenshot_2024-07-09_082844.png?ex=668e25d0&is=668cd450&hm=a486a21d63389c7746107c4d107414901c0abe7f2f1c70ba666a5eb774fa2db9&
Screenshot_2024-07-09_082916.png?ex=668e25d8&is=668cd458&hm=906c8f1d26c5f0cb40e81f72352dac6eac09cdc0d5e389612ae91e906d7675da&

Updated to 1.20.6 and fix few issues
Fixes Implemented:
  1. New Player Join Message:
     
    • Resolved issue where setting the join message to false now correctly disables it.
  2. Exception Handling:
     
    • Implemented proper exception handling for IOException and InvalidConfigurationException when loading firework.yml.
  3. Explicit YamlConfiguration Instance:
     
    • Created a dedicated instance of YamlConfiguration to explicitly load firework.yml, ensuring robust configuration handling.
  4. Logging Enhancements:
     
    • Enhanced logging messages for clearer output during the reload process, especially for firework.yml.
  5. Dependency Management:
     
    • Ensured correct import and usage of required dependencies (org.bukkit.* and others).
  6. Code Organization:
     
    • Structured the code to follow a clear approach for reloading configurations and managing changes in MySQL connection status.
  7. Reload Command Enhancement:
     
    • Improved the reliability and functionality of the reload command, ensuring all configurations are properly reloaded.
Hot Fix!!

Details:
Fix Mysql. when the plugin is linked with database but it says not

fix with reload command {/njm reload}.

making the plugin faster


and much more....

Cleaning code
2.5 Beta New Update

Here's an updated description of what we have made, including the new commands, fixes, and the new permission system:

Commands:


  1. /njm setplayer [player] [join/leave] [message]: Sets a custom join or leave message for the specified player.
    • Example: /njm setplayer player123 join Welcome to the server!
  2. /njm set [join/leave] [message]: Sets a custom join or leave message for yourself.
    • Example: /njm set leave Goodbye! See you next time.
  3. /njm clear [join/leave/all] [player]: Clears the join or leave message for the specified player, or resets all messages.
    • Example: /njm clear join player456
  4. /njm reload: Reloads the JoinLeaveMessage plugin.

  5. /njm gui: This command is exclusive to players and opens a graphical user interface (GUI) for managing join and leave messages.

Fixes:

  • Fixed an issue where console commands, such as "/njm gui", were causing errors. Now, the plugin prevents console users from executing the "/njm gui" command to avoid any issues.

New System and Permissions: We have added a new system that detects the permissions of players. In the display menu, accessible in the chat, players can now view the commands they have permissions for. The menu provides a clear overview of the available commands and guides players on how to use them.

4912e63186433d01977b9a569dacf680d6ea202c?url=https%3A%2F%2Fmedia.discordapp.net%2Fattachments%2F1125669450071408691%2F1127927930459258980%2Fimage.png

For example, players without any permissions will be informed in the display menu that they don't have access to any commands. On the other hand, if a player has a specific permission, like the "join" permission, the display menu will indicate that they have access to the command and provide instructions on how to use it.

d5d083ed1bd2ec3782c216d3ef8028ba2a263c35?url=https%3A%2F%2Fmedia.discordapp.net%2Fattachments%2F1125669450071408691%2F1127927930740285440%2Fimage.png

This new permission system allows server administrators to control and manage command access based on player permissions, providing a more streamlined and personalized experience for players.

2.0 Is out!

Added:
1- Added the JoinLeaveGUI class: We created a new class called JoinLeaveGUI to handle the graphical user interface (GUI) functionality. This class includes methods for opening the GUI, handling inventory click events, and starting message setting conversations.
2- Integrated the JoinLeaveGUI into the main plugin class: We modified the JoinleaveMessage class, which is your main plugin class, to register the JoinLeaveGUI as a listener. Additionally, we added the /njm gui command, which allows players to open the GUI.
3- Improved command handling: We enhanced the onCommand method in the JoinleaveMessage class to handle the /njm command and its subcommands, such as set and reload. We also added support for tab completion, making it easier for players to enter commands, and improved error handling for cases of invalid command usage.
4- Permission check for opening the GUI: We implemented a permission check in the openGUI method of the JoinLeaveGUI class. This ensures that only players with the required permission can open the GUI.
5- Code organization and clean-up: We made adjustments to the code structure and formatting to enhance readability and maintainability of the plugin.
6- VanishAPI: We integrated the VanishAPI, which detects whether players are vanished or not. If a player is vanished, the join/leave message will be disabled for them. This provides a way to respect the privacy of vanished players and avoid revealing their presence through join/leave messages.
7- Fireworks on first join: We added a feature to trigger fireworks when a player joins the server for the first time. This provides a visual celebration to welcome new players.
8- Welcome message for first-time joining: We included a welcome message for players who join the server for the first time. This message serves as a warm greeting and introduction to the server community.
9- Added data.yml and players.yml config files: We introduced two new configuration files, data.yml and players.yml, to store specific data related to join/leave messages and player joining status.
10- data.yml: This config file is responsible for storing join/leave messages. It allows players to customize their join/leave messages by saving them in the data.yml file. Each player's message is associated with their UUID.
11- players.yml: This config file keeps track of players' first-time joining status. When a player joins the server for the first time, their UUID is stored in the players.yml file to indicate that they are a new player.
12- These additional config files provide a structured way to manage and store specific data related to join/leave messages and player joining status.



Fix:
1- MySQL issue resolved: We have fixed the MySQL connection issue, and now it should work properly. You can use MySQL for data storage without any problems.
2- GUI compatibility: The GUI functionality has been updated to work across different versions of Minecraft, specifically from 1.8 to 1.20.1. If you encounter any issues with the GUI, please let me know on Discord, and I will assist you further.
3- Join/leave messages fixed: The join and leave messages are now displaying correctly in the chat when a player joins or leaves the server. You should see the appropriate messages without any issues.
4- Firework functionality fixed for Minecraft 1.14: The firework feature has been fixed specifically for Minecraft version 1.14. Players will now experience firework effects when they join the server for the first time.

Page 1
Owned
Ready to download
This resource is already attached to your account. You can download the latest file any time.

joinmessage

welcome

minecraft

chat

joinleave

newjoinmessage