Also made adding and removing names more strict: exact line matches are
now required. Before deleting the player "crafty" would also delete the
line "craftysaurus" which would be unintended.
Instead of allocating all memory up front for every possible command
option this new approach just expects certain variable names. If those
variables are used in a function the manager_property, server_property
or world_property command ensures that the variable has been loaded
from config files.
This approach uses sed to retrieve a single line from a config file
when necessary, instead of reading every line at startup.
The crux of the matter is this: If a setting was omitted in
/etc/msm.conf bash completion would fail requiring it to be there.
However MSM would not complain as it had a default value to use. Bash
completion can now access this same default value.
Now issues a message when the jar file is not found. Also prints out a
dot for each new log line found when starting. This makes it easy to
spot a server which is hanging.
Settings are now registered using the register_setting and
register_server_setting functions. Settings registered via the first
function can be overridden in /etc/msm.conf, and settings registered
via the second function may also be overridden in server.properties.
Additionally, global variables are now better protected from confusion
with stronger namespacing.
Several settings have changed there names, these can be seen in the
diff for `msm.conf`. The same name changes also take effect in all
`server.properties files.
`msm <server> config` now displays a list of all setting when arguments
are omitted.
`msm config` is a new command which lists all setting values.