AutoMessages999
1.0.3AutoMessages999 is a powerful and fully customizable Bukkit plugin that automatically sends dynamic, placeholder-rich messages to players at configurable intervals and when they join the server.
1.0.3latestAutoMessages999 1.0.3Nov 5, 2025 * Added Support For MiniMessages * Added A Configuration Option To Enable And Disable MiniMessages1.0.2AutoMessages999 1.0.2 the PlaceHoldersSep 29, 2025 New Features Global permission check: Messages now only broadcast if at least one online player has the automessages.use permission. Added server placeholders: %uptime%, %motd%, %version%, %maxplayers%, %plugins%, %server_ip% Added world-related placeholders: %world%, %world_time%, %world_day%, %world_players%, %world_weather%, %world_seed% Added time and date placeholders: %date%, %day%, %month%, %year%, %hour%, %minute%, %second% Added server performance placeholder: %tps% – shows average server TPS New placeholder: %playername% (replaces old %player%) Join messages now support per-player randomized selection if random-order is enabled
Changes & Improvements Improved debug logging with throttling (1 message every 10 seconds) More resilient config validation with clearer warnings and better handling of invalid entries Safer task cancellation with error handling Improved handling of join-max-messages setting Interval message processing is more robust with safety checks
1.0.1AutoMessages999 1.0.1Aug 29, 2025 Bug Fixes and Improvements 1. Configuration Handling Replaced custom config loading with built-in getConfig() Removed the separate FileConfiguration config and configFile variables. Now the plugin uses the JavaPlugin’s built-in configuration system (getConfig(), saveConfig(), reloadConfig()) to avoid confusion and duplication. Added config validation on load/reload The plugin now validates interval message entries and join messages on startup and reload, logging warnings for missing or invalid fields (e.g., missing message text, invalid intervals, empty lists). Fixed config defaults and color code support Ensured default config values are properly saved and color codes (&) are supported and translated when sending messages. 2. Interval Message Scheduling Immediate first message option Added a config option settings.delay-first-message to control whether the first interval message is sent immediately on schedule start (false) or after the first interval delay (true). This fixes the original behavior where the first message was always delayed. Random order support for interval messages Implemented the settings.random-order config option to shuffle interval messages per interval group, honoring the original intent. Grouped messages by interval and scheduled efficiently Messages are grouped by their interval value, and a single repeating task per interval broadcasts messages in sequence, improving performance and organization. Permission and per-world support for interval messages Each interval message can specify an optional permission and a list of worlds. Messages are only sent to players who have the required permission and are in the specified worlds. If no permission or worlds are specified, the message is broadcast to all players for performance. Improved error handling and logging Invalid interval message entries are skipped with detailed warnings logged, including the entry index and error cause. Message sent count tracking (debug mode) Each interval message tracks how many times it has been sent. When settings.debug-logging is enabled, detailed logs are printed for each message broadcast or sent. Optimized message sending For messages without permission or world restrictions, Bukkit.broadcastMessage() is used instead of iterating over all players, improving performance on large servers. 3. Join Message Enhancements Multiple join messages support Added messages.join-max-messages config option to allow sending multiple join messages per player join event, instead of just one. Per-world join messages Added support for per-world join messages under messages.join-per-world section. Join messages can be configured to only appear in specific worlds. Random order for join messages Join messages are shuffled if settings.random-order is enabled, providing variety on player join. Join message filtering by world Only join messages applicable to the player’s current world are sent. Warning if join messages list is empty Logs a warning if no join messages are configured, helping server admins identify config issues. 4. Placeholder Expansion Added new placeholders The following placeholders are now supported and replaced dynamically in messages: %player% — Player’s name (or "Player" if no player context) %online% — Number of online players %server% — Server name %time% — Current server time in HH:mm:ss format Placeholder replacement per player Placeholders are replaced individually for each player when permissions or world restrictions apply. 5. Commands and Permissions Added /automessages command with subcommands /automessages reload — Reloads the config and reschedules messages /automessages toggle — Enables or disables automated messages without editing the config file Permission checks for commands Added permissions automessages.reload and automessages.toggle to restrict command usage. Permission checks for interval messages Interval messages can specify a permission field to restrict which players receive them. Permission checks for command usage Added automessages.use permission to gate access to the /automessages command. Tab completion support Added tab completion for /automessages subcommands (reload, toggle). 6. Performance and Maintainability Removed redundant config saving override No longer overrides saveConfig() unnecessarily; uses JavaPlugin’s default methods. Improved task management All scheduled tasks are tracked and properly cancelled on plugin disable or config reload to prevent memory leaks or duplicate tasks. Detailed logging Added debug logging option to help server admins troubleshoot message sending and scheduling. Code cleanup and comments Improved code readability with comments and better variable naming.V1.0.0AutoMessages999 V1.0.0Aug 4, 2025 the first release
Similar projects
Config →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta
Plasmo Voice
A proximity voice chat mod with audio positioning and lots of features
4.1MSueta