MCL is a ruby script which acts as a wrapper for your vanilla Minecraft server. It's original use was to autoupdate snapshot servers but it now offers a lot more features which are mostly controlled via chat commands. You can compare MCL to an IRC bot.
If you need help or have problems open an issue or chat with me. Please note that I'm not always there so either be patient, stubborn or just create an issue (I won't bite you). Also make sure to highlight me in Discord (
gem install bundler)
apt-get install git/
brew install git)
logAdminCommandsto be set to true!
NOTE: If you plan on using MCL for <= 1.12 servers you can try using the master branch but we recommend to use the
stable_upto_1.12 tag or
NOTE: MCL is currently in BETA stage!
If you want to deactivate buildin handlers (or 3rd party ones) just rename the file to start with two underscores (e.g.:
If you want to activate/deactivate extra/legacy handlers we recommend you to symlink them instead of renaming (on linux). This way you
won't get issues when updating via git. E.g.
cd vendor/handlers/_extras; ln -s __horsecars.rb horsecars.rb and to deactivate just
MCL supports multiple instances. Create a new configuration and start/stop the instance like this:
MCLI=config_name mcld start
MCL is designed to run as a daemon. Since it wraps the process you lose the server console (unless you have the GUI console ofc). We have an experimental console server that you can configure in your instance yml config file. To access the console run something like this:
MCLI=config_name mcld console # (also check out `-h`)
If you are in, try
commands. I know
help and explanations are missing but you will figure it out. Or ask :D Oh and everything starting with a
/ will be send as command to your Minecraft server. Inputs starting with a
/say * (e.g.
.hi, wassup? =>
/say hi, wassup?)
NOTE: While there is a simple authentication the whole thing is not encrypted! It's only recommended to use this locally. You may use SSH port tunnels to access it but since you need MCL, your config and the autoconfig file it's very annoying, rather SSH and run the console ;)
ACL stands for Access Control List and it's not really that but think about it as permissions. Each player has a permission level which is a number starting from 0. Each command also has a permission level and if the player has equal or more points he can execute the command.
Because numbers are confusing there is a mapping for several "groups" which resolve to a permission level like this:
root => 13333337 admin => 1333337 mod => 133337 builder => 13337 member => 1337 guest => 0
!help only shows you commands you have the permission for.
Normal modifications usually break on new releases and/or don't get updates for snapshot versions. Most other wrappers work by intercepting network data packets but this also tends to break sooner or later when things change. MCL on the other hand just parses console output and responds with commands. Unless the log output changes (
which happened only once in Minecraft history as far as I know 1.13 screwed everything) or commands get removed MCL will continue to work. The drawback is obviously that MCL is much more limited.
In addition, Ruby makes it really easy to communicate and work with external services and that's where I see it's strengths and uses. Things which require really fast ticking checks are overkill for MCLs model.
Contributions are very welcome! Either report errors, bugs and propose features or directly submit code:
git checkout -b my-new-feature)
git commit -am 'Added some feature')
git push origin my-new-feature)