[Linux] mc-man - The Minecraft server jar and plugin manager, downloader and updater

Discussion in 'Bukkit Tools' started by totokaka, Apr 30, 2014.

Thread Status:
Not open for further replies.
  1. Offline



    The Minecraft server jar and plugin manager, downloader and updater

    The current version of mc-man is 0.9, it is a beta version, but should be pretty stable, and can be viewed as the first release candidate for version 1.0

    mc-man is a terminal program for managing server jars and plugins for Minecraft servers. It is created with simplicity in mind, and aims to be the definitive tool to use for server maintenance, for example when updating a server. mc-man can download and update Spigot, CraftBukkit, MCPC+, BungeeCord and the Mojang server. It can also download and update plugins, with regards to dependencies. With one command you can update all your plugins. There is also features to export and import servers. They work by saving references to all plugins and server jars in a json-file, which can later be used to recreate the server.

    Interesting Features
    • Update all plugins with one command
    • Download plugins with dependency resolution
    • All downloads are checked with checksum
    • Download and update server jars.
    mc-man is programmed in Python for Linux. It can only run on Python 3.3 or newer. This might be a problem on some Linux distributions, but it should always be possible to build Python from source, if it is not present in your package manager. Together with python you need the python header files, which you normally can get through a package called something like python3-dev. In addition to python you are recommended to have pip - the Python package manager. Once you have Python 3.3 or newer, and pip for your version of Python, you can run this command to install mc-man:

    sudo pip3.3 install mc-man
    If you are running Python 3.4, pip3.3 should be replaced with pip3.4. If neither of those commands exists, you can try pip3, but you have to verify that it leads to a pip version for Python 3.3 or newer.

    mc-man has some dependencies which will be installed automatically when installing using pip:

    • PyYaml - For parsing the yaml files in plugins
    • pyBukGet - For access to the BukGet API
    • pySpaceGDN - For access to the SpaceGDN API
    If you install mc-man without pip, you will have to install these dependencies manually.

    The base command for mc-man is "mcman", all of mc-man's functionality is accessible through that command. The command is expected to be run from the root folder of the server. The functionality is divided into four sub commands:

    These commands can be called with "mcman <command>", to manage plugins for example: "mcman plugin". The commands can also be shortened to the first letter: "mcman p". To get more info about the different commands and how they are used, you are recommended to read the readme on github, and to see the help which follows with mc-man. The help can be accessed by adding "--help" at the end of any command or subcommand, for example: "mcman p --help", to get quick help for the plugin command.'

    Often used commands
    Here are some commands that are used often:

    mcman p download <plugin> [<plugin> ...]
    mcman p update
    mcman p list
    mcman s identify <server.jar>
    mcman s download <server> [<channel>] [<version>] [<build>]
    To see all the features mc-man offers, you should look at the help for the different commands. You can start here: "mcman --help".
    Command list
    Here is a simple list over available commands. What they do is not included, but in most cases it should be obvious.
    • plugin
      • search
      • info
      • download
      • update
      • list
    • server
      • servers
      • channels
      • versions
      • builds
      • download
      • identify
    • import
    • export
    If you are having any problems, please tell me here! If there is anything you think should be changed, or if you find any bugs, please create an issue at the github page.
    ase34 likes this.
  2. Offline


    Does updating plugins take old CB versions into account? To avoid incompatible versions and such...
  3. Offline


    I am not quite sure what you mean with your question, but I'll try to answer:) Versions of plugins are ordered by the date they are released to BukkitDev, as intepreted by BukGet. The Bukkit versions the versions are reported to work with is not validated. The only time I had a problem with incompatible versions was when I was developing and accidentially sorted the versions in reverse order.
  4. Offline


    totokaka Ah, alright. That did answer my question actually. How do you look them up in bukget? Via their plugin.yml name? My Stats plugin would be looked up wrong if that's the case, as are a lot of plugins probably (Unless BukGet somehow is brilliant and knows that Stats probably means lolmewnstats)
  5. Offline


    I first use the jar checksum, which should be the safest route, unless you zip your plugin(which I really don't like when authors do). If that doesn't yield any results I try the main class and package. Currently the name is looked up last, but I think I can remove that completely, as the main class should always have a hit.

    Hmm, I did a test on your stat plugin Lolmewn, and it is among the plugins which leads to problems with mc-man. Because you release extensions, or whatever, in the same project. I will look more into how I can fix this tomorrow, but a quick-fix at your end is to release a new plugin version after each extension.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: Jun 7, 2016
  6. Offline


    totokaka Ah, I see. Yeah, that happens :p
  7. Offline



    This still works, and it now has support for many more servers, many mod packs have been added to the server look up api.
Thread Status:
Not open for further replies.

Share This Page