Sueta

Join and Quit Messages

1.6.0

Join and Quit Messages is a plugin that gives you the opportunity to customize the messages when a player joins or leaves your server.

·Plugin
  1. 1.6.0latestJoinAndQuitMessages 1.6.0Aug 19, 2026

    JoinAndQuitMessages 1.6.0

    The biggest release yet: clickable messages, first-join and per-world messages, in-game commands to manage them — and a fix for hex colours, which had silently stopped working on modern Spigot.
    Heads up: this release now requires Java 17 or newer. See [Upgrading](#upgrading).
    ---

    🚨 Hex colours work again on Spigot 26.x

    If you use <#RRGGBB> colours, they had stopped rendering entirely on recent Spigot builds — every hex tag showed as plain text. The version check read the minor version number, so 1.21.8 gave 21 and passed, but 26.2 gave 2 and failed the "is this 1.16+?" test. Hex support is now detected by asking the server what it can actually do, so it cannot break again when the version scheme changes. ---

    ✨ Clickable and hover messages

    Messages can now run a command, open a link, copy text, or show a tooltip.
    joinmessage: "&7[&2+&7]&a%player% <click:suggest_command:/msg %player% ><hover:show_text:&7Send a message>&8[msg]</hover></click>"
    | Tag | What it does | |-----|--------------| | <click:run_command:/spawn>text</click> | Runs the command as the player who clicks | | <click:suggest_command:/msg Steve >text</click> | Puts the command in their chat box | | <click:open_url:https://example.com>text</click> | Opens a link | | <click:copy_to_clipboard:hello>text</click> | Copies text to their clipboard | | <hover:show_text:&7Tooltip>text</hover> | Shows a tooltip on hover | - Click and hover combine and nest - Colours carry across a tag — <#FF0000>a <click:...>b</click> c stays red throughout - Placeholders work inside a tag's value: <click:suggest_command:/msg %player% > - /jqm test <message> renders the result clickable and tells you about typos, instead of leaving you with a tag that quietly does nothing Only messages in your config.yml can create clickable text. Tags are read before placeholders are filled in, so another plugin supplying a custom nickname can never inject a clickable run_command into your join messages.

    🎉 First join messages

    Give brand new players their own welcome.
    first_join:
      enabled: true
      message: "&7[&2+&7] &6Welcome &e%player% &6to the server! &7(&a#%playercount_online%&7)"

    🤫 Silent join and quit

    Anyone with joinandquitmessages.silent is not announced at all — ideal for staff and alongside vanish plugins. Suppressed messages still reach the console by default.

    🌍 Per-world messages, managed in-game

    Different messages depending on which world the player is in — no YAML editing required. Changes save and apply straight away, and work from the console too.
    /jqm world list
    /jqm world add <world> <join|leave> <message>
    /jqm world remove <world> [join|leave]
    - The message is everything after the type, so it needs no quoting - World names and join/leave are tab-completable - Adding a message while the feature is off switches it on for you - Worlds that are not loaded yet can still be configured Per-world messages use the world the player is in at the moment they join or quit — they are not triggered by walking through a portal.

    📋 A documented config.yml

    The plugin used to build its config in code, leaving you with an uncommented file and the wiki for company. It now ships a fully commented config.yml explaining every option, every placeholder, and which message wins when several could apply. ---

    Other improvements

    - Rank messages now have a real priority. Previously a player holding several configured permissions got an unpredictable message that could change between restarts. Add a permission_messages.priority list to decide the order. - `/jqm test` matches reality. The test command and the real join message used different placeholder names, so a preview could render differently than the real thing. - `&` is no longer replaced blindly. "Tom & Jerry joined" rendered as "Tom § Jerry joined". Only & followed by a real colour code is translated now, and translation happens after placeholders, so codes coming out of PlaceholderAPI are coloured too. - `/jqm quittest` — quit messages were previously impossible to preview. - Smarter random messages — the same line is never picked twice in a row. - An empty random message list no longer errors; it falls back to your default message. - New built-in placeholders — %displayname%, plus %online% / %max% as aliases.

    Commands

    | Command | Description | Permission | |---------|-------------|------------| | /jqm test [message] | Preview a join message | joinandquitmessages.test | | /jqm quittest [message] | Preview a quit message | joinandquitmessages.test | | /jqm world list | List worlds with a configured message | joinandquitmessages.world | | /jqm world add <world> <join\|leave> <message> | Set a per-world message | joinandquitmessages.world | | /jqm world remove <world> [join\|leave] | Remove a per-world message | joinandquitmessages.world | | /jqm reload | Reload the configuration | joinandquitmessages.reload |

    Permissions

    | Permission | Description | Default | |------------|-------------|---------| | joinandquitmessages.use | Use the main command | true | | joinandquitmessages.test | Preview messages | true | | joinandquitmessages.reload | Reload the configuration | op | | joinandquitmessages.world | Manage per-world messages | op | | joinandquitmessages.silent | Join and quit unannounced | false | | joinandquitmessages.checkupdate | Be told about updates | op | ---

    Upgrading

    From any earlier version — please read: 1. Java 17 or newer is now required. Any server running a Minecraft version this plugin targets already meets that, but double-check if you are on an old JVM. 2. Your existing config keeps working and picks up the new options automatically on first start. Nothing to migrate by hand. 3. Small behaviour change: a stray & in a message now shows as a literal & instead of turning into a colour character. If you relied on that, replace it with a real code. 4. Recommended: delete config.yml and restart to get the fully commented version. 5. Recommended: if you use rank messages, add a permission_messages.priority list so the order is yours rather than arbitrary.

    Metrics

    bStats now records which features are actually in use, so development can follow what servers really configure. Only feature on/off flags and counts are sent — never message content, player data, or world names. It can still be disabled in plugins/bStats/config.yml. --- Requires: Spigot/Paper 1.16+ · Java 17+ Optional: PlaceholderAPI Full technical changelog, including internal changes: [CHANGELOG.md](https://github.com/thedutchruben/joinandquitmessages/blob… Found a problem? [Open an issue](https://github.com/thedutchruben/joinandquitmessages/issu…
    292 downloads
  2. 1.5.0Nov 22, 2025
    #### Permission based Messages
    permission_messages:
      enabled: true
      join:
        "myserver.vip": "&7[&6VIP+&7] &6%player% &7joined with style!"
        "myserver.premium": "&7[&5PREMIUM+&7] &5%player% &7entered the server!"
      leave:
        "myserver.vip": "&7[&6VIP-&7] &6%player% &7left the server"
        "myserver.premium": "&7[&5PREMIUM-&7] &5%player% &7departed"
    🎯 Commands
    | Command | Description | Permission | |---------|-------------|------------| | /jqm test | Test configured join message | joinandquitmessages.test | | /jqm test <message> | Test custom message | joinandquitmessages.test | | /jqm reload | Reload configuration | joinandquitmessages.reload |
    🔐 Permissions
    | Permission | Description | Default | |------------|-------------|---------| | joinandquitmessages.use | Access to main command | true | | joinandquitmessages.test | Test message formatting | true | | joinandquitmessages.reload | Reload configuration | op |
    Placeholders
    - %player% : Player name - %world% : World name where the player leaves/joins - %playercount_online% : Current amount of players - %playercount_max% : Maximum amount of players
    680 downloads
  3. 1.4.0Aug 10, 2025
    #### Permission-Based Messages - NEW: Players can now have custom join/quit messages based on their permissions - Configurable permission-based message system with priority handling - Example: VIP players get gold messages, Premium players get purple messages #### Commands - NEW: /jqm test - Test your configured join message with full formatting - NEW: /jqm test <custom message> - Test any custom message with colors, hex codes, and placeholders - NEW: /jqm reload - Reload configuration with proper permission checks #### Basic Permission Messages
    permission_messages:
      enabled: true
      join:
        "myserver.vip": "&7[&6VIP+&7] &6%player% &7joined with style!"
        "myserver.premium": "&7[&5PREMIUM+&7] &5%player% &7entered the server!"
      leave:
        "myserver.vip": "&7[&6VIP-&7] &6%player% &7left the server"
        "myserver.premium": "&7[&5PREMIUM-&7] &5%player% &7departed"
    🎯 Commands
    | Command | Description | Permission | |---------|-------------|------------| | /jqm test | Test configured join message | joinandquitmessages.test | | /jqm test <message> | Test custom message | joinandquitmessages.test | | /jqm reload | Reload configuration | joinandquitmessages.reload |
    🔐 Permissions
    | Permission | Description | Default | |------------|-------------|---------| | joinandquitmessages.use | Access to main command | true | | joinandquitmessages.test | Test message formatting | true | | joinandquitmessages.reload | Reload configuration | op |
    261 downloads
  4. 1.3.0Join and Quit Messages 1.3.0Jul 9, 2025
    Update dependency versions
    102 downloads
  5. 1.2.0Join and Quit Messages 1.2.0Oct 10, 2024
    Add support for random messages ![Information](https://cdn.modrinth.com/data/cached_images/b71b536aef70e…
    254 downloads

Similar projects

Plugin →