111 lines
3.3 KiB
Markdown
111 lines
3.3 KiB
Markdown
# MinecraftServerMANager
|
|
|
|
The best way to quicky spin spin up a Minecraft server
|
|
|
|
This project is a successor to [start_papermc.sh](https://github.com/jiriks74/start_papermc.sh)
|
|
specifically the [v2.0.0](https://github.com/jiriks74/start_papermc.sh/tree/v2.0.0)
|
|
branch.
|
|
The project grew out of the scope I envisioned at first, surprisingly quickly LOL,
|
|
so I moved all my development here.
|
|
|
|
This project aims to support more Minecraft servers than just paper.
|
|
|
|
## Features
|
|
|
|
#### Takes care of Java
|
|
|
|
- Checks for the correct Java version installed
|
|
- Enables you to download a download a portable Java version from [Adoptium](https://adoptium.net/)
|
|
- The script downloads it to `~/.adoptium_java` allowing you to use one
|
|
Java downlaod across multiple server instances
|
|
- It also allows you to use multiple Java versions allowing you to run
|
|
multiple Minecraft servers requiring different Java versions
|
|
|
|
#### Simple setup
|
|
|
|
- To setup your server you only need to change some values in `msman.cfg`
|
|
- If you're starting a server just for you and your friends you don't need to
|
|
change anything apart from the version and memory usage
|
|
- Values like memory are easy to change without the need to undertand Java flags
|
|
- Asks you if you want to accept the eula so you don't need to mess around with `eula.txt`
|
|
|
|
#### Sane defaults
|
|
|
|
- Uses [Aikar's flags](#default-jvm-flags-used)
|
|
|
|
#### Protections
|
|
|
|
- Makes sure you really meant to update the Minecraft version
|
|
|
|
#### Self-update
|
|
|
|
- This script can self-update itself without the need for user intervention
|
|
|
|
## Currently supported servers
|
|
|
|
- [Paper](https://papermc.io/)
|
|
- [Fabric](https://fabricmc.net/use/server/)
|
|
|
|
## Dependencies
|
|
|
|
- `jq`
|
|
- `awp`
|
|
- `curl`
|
|
|
|
*Most, if not all, of these should be already available on your system if
|
|
you're running something like Ubuntu.*
|
|
|
|
## Precautions
|
|
|
|
> **Warning**
|
|
>
|
|
> It is important to note that this script manages the server's `.jar` file,
|
|
> including its name.
|
|
>
|
|
> Any modifications made to the `.jar` file outside of this script can lead to
|
|
> undefined behavior and may cause the script to crash or perform unexpected actions.
|
|
>
|
|
> I strongly advise against making any modifications to the server's `.jar` file
|
|
> manually, as it may interfere with the functionality of this script.
|
|
|
|
## Basic setup
|
|
|
|
- Option 1: Oneliner
|
|
|
|
```bash
|
|
curl -sSL "https://raw.githubusercontent.com/jiriks74/msman.sh/main/msman.sh" -o msman.sh && chmod +x msman.sh && ./msman.sh
|
|
```
|
|
|
|
- Option 2: Download `msman.sh` from release to where you want your minecraft
|
|
server and start it with
|
|
|
|
```bash
|
|
chmod +x msman.sh
|
|
./msman.sh
|
|
```
|
|
|
|
- Option 2: Clone the repository
|
|
|
|
```bash
|
|
git clone https://github.com/jiriks74/msman.sh minecraft_server
|
|
cd minecraft_server
|
|
chmod +x msman.sh
|
|
./msman.sh
|
|
```
|
|
|
|
## Updating the server
|
|
|
|
### Builds
|
|
|
|
This script can automatically update to the latest papermc build available for
|
|
the Minecraft version you selected.
|
|
If you want this behaviour, leave the select_build veriable empty.
|
|
Otherwise select the build you want and the script will download it for you.
|
|
|
|
## Default JVM flags used
|
|
|
|
By default this script uses [Aikar's](https://docs.papermc.io/paper/aikars-flags)
|
|
flags.
|
|
It's set up so that it automatically modifies them if over 12GB of memory
|
|
is set for the server so you shouldn't need to change them unless you
|
|
want to swap them out for something else.
|