Welcome to AnimatedMOTD’s documentation!¶
Contents:
Introduction¶
Have you seen other servers that have moving MOTDs? Animated Favicons? What about a flashy player count? You’re at the right place!
Whether you’re running a major network, or a single server, this plugin covers it all. From Bukkit and Spigot (1.7-1.8), to Bungee, and even Cauldron
Features¶
- Animate your MOTD with a variety of effects
- Animate your server icon using a GIF
- Animate your player count with placeholders
- Animate your player sample (hover) with even more text
- No ”... and x more...” message in player sample
- Allows optimized GIFs - any 64x64 GIF will work
- A huge list of placeholders, and more if you need it
- Player-based animations, with player face, etc
- Blacklist IPs of voting websites you use (a default list is included)
- Frequent updates and bugfixes
- Easy method of support with one command: /animatedmotd debug
Configuration¶
config.yml¶
config.yml represents basic configuration of plugin. Player caching, database management and fallback motd are here.
Table of Contents
settings¶
settings:
animations:
default:
dynamic: generic_dynamic
static: generic_static
host.macizun.me:
dynamic: generic_dynamic
static: generic_static
caching:
time: 604800000
parts:
face: 'http://cravatar.eu/avatar/<player value="name">/64.png'
fallback:
motd: "This is the fallback MOTD It will be used: \nWhen the duration is reached, or an animation fails"
favicon: favicon.png
#status-bar: "&7Players: {server:onlineplayers}/{server:maxplayers}" #Uncomment if you want custom status-bar on failsafe
player-sample:
- "&7Here is the static player sample"
- "&7It is &ac&bo&cl&1o&2r&3a&db&el&4e"
- "&7One frame only"
debug: false
max-connections-per-ip: 5
formatting:
time-format: '{0} days {1}:{2}:{3}'
date-format: 'MM-dd-yyyy h:mm a'
animations¶
Warning
Do not remove default key You can assign STATIC variable to dynamic field, but never DYNAMIC to static.
This section holds list of animations assigned to forced hosts.
default: dynamic: generic_dynamic static: generic_static host.macizun.me: dynamic: generic_dynamic static: generic_static
caching¶
caching: time: 604800000 parts: face: 'http://cravatar.eu/avatar/<player value="name">/64.png'
- time
- Specify time after which cache files will be regenerated for certain players
- parts
Note
Removing parts will result in no caching, so your best bet if you are not using player parts is just to remove it.
Key is used for file name and <player> variable in animation
fallback¶
fallback: motd: "This is the fallback MOTD It will be used: \nWhen the duration is reached, or an animation fails" favicon: favicon.png #status-bar: "&7Players: {server:onlineplayers}/{server:maxplayers}" #Uncomment if you want custom status-bar on failsafe player-sample: - "&7Here is the static player sample" - "&7It is &ac&bo&cl&1o&2r&3a&db&el&4e" - "&7One frame only"This section holds fallback motd that is being sent to clients under specific circumstances:
- Animation passes duration threshold
- Connection exceeds see max-connection-per-ip
- Connection address is specified in blacklist.yml
- motd
- It is basically a description, it contains two lines (they have to be separated with n though)
- favicon
Warning
Don’t put animated icon, it will not work.
Favicon that will be displayed next to fallback motd.
- status-bar
Warning
Uncommenting status-bar will result in red cross in fallback motd.
Status bar is a line displayed on player count slot.
- player-sample
Warning
Player sample will display x and more.. if status-bar is disabled
Holds list of strings displayed when client hovers over status-bar.
debug¶
debug: falseThis boolean will help you determinate what ips are pinging your server. It’s especially helpful for looking for server list’s ips.
max-connection-per-ip¶
Warning
Don’t go lower than 1, it will cause your animatedmotd to stop working.
max-connections-per-ip: 5This variable prevents abuse regarding bandwidth usage, connections exceeding this limit will be given see fallback motd.
formatting¶
formatting: time-format: '{0} days {1}:{2}:{3}' date-format: 'MM-dd-yyyy h:mm a'Formatting is used for formatting countdowns and some bukkit sided variables.
- time-format
- Is used for countdowns where {0} are days, {1} hours, {2} minutes and {3} seconds
- date-format
- Is used for bukkit variables: first-played and last-played
database¶
Database is used for storing player data for DYNAMIC animations. Currently AnimatedMOTD supports sqlite, flatfile and mysql.
database: type: sqlite mysql: host: localhost port: 3306 username: user password: pass database: animatedmotd sqlite: file: players.db
type¶
type: sqliteThere are three options available:
- sqlite (default)
- mysql
- flatfile - May be the fastest
- none - Completely disables database, if you are not using DYNAMIC animations it will speed up things for you.
Plugin will automatically create tables for your database.
blacklist.yml¶
blacklist.yml holds ip addresses that animation is disabled for, they will receive fallback motd specified in config.yml This is useful for some server listing sites that wait for proper protocol or pong packet.
It’s really hard to keep track of all ip changes those sites make, if it’s not working on your web-listing use config.yml debug.
Example blacklist.yml¶
blacklist:
- 104.200.31.26 #minecraft-server-list.com PINGER
- 198.41.188.52 #minecraft-server-list.com WEBSITE
- 23.239.10.44 #minecraftservers.org PINGER
- 23.239.10.74 #minecraftservers.org PINGER
- 173.255.233.106 #minecraftservers.org PINGER
- 66.175.208.209 #minecraftservers.org PINGER
- 23.239.10.76 #minecraftservers.org PINGER
- 50.116.54.77 #minecraftservers.org PINGER
- 173.255.228.22 #minecraftservers.org PINGER
- 23.239.10.77 #minecraftservers.org PINGER
- 141.101.112.15 #minecraftservers.org WEBSITE
- 91.121.222.149 #minecraft-list.pl PINGER / WEBSITE
- 37.59.35.201 #minecraft-mp.com PINGER
- 37.187.79.210 #minecraft-mp.com PINGER
- 94.23.233.30 #minecraft-mp.com PINGER
- 37.187.56.174 #minecraft-mp.com PINGER
- 91.122.183.105 #minecraft-mp.com PINGER
- 162.159.251.155 #serverpact.com WEBSITE
- 107.170.91.81 #minetrack.net PINGER
- 104.28.15.2 #minetrack.net WEBSITE
- 46.116.142.198 #minestatus.net PINGER
- 107.21.105.33 #minestatus.net WEBSITE
- 104.28.25.41 #topg.org WEBSITE
- 50.28.6.244 #PlanetMinecraft.com PINGER
- 69.172.201.208 #PlanetMinecraft.com WEBSITE
animations/*.yml¶
You can create as many animation configurations as you like, resulting in possibility to hot-swap them or create animation per forced host.
Table of Contents
Example file¶
type: STATIC
settings:
interval: 100
delay: 0
duration: 1000
favicon:
animation: "animation.gif"
loop: true
style: optimized
intervals-per-frame: 1
motd:
first:
intervals-per-frame: 2
text:
- '<scroller spacing="20" width="50" value="&3New updates: &eParkour, Factions, Survival">'
- '<scroller spacing="20" width="50" direction="right" value="&4Visit our website: &cmacizun.me">'
second:
intervals-per-frame: 1
text:
- '<typewriter pause="20" delimiter="&r&l\>\>" frequency="4" value="&6Nothing is impossible!">'
- '<typewriter pause="20" delimiter="&r&l\>\>" frequency="4" value="&7New gamemodes: &8Survival, Hunger Games">'
- '<typewriter pause="20" delimiter="&r&l\>\>" frequency="4" value="&eNew packages in store! &6Check it out!">'
status-bar:
enabled: true
intervals-per-frame: 1
text:
- 'Players: &7<server value="onlineplayers">&6/&7<server value="maxplayers">'
player-data:
enabled: true
'1':
intervals-per-frame: 4
text:
- '&7Animated MOTD'
- '&cAnimated MOTD'
'2':
intervals-per-frame: 4
text:
- '&cCreated by:'
- '&4Created by:'
'3':
intervals-per-frame: 4
text:
- '&3maciekmm <maciekmm.net>'
- '&amaciekmm <maciekmm.net>'
'4':
intervals-per-frame: 4
text:
- '&3samczsun <samczsun.com>'
- '&asamczsun <samczsun.com>'
'5':
intervals-per-frame: 4
text:
- '&7Ping: <server value="ping">ms'
- '&7Ping: <server value="ping">ms'
'6':
intervals-per-frame: 4
text:
- '<scroller spacing="5" width="20" value="This is some &ascrolling &rtext">'
type¶
type: STATICThere are two types of animation:
- STATIC - Does not support player-based variables, is mostly used for players for which player data has not been collected yet. You can use STATIC animation in dynamic as stated in config.yml
- DYNAMIC- Does support player-based variables, but is limited to players that have already been on server (counting from plugin installation). You cannot use DYNAMIC in static field as stated in config.yml
settings¶
settings: interval: 100 delay: 0 duration: 1000
- interval
Warning
Lowering interval might cause performance issues
Interval is represented in milliseconds (1 second = 1000 milliseconds), value 100 means that motd will be updated 10 times a second.
- delay
- Delay after animation will start.
- duration
- Amount of intervals after which animation stops.
favicon¶
favicon: animation: "animation.gif" loop: true style: optimized intervals-per-frame: 1
- animation
- Favicon files used in animation. Using .gif will result in animated icon, .png will result in static one. Files have to be placed in main plugin folder.
- loop
- Whether animation should loop or only be played once
- style
- There are two styles normal and optimized, you have to choose one that corresponds to process how your .gif was built. If your icon does not animate properly switch to other mode.
- intervals-per-frame
- Defines how fast gif will update, as we can’t rely on .gif frames properties you have to specify fixed framerate here, setting it to 1 with interval in settings set to 100 results in 10fps.
section¶
status-bar: enabled: true intervals-per-frame: 1 text:Every animation part has a section where you can specify how animation looks like.
- intervals-per-frame
- Defines how fast text line will update, setting it to 2 will result in update every second interval.
- text
- Defines what text will show, you can use placeholders, animation tags and own text here, you are only limited by your imagination.
- enabled
Note
Enabled option does not work in motd lines.
Specify whether or not change default value at all.
motd¶
intervals-per-frame: 1 motd: first: intervals-per-frame: 2 text: - '<scroller spacing="20" width="50" value="&3New updates: &eParkour, Factions, Survival">' - '<scroller spacing="20" width="50" direction="right" value="&4Visit our website: &cmacizun.me">' second: intervals-per-frame: 1 text: - '<typewriter pause="20" delimiter="&r&l\>\>" frequency="4" value="&6Nothing is impossible!">' - '<typewriter pause="20" delimiter="&r&l\>\>" frequency="4" value="&7New gamemodes: &8Survival, Hunger Games">'Motd divides in two similar sections first and second corresponding to lines. See section.
status-bar¶
- '<typewriter pause="20" delimiter="&r&l\>\>" frequency="4" value="&eNew packages in store! &6Check it out!">' status-bar: enabled: true intervals-per-frame: 1 text:Status bar is the place where normally player count is shown, you can put whatever you want there! See section.
player-data:¶
- 'Players: &7<server value="onlineplayers">&6/&7<server value="maxplayers">' player-data: enabled: true '1': intervals-per-frame: 4 text: - '&7Animated MOTD' - '&cAnimated MOTD' '2': intervals-per-frame: 4 text: - '&cCreated by:' - '&4Created by:' '3': intervals-per-frame: 4 text: - '&3maciekmm <maciekmm.net>' - '&amaciekmm <maciekmm.net>' '4': intervals-per-frame: 4 text: - '&3samczsun <samczsun.com>'Player data divides into sections enumerated by line number, See section.
Variables¶
Variables are the most powerful configuration options in AnimatedMOTD, giving you ability to animate text using built-in frame generators.
Structure¶
<variablename value="value" setting="setting">
Variables are represented by non-closed xml tags with value option being required by default.
Variables are divided into:
Placeholders¶
Platform wide placeholders¶
<server value=”?”>¶
Adds 1 to player count.
<server value="justonemore" arg="world/server">
- arg (Optional)
- World (Spigot) or server (BungeeCord) to take slots from. If not set, sums players online from worlds/servers.
Player count globally or on specific world/server.
<server value="onlineplayers" arg="world/server">
- arg (Optional)
- World (Spigot) or server (BungeeCord) to take slots from. If not set, sums players online from worlds/servers.
Maximum player cap
<server value="maxplayers">
Connection ping
<server value="ping">
Bukkit placeholders¶
Table of Contents
<player value=”?”>¶
Warning
You can only use these placeholders in DYNAMIC animations.
Displayname (set by permission plugin or essentials) of player.
<player value="displayname">
Date when place has logged on to the server for the first time, uses config.yml formatting for style formatting.
<player value="firstplayed">
Date when place has logged on to the server lately, uses config.yml for style formatting.
<player value="lastplayed">
<stats value=”?”>¶
Warning
You can only use these placeholders in DYNAMIC animations.
If you are interested in using these placeholders take a look at Statistic and simply lowercase them.
Bungee placeholders¶
Table of Contents
<player value=”?”>¶
Warning
You can only use these placeholders in DYNAMIC animations.
Name of server player is about to connect to.
<player value="reconnect_server">
Animations¶
Animations are simply shortcuts for creating multiple frames.
Table of Contents
typewriter¶
Typewriter gives you nice writing effect.
<typewriter pause="20" value="Text" delimiter=">>" frequency="3">
- pause
- Pause that occurs after type writing completes.
- value
- Text to typewrite.
- delimiter
- “Cursor” attached to the end of string while typewriting.
- frequency
- Blinking frequency of delimiter in intervals, giving real cursor feeling.
- Example:
- //Image will be here
scroller¶
Scroller scrolls a text, imagine news bar when watching TV, it’s exactly like that!
<scroller value="text" spacing="10" width="30" direction="right">
- value
- Text to scroll.
- spacing
- Amount of spaces attached to the end of value.
- direction
- Direction to which text scrolls.
- width
Warning
Setting width too high may cause line glitches.
Width of scroller in characters.
- Example:
- //Image will be here
for¶
For is basically loop or code executed x times. Our animation gives you access to index, so you can make countdowns for example.
<for length="3" value="Counting $x"> <for start="2" end="10" value="Counting $x">
- length
Warning
Specifying length precludes start and end.
Specifying length causes animation to count from 0 to value length was set.
- start
- end
Warning
You have to specify both of these options in order to make it work correctly.
Defines start and end index for animation.
- Example:
- //Image will be here
Commands¶
There’s not many commands at the moment, we plan on introducing commands changing motd on the fly, but making them user-friendly with current setup is challenging. We only provide admin commands, all of them can be used from console.
/animatedmotd reload¶
Permission: animatedmotd.reload
Reload command is used for reloading:
- Output:
- [AnimatedMOTD] Config reloaded
/animatedmotd debug¶
Permission: animatedmotd.debug
The command is used for debugging, it’s required to use this command and provide it’s outcome in order to ask for help. It scans your logs and looks for exceptions, it also includes your current plugin version as well as configuration.
- Example output:
- http://paste.ubuntu.com/9956527/
/animatedmotd troubleshoot¶
Warning
This command is experimental
Permission: animatedmotd.troubleshoot
This command helps you troubleshoot your errors based on frequent mistakes people make when configuring our plugin.
Terms of Service¶
By buying this plugin, you state you agree with our terms of service. Furthermore, you imply that you will at least attempt some avenue of support such as a private message or our helpdesk before leaving a stupid review. The review section is not the first step in getting a bug fixed. It is the last.
- You are not permitted to redistribute this plugin in any form.
- You are not permitted to decompile or modify the plugin in any form.
- You will not be given any refunds. What you see is what you get.
- The exception to this are bugs, which we will fix free-of-charge.
- You will not file a chargeback, dispute, or perform any similar action. Doing so will result in your licence revoked along with further action from SpigotMC
- The exception to this is if you have already contacted SpigotMC, and they have approved a chargeback. If this is the case, we will gladly refund your money
- We reserve the right to change the price whenever we wish.
- We are not responsible for future versions (>1.8.2-pre1) which may disable this feature.
Frequently Asked Questions¶
Table of Contents
Animations¶
My favicon glitches/is not displayed correctly¶
Toggle your gif type located in animations/*.yml
Variables do not parse¶
Make sure your variables are suitable for animation type (STATIC/DYNAMIC).
Payments¶
Can you sell me your plugin for x$?¶
No, the price is not questionable, and will most likely never change.
Do you support payments by PaySafeCard?¶
No, only payments through PayPal are accepted.
I’ve bought your plugin and can’t download it, what should I do?¶
Send me a private message on spigot.