MagicMOTD
A BungeeCord proxy plugin that replaces the MOTD with dynamic messages!
Please note: this plugin is for BungeeCord (or other proxies) ONLY. A Spigot version is on the roadmap for the distant future.
This plugin was inspired by plugins like
SwiftMOTD, that allow server operators to serve customised MOTDs to players.
As opposed to SwiftMOTD, the plugin stores the IP to player name map to the disk, so that it is recovered when the server restarts. Additionally, it uses up to date BungeeCord APIs, to avoid deprecation and eliminate the BungeeYAML dependency.
H2 is used to provide a persistent database, You don't need to do any manual setup for this.
This plugin uses
bStats to collect anonymous usage data. You can opt out of this by disabling metrics in bStats' config.yml file. Read their privacy policy
here. Your data is only used for the purposes of deciding areas of the plugin to improve.
Features
- Send a random MOTD from a list of MOTDs
- Format the MOTD with colours and formatting codes
- Use templates to display dynamic information
- Force a specific MOTD with a command
- Access and edit the IP to player name database through the
plugin API
- Your server is behind a reverse proxy (e.g. Cloudflare, ngrok, etc.)
Commands
/reloadmotd (alias: rmotd) reloads the plugin configuration. [Permission: magicmotd.reload]
/forcemotd [motd index] (alias: fmotd) forces the MOTD at the position in the config to be displayed, or stops forcing an MOTD if the argument is blank. [Permission: magicmotd.force]
When player name detection might not work:
- You forgot to enable
ip_forward in BungeeCord's config.yml.
- Multiple players are using the same IP address (e.g. behind a NAT like a home, school or office network). Other players may see the wrong name in the MOTD.
- The player frequently changes their IP address (e.g. using a VPN or dynamic IP address)
These limitations cannot be overcome, as the plugin has no way of knowing which player is pinging the proxy. It collects their IP when they join, and uses that to determine their name next time they ping the proxy.
More information
For info about building from source and/or using the plugin API,
check out the repo.