Fixed: Join messages are now sent in one batch after the avatar is fully loaded, preventing empty broadcast lines.
Fixed: Server aliases now work correctly with case-insensitive server matching. %server% and %server_alias% display the configured alias automatically in join and goto messages.
Fixed: Goto messages (connecting, already-on-server, server-not-found) now use the configured server alias for %server% instead of the internal server name.
Improved: If a player avatar fails to load, the plugin now falls back to the default Steve skin instead of showing an error message.
Improved: Join messages and avatar broadcasts are now dispatched on the proxy main thread for better stability.
Improved: Player skins are loaded from the proxy profile when the player is online, avoiding unnecessary Mojang API requests.
Added: New configuration option 'token-storage' to choose between file-based (tokens.yml) or SQL (MySQL/MariaDB) storage for JoinMe tokens.
Added: Public API (de.thejavacode.joinme.api.JoinMe) for other plugins to get, set, give and remove JoinMe tokens.
Added: Plugin message bridge on channel 'joinme:give' so backend plugins can grant JoinMe tokens to players. Use JoinMeGrantBridge.encode(uuid, amount) on backend servers to send tokens to the proxy.
Added: New placeholder '%server_name%' in join messages for the internal proxy server name (separate from the display alias).
Added: New configuration option 'token-cost-used' to customize the message shown when JoinMe tokens are deducted. Supports placeholders %cost% and %token_label% (automatically uses "Token" for 1, "Tokens" for more).
Added: LuckPerms integration with placeholders '%player_colored%' (rank color on player name, supports gradients) and '%player_prefix%' (full prefix text) in join messages.
Added: Console support for '/joinme tokens give/remove <player|uuid> <amount>' and offline token management via LuckPerms UUID lookup.
Added: New message 'player-not-found' in config for token commands.
Added: New configuration option
'require-permission' to enable/disable permission requirement for the /joinme command.
Added: Console support for /joinme help and /joinme reload commands.
Code (YAML):
settings: # Whether the 'joinme.use' permission is required to use the /joinme command. # Set to false to allow all players to use the command. require-permission: true
Improved: The join links now utilize shorter, randomly generated IDs instead of UUIDs. This change enhances compatibility, especially for Bedrock players, making it easier to join announced servers.
Added: A new configuration option
'join-command-message' in the config.yml to customize or disable the join command suggestion in the chat message.
Code (YAML):
join-command-message: "<gray>%prefix% or use <yellow>/joinme goto %serverId%</yellow>, to join him</gray><dark_gray>!</dark_gray>"# You can leave the line empty so that it is not displayed.
This update introduces
Temporary Join Links! Clicking server announcements now uses the internal
/joinme goto command with a temporary (5-minute expiry), random ID for more controlled connections.