Skip to content

Commit

Permalink
uh what did i commit?
Browse files Browse the repository at this point in the history
  • Loading branch information
TheAlan404 committed Jul 28, 2023
1 parent 5248fff commit ef14771
Show file tree
Hide file tree
Showing 20 changed files with 596 additions and 0 deletions.
30 changes: 30 additions & 0 deletions docs/commands/export.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# `mcman export ...`

Exporting commands

## `mcman export mrpack [filename]`

Export the server as an `mrpack` (modrinth modpack) file

If `[filename]` argument isn't given, it will be exported as `${SERVER_NAME}.mrpack`

See also: [special variables](#special-variables) that contain export-related variables

## `mcman export packwiz`

> **Alias & Full Command:** `mcman export pw [-o --output <FOLDER>] [--cfcdn]`
Export the server as a packwiz pack, by default to `pack/` folder.

If you are in a git repo, mcman will give you the githack url to the generated `pack.toml` at the end of the export.

??? "Extra options (output & cfcdn)"
You can use the `--output <folder>` option to set a custom destination to the pack.

Using `mcman export pw --output packwiz/pack` will create `pack.toml` to `./packwiz/pack/pack.toml`

If the `--cfcdn` flag is used, every `curserinth` downloadable will use `download.mode = "url"` with `download.url` being the url from curseforge's cdn.

If its not used, `download.mode = "metadata:curseforge"` is used with `update.curseforge = { .. }` (default packwiz behavior)

See also: [special variables](#special-variables) that contain export-related variables
84 changes: 84 additions & 0 deletions docs/commands/import.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# `mcman import ...`

> Alias: `mcman i ...`
Commands related to importing

## `mcman import url <URL>`

Imports a plugin or a mod from a url.

Supports:

- `[cdn.]modrinth.com`
- `curserinth.kuylar.dev`
- `www.curseforge.com`
- `www.spigotmc.org`
- `github.com`
- If not any of those, will prompt with **direct url** or **jenkins**

Example usages:

```sh
mcman import url https://modrinth.com/plugin/imageframe
mcman import url https://www.spigotmc.org/resources/armorstandeditor-reborn.94503/
mcman import url https://ci.athion.net/job/FastAsyncWorldEdit/
```

## `mcman import datapack <URL>`

Like [import url](#mcman-import-url-url), but imports as a datapack rather than a plugin or a mod.

Example usage:

```sh
# datapack alias is dp
mcman import dp https://modrinth.com/plugin/tectonic
```

## `mcman import mrpack <src>`

Imports a [mrpack](https://docs.modrinth.com/docs/modpacks/format_definition/) file (modrinth modpacks)

**Note:** [`mcman init`](#mcman-init) supports mrpacks

The source can be:

- A direct URL to a `.mrpack` file
- A local file path
- Modpack URL (`https://modrinth.com/modpack/{id}`)
- Modrinth project id prefixed with `mr:`

Example usages:

```sh
# direct link
mcman import mrpack https://cdn.modrinth.com/data/xldzprsQ/versions/xWFqQBjM/Create-Extra-full-1.1.0.mrpack
# only /modpack urls
mcman import mrpack https://modrinth.com/modpack/create-extra
# prefixed
mcman import mrpack mr:simply-skyblock
# local file
mcman import mrpack My-Pack.mrpack
```

## `mcman import packwiz <src>`

> Alias: `mcman i pw <src>`
Imports a [packwiz](https://packwiz.infra.link/) pack

!!! note
[`mcman init`](./init.md) supports initializing with packwiz

The source can be:

- A packwiz pack URL
- A local file path to `pack.toml`

Example usages:

```sh
mcman import packwiz https://raw.githack.com/ParadigmMC/mcman-example-quilt/main/pack/pack.toml
mcman import packwiz ../pack.toml
```
20 changes: 20 additions & 0 deletions docs/commands/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# CLI Commands

This section shows the commands of mcman. You can type `mcman` or `mcman --help` for a basic list of it.

## Cheatsheet

- `mcman init`
- `mcman init --mrpack <source>`
- `mcman init --packwiz <source>`
- `mcman build`
- `mcman markdown`
- `mcman pull <file>`
- `mcman info`
- `mcman import url <url>`
- `mcman import datapack <url>`
- `mcman import packwiz <source>`
- `mcman import mrpack <source>`
- `mcman export packwiz [folder]`
- `mcman export mrpack [filename]`
- `mcman version`
3 changes: 3 additions & 0 deletions docs/commands/info.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# `mcman info`

Shows info about the server in the terminal.
48 changes: 48 additions & 0 deletions docs/commands/init.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# `mcman init`

Initializes a new server in the current directory.

> **Full Command:** `mcman init [--name <name>] [--mrpack <source> | --packwiz <source>]`
This command is interactive. Just run `mcman init`!

??? "📦 Importing from a mrpack (modrinth modpack)"
You can use the `--mrpack` flag on `mcman init` to import from an mrpack while initializing a server.

- If its from modrinth, like [adrenaserver](https://modrinth.com/modpack/adrenaserver): `mcman init --mrpack mr:adrenaserver`

Use `mr:` and then the project id/slug of the modpack (should be visible on the url)

- You can also just paste in the modpack page's url: `mcman init --mrpack https://modrinth.com/modpack/adrenaserver`

- If its from another source, you can provide a download link to it: `mcman init --mrpack https://example.com/pack.mrpack`

- If its a file: `mcman init --mrpack ../modpacks/pack.mrpack`

If your server is already initialized, use the `mcman import mrpack <source>` command. The source argument also accepts the sources defined above.

Example using [Adrenaserver](https://modrinth.com/modpack/adrenaserver):

```sh
# these are all identical
mcman init --mrpack mr:adrenaserver
mcman init --mrpack https://modrinth.com/modpack/adrenaserver
mcman init --mrpack https://cdn.modrinth.com/data/H9OFWiay/versions/2WXUgVhc/Adrenaserver-1.4.0%2B1.20.1.quilt.mrpack
```

??? "📦 Importing from a packwiz pack"
You can use the `--packwiz` (alias `--pw`) flag on `mcman init` to import a packwiz pack while initializing.

**If the pack is in your filesystem**:

```sh
mcman init --pw path/to/pack.toml
```

**If the pack is online**:

```sh
mcman init --pw https://raw.githack.com/EXAMPLE/EXAMPLE/main/pack.toml
```

If your server is already initialized, use the `mcman import packwiz <source>` command. The source argument also accepts the sources defined above.
17 changes: 17 additions & 0 deletions docs/commands/pull.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# `mcman pull <file>`

'Pulls' a file from `server/` to `config/`

Example usage:

```sh
~/smp $ ls
...
server.toml
...

~/smp $ cd server/config/SomeMod

~/smp/server/config/SomeMod $ mcman pull config.txt
server/config/SomeMod/config.txt => config/config/SomeMod/config.txt
```
3 changes: 3 additions & 0 deletions docs/commands/version.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# `mcman version`

Shows the version of **mcman** and checks if its up to date.
30 changes: 30 additions & 0 deletions docs/folder-structure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Folder Structure

In a normal server environment, everything is in one folder and a big giant mess to navigate.
And database files are next to config files!

When using `mcman`, your folder structure will look something like this:

- 📂 **cool_server/**
- 📋 **`server.toml`**
- 🚢 `Dockerfile`
- 📜 `.dockerignore` and `.gitignore`
- 📁 **config/**
- 📜 `server.properties`
- 📁 **server/** (git-ignored - only on your host)
- ... server env files ...
-`server.jar`
- 📜 `server.properties`
- 📜 `bukkit`/`spigot`/`paper`/`commands`/`help`/`permissions`/`pufferfish`/`purpur`/`wepif.yml`

Inside the folder for your server, you'll see a few files and folders:

- **`server.toml`**: This is the configuration file for your server, more info [in its own section](#servertoml)
- **config/** folder: This is the folder your server config files should go. `mcman` will process everything into the output.
- The path is converted as follows:
`config/server.properties` => `server/server.properties`
And every config file (.properties, .toml, .yaml, .yml etc) will be processed with [variables](#variables)
- **server/** folder: This folder is where `mcman` will build the server files into, aka the output. This folder is gitignored by default (because why would you do that?)
- According to the `server.toml`, mcman can generate launcher scripts at `server/start.sh` and `server/start.bat`
- **`.gitignore` and `.dockerignore`**: Ignore files for git and docker
- **Dockerfile**: If you enabled docker, this is the dockerfile
23 changes: 23 additions & 0 deletions docs/installation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
[latest-win]: https://github.com/ParadigmMC/mcman/releases/latest/download/mcman.exe
[latest-linux]: https://github.com/ParadigmMC/mcman/releases/latest/download/mcman

# Installation

## Stable Releases

* [Windows][latest-win]
* [OSX/Linux][latest-linux]

* [Github Releases](https://github.com/ParadigmMC/mcman/releases)
* [build action](https://github.com/ParadigmMC/mcman/actions/workflows/build.yml) (requires github account)

## Windows: Scoop

[Scoop](https://scoop.sh/) is a command-line installer for Windows. You can use 2 commands in powershell to install it.

Add the [minecraft](https://github.com/The-Simples/scoop-minecraft) bucket and install mcman:

```powershell
scoop bucket add minecraft https://github.com/The-Simples/scoop-minecraft
scoop install mcman
```
20 changes: 20 additions & 0 deletions docs/reference/clientsidemod.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# ClientSideMod

This is basically a [Downloadable](./downloadable) of any type with some extra fields:

| Name | Type | Description |
| --- | --- | --- |
| `optional` | bool | Marks if optional or not |
| `desc` | string | Provide a description |

These fields are used for exporting to [mrpack]() or [packwiz]()

!!! example
```toml title="server.toml"
[[clientsidemods]]
type = "modrinth"
id = "3dskinlayers"
version = "JHapWF9O"
optional = true
desc = "It adds 3D skin layers :moyai:"
```
3 changes: 3 additions & 0 deletions docs/reference/downloadable/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Downloadable

A `Downloadable` is some project, entity etc. from a source.
59 changes: 59 additions & 0 deletions docs/reference/markdown-options.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Markdown Options

Ever wanted to display all of the mods or plugins your server has? Using `mcman` you can do that!

If you havent added it, add your markdown file's name (`README.md` for example) into the `markdown.files` list. When the `mcman markdown` command is run, mcman will render every template in the listed files.

**Fields:**

| Name | Type | Description |
| --- | --- | --- |
| `files` | string[] | List of filenames to 'render' |
| `auto_update` | bool | If set to `true`, markdown files will be rendered on commands that modify `server.toml` |

``` toml title="server.toml"
[markdown]
files = [
"README.md",
"PLUGINS.md",
]
auto_update = false
```

!!! warning
If `#!toml auto_update = true`, commands might take longer. We recommend you dont turn it on until you're done adding most of the mods/plugins.

## Markdown Templates

These are the templates mcman will render inside your markdown files. When `mcman markdown` runs, the files specified in `server.toml` will be read and the templates below will be updated with the rendered markdown code. You can have as many markdown files or templates as you want.

### Server Info Table

This template renders a table with server jar info.

``` md title="README.md"
<!--start:mcman-server-->
... content ...
<!--end:mcman-server-->
```

!!! note "Example render:"
| Version | Type | Build |
| ------- | ------------------------------------------ | -------- |
| 1.20.1 | [Paper](https://papermc.io/software/paper) | *Latest* |

### Addons List

This template renders a list of addons (plugins or mods)

```md title="README.md"
<!--start:mcman-addons-->
... content ...
<!--end:mcman-addons-->
```

!!! note "Example render:"
| Name | Description |
| --- | --- |
| [BlueMap](https://modrinth.com/plugin/bluemap) | A Minecraft mapping tool that creates 3D models of your Minecraft worlds and displays them in a web viewer. |
| [FastAsyncWorldEdit](https://modrinth.com/plugin/fastasyncworldedit) | Blazingly fast world manipulation for artists, builders and everyone else |
Loading

0 comments on commit ef14771

Please sign in to comment.