Skip to content

Commit

Permalink
update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
TheAlan404 committed Sep 5, 2023
1 parent a32ac14 commit 6e24513
Show file tree
Hide file tree
Showing 8 changed files with 93 additions and 11 deletions.
23 changes: 12 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,36 +27,37 @@ Submit a PR or open an issue if you have a mcman-server repository that we can a
## Features

- 📜 Everything in one simple `server.toml` file!
- 📥 Downloads the *server jar*, *plugins*, *mods* and *datapacks*!
- 📥 Downloads the *server jar*, *plugins*, *mods*, *datapacks* and *worlds* (if any)!
- 🔁 Always keep up to date with new builds and releases
- ✔️ No more manually downloading jars or editing config files on remote
- 📚 Supports a variety of [sources](./DOCS.md#downloadable):
- **Servers**:
- 🌳 `Vanilla`, `Paper`, `Purpur`, `BuildTools` (Spigot/CraftBukkit)
- 📜 **Modded:** `Quilt`, `Fabric`, `Forge` and `NeoForge`
- ⛓️ **Proxies:** `Velocity`, `Waterfall`, `BungeeCord`
- **Plugins/Mods/Datapacks**: 🍀 `Modrinth`, 🔥 `CurseRinth` (Curseforge), 🚰 `Spigot` (resources)
- **And even** :octocat: `Github Releases`, 🔗 `Custom URL`s and 💁 `Jenkins`!
- 📚 Supports way too many sources, some are:
- Modrinth, CurseRinth, Spigot, Hangar, Github Releases, Jenkins, Maven
- If you need something else, it even supports custom urls!
- ⚙️ Better configuration files with `config/`!
- Allows you to use **variables** inside your config files
- Use *environment variables* for secrets
- You can now use `git` to version-control your server without making a complex `.gitignore`!
- 🐳 Supports Docker
- :octocat: Fully `git`-compatible!
- 🐳 Supports Docker, out of the box
- 📦 Import from or export to [mrpack](./DOCS.md#mcman-import-mrpack-src)s!
- 📦 Import from or export to [packwiz](./DOCS.md#mcman-import-mrpack-src) packs!
- 🛡️ More secure than in-game plugin managers which are prone to permission attacks

## Changelog

whats a semver? /s

### `0.4.0` (unreleased)
### `0.4.0`

- Added [NeoForge](https://neoforged.net/) server type
- Added [Forge](https://forums.minecraftforge.net/) server type
- Added Downloadable type **Maven**
- Added [Hangar](https://hangar.papermc.io/) support
- Improved building process
- Implemented a lockfile to speed things up and fix the remove-issue
- Fixed a bug on `mcman run` which messed up the output when server crashes
- Some downloadables now support variables
- Experimental `add` command
- Experimental `world` feature

### `0.3.0`

Expand Down
20 changes: 20 additions & 0 deletions docs/reference/downloadable/hangar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Hangar

Downloads a plugin from [Hangar](https://hangar.papermc.io/)

!!! example
```toml
type = "hangar"
id = "kennytv/Maintenance" #(1)!
version = "latest"
```

1. You can just use the project's slug here too

**Fields:**

| Name | Type | Description |
| --------- | ----------------- | --------------------------------------------------------- |
| `type` | `"hangar"` | |
| `id` | string | The slug/name of the project |
| `version` | string/`"latest"` | Version name, `"latest"` to always use the latest version |
7 changes: 7 additions & 0 deletions docs/reference/downloadable/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,18 @@

A `Downloadable` is a plugin, mod, datapack or any other thing that is, downloadable.

Downloadable types are used for downloading custom server jars, plugins, mods, client-side mods, datapacks and worlds.

For the server jar, see [Server Type](../servertype/index.md)

## Sources

Please note that the `attributes` are not limitations.

- [Modrinth](./modrinth.md) - `mods`, `plugins` and `datapacks`
- [Spigot](./spigot.md) resources - `plugins`
- [CurseRinth](./curserinth.md), curseforge api - `mods`
- [Hangar](./hangar.md) - `plugins`
- [Github Releases](./github-releases.md) - `*`
- [Jenkins](./jenkins.md) - `*`
- [Maven](./maven.md) - `*`
Expand Down
3 changes: 3 additions & 0 deletions docs/reference/servertype/buildtools.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

Setup Spigot or CraftBukkit using [BuildTools](https://www.spigotmc.org/wiki/buildtools/).

!!! note
`mcman` will need to run `java` to install the server, ensure it exists in the environment before building

!!! example
```toml
type = "buildtools"
Expand Down
3 changes: 3 additions & 0 deletions docs/reference/servertype/forge.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

Downloads the server jar from [Forge](https://forums.minecraftforge.net/)

!!! note
`mcman` will need to run `java` to install the server, ensure it exists in the environment before building

**Fields:**

| Name | Type | Description |
Expand Down
3 changes: 3 additions & 0 deletions docs/reference/servertype/neoforge.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

Downloads the server jar from [NeoForge](https://neoforged.net/)

!!! note
`mcman` will need to run `java` to install the server, ensure it exists in the environment before building

**Fields:**

| Name | Type | Description |
Expand Down
43 changes: 43 additions & 0 deletions docs/tutorials/using-worlds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Using Worlds

Worlds are an experimental feature added in `0.4.0`

This feature allows you to save, load or download worlds while building.

## Downloading Worlds

In [`server.toml`](../reference/server.toml.md) under `worlds` you can use the [`World`](../reference/world.md) type to specify a download.

!!! example
```toml
[worlds.lobby.download]
type = "url"
url = "..."
```

As you can see, the `download` property is just a [`Downloadable`](../reference/downloadable/index.md), so you can go crazy and use... github [releases](https://github.com/ModFest/bc23-pack/releases/tag/world)? Im not the one to judge.

## Packing a world

'Packing' is used to refer to zipping the world contents into a zip file and putting it under the `worlds/` directory.

Since this is an experimental feature, you unfortunately need to do this manually.

!!! note
The world files shouldnt be inside a folder inside the zip file, rather, be directly inside the zip archive.

## Unpacking a world

When building, if the [world](../reference/world.md) is in `worlds` inside [`server.toml`](../reference/server.toml.md) **and** the world does not exist in `server/`, mcman will automatically unpack it.

!!! example
```toml
[worlds.'my-world']
# just the key existing is enough
```

To manually unpack the world to `server/`, use:

```
mcman world unpack <name>
```
2 changes: 2 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ nav:
- tutorials/folder-structure.md
- tutorials/building.md
- tutorials/variables.md
- tutorials/using-worlds.md
- Commands:
- commands/index.md
- init: commands/init.md
Expand Down Expand Up @@ -44,6 +45,7 @@ nav:
- reference/downloadable/index.md
- reference/downloadable/modrinth.md
- reference/downloadable/curserinth.md
- reference/downloadable/hangar.md
- reference/downloadable/spigot.md
- reference/downloadable/github-releases.md
- reference/downloadable/jenkins.md
Expand Down

0 comments on commit 6e24513

Please sign in to comment.