pattyjogal / mc-dropper

A Minecraft (Bukkit) server plugin manager

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dropper

A Minecraft Server Package Manager

This project came from a desire to simplify running a Minecraft server. It aims to emulate the package management experience similar to what one would experience when writing programs. Where does the need for this package come from? Beginner users will have an easier time setting up plugins, and can even copy config files from established servers online, or from their friends, to get started quickly and tweak from there. More experienced users can use it to simplify updates/maintenance, replicate servers on other machines, and provide a non-bulky way of sharing their server config with the world.

What are some of the drawbacks of this project? The main one right now is that no simplified package database exists for Bukkit and the like. Bukkit's website has no API to speak of, so this program contains a 95% accurate parser, but it's at the mercy of package maintainers for the most part. Spigot has quite the library, but it's behind an annoying Cloudflare wall. The goal of this project is to be as plug-and-play as possible to support different package repositories, either through HTML scraping or JSON API.

The project is written in the Rust language. This is to minimize runtime errors and easily compile to Linux, Windows, and Mac targets. If you wish to page through the source, you will want to get familiar with Rust somewhere: I suggest the Rust Book.

Installation

At time of writing, this crate has not been uploaded to Cargo, nor have I published binaries. This is simply because it's not ready yet.

For contributors, you are fully free to fork & clone the repository and make pull requests to it. Make sure you have cargo installed, and once you download, you should be able to run

cargo install && cargo check

to verify that your clone worked. From there, you can use

cargo run

to run the program. If you are being super awesome and helping with the CLI, you may want to pass arguments to the program. You can do so by adding -- after cargo run, and then your arguments. For instance, if I wanted to run my program with the arguments add WorldEdit@6.1.9, I would run:

cargo run -- add WorldEdit@6.1.9

Project Documentation

This project comes with documentation! Hooray! Rust provides an easy to use documentation spec that even supports Markdown. I not only encourage you to use it, but it is a requirement to complete a pull request to this project. If you wish to view the documentation, you can run

cargo doc

which will dump the files to a target/doc/dropper folder. Open up the index.html file there to view the docs in the browser.

Project Wishlist

The big thing that this project needs is a command line interface for users to work with. Ideally, this would be super simple and the documentation behind it would be ultra understandable, since there are a sizeable amount of younger MC server enthusiasts who are not as technically experienced.

About

A Minecraft (Bukkit) server plugin manager

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Rust 100.0%