Skip to content

Commit

Permalink
chore: increment paper version (#424)
Browse files Browse the repository at this point in the history
  • Loading branch information
MiniDigger authored Jun 17, 2024
1 parent 99acf2e commit b051389
Show file tree
Hide file tree
Showing 78 changed files with 6,401 additions and 1 deletion.
1 change: 1 addition & 0 deletions docs/versioned/paper.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[
"1.20",
"1.19",
"1.18"
]
30 changes: 30 additions & 0 deletions docs/versioned/paper/content/1.20/README.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import DocCardList from "@theme/DocCardList";

# Welcome to the Paper Docs

Paper is a high performance fork of Spigot that aims to fix gameplay and
mechanic inconsistencies as well as to improve performance. Paper contains numerous features, bug
fixes, exploit preventions and major performance improvements not found in Spigot.

---

<DocCardList items={[
{
"type": "link",
"label": "Administration",
"href": "/paper/admin",
"customEmoji": "mdi:account-cog",
},
{
"type": "link",
"label": "Development",
"href": "/paper/dev",
"customEmoji": "mdi:code-braces",
},
{
"type": "link",
"label": "Contributing",
"href": "/paper/contributing",
"customEmoji": "mdi:comment-edit",
},
]}/>
15 changes: 15 additions & 0 deletions docs/versioned/paper/content/1.20/admin/README.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
slug: /admin
---

import DocCardList from "@theme/DocCardList";
import { useCurrentSidebarCategory } from "@docusaurus/theme-common";

# Paper Administration Guide

Welcome to the Paper administration guide! This guide includes information and tutorials
regarding the administration of a Paper server.

---

<DocCardList items={useCurrentSidebarCategory().items} />
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
---
toc_max_heading_level: 4
slug: /adding-plugins
description: Plugins are the most powerful way to extend the functionality of Paper beyond the configuration files.
---

# Adding Plugins

Plugins are the most powerful way to extend the functionality of Paper beyond the configuration
files. Functionality added by plugins can range from making milk restore hunger or dead bushes grow,
to adding entirely new and original game modes or items.

:::danger[Malicious Plugins]

Ensure you fully trust the source of any plugin before installing it. Plugins are given **full and
unrestricted** access to not only your server but also the machine that it runs on. Because of this,
it is imperative that plugins only be installed from trusted sources. Be careful!

:::

## Finding plugins

Before installing a plugin, you'll need to find what you want to install. The best place to find plugins is [Hangar](https://hangar.papermc.io), Paper's plugin repository, but you can also find many plugins
on [SpigotMC](https://www.spigotmc.org/resources/),
[BukkitDev](https://dev.bukkit.org/bukkit-plugins), or the
[PaperMC Forums](https://forums.papermc.io/forums/paper-plugin-releases/), while other plugins may
release on [GitHub](https://github.com). One of the best ways to find plugins isn't to browse any of
these sites directly but to search for plugins using a search engine. Searching for the function you
desire followed by `Minecraft plugin` will often yield good results.

:::tip[Spigot and Bukkit Plugins]

Paper is compatible with both Spigot and Bukkit plugins. It's okay if a plugin does not explicitly
mention Paper compatibility. It'll still work.

:::

## Installing plugins

1. Once you've found the plugin you'd like to install, download it. Ensure the file you have
downloaded ends in `.jar`. Some plugins also distribute as `.zip` files, in which case you will
need to extract the file and locate the `.jar` for your platform, often labelled `bukkit` or
`paper`.
2. Once you have the plugin downloaded locally, locate the `plugins` folder from the root directory
of your Paper server.
3. Drag and drop the plugin file (`.jar`) into the `plugins` folder. If you are using a shared
hosting service, you may need to use their web panel or SFTP to upload the plugin; however, the
procedure will be the same.
4. Restart your server. The plugin should load.
5. Check your work. Once the server has finished loading, run the `/plugins` command in-game or type
`plugins` into the console. You should see your freshly installed plugin listed in green. If it
is not listed or is colored red, continue to [troubleshooting](#troubleshooting). A plugin listed
in red means that it is not currently enabled. For a freshly installed plugin, this often means
that the plugin failed to load.

## Troubleshooting

### Check your logs

The first step to troubleshooting installing plugins is to check the log of your server. Your
server's most recent logs will be stored to the `logs/latest.log` file. You may need to scroll near
the beginning of this file to see when plugins were loaded.

#### Missing dependencies

If you see something like this:

```log
[00:00:00] [Server thread/WARN] Could not load 'plugins/MyAwesomePlugin-1.0.0.jar' in folder 'plugins'
[00:00:00] [Server thread/WARN] org.bukkit.plugin.UnknownDependencyException: Unknown/missing dependency plugins: [Vault]. Please download and install these plugins to run 'MyAwesomePlugin'.
```

This means that the plugin you tried to install is missing a dependency. A dependency, in this case,
is another plugin that you must install for the first to function. While you will get a big scary
error, the important line to look at is:

```log
[00:00:00] [Server thread/WARN] Unknown/missing dependency plugins: [Vault]. Please download and install these plugins to run 'MyAwesomePlugin'.
```

This is telling you that in order to load `MyAwesomePlugin`, you must first install `Vault`.

#### Invalid `plugin.yml`

If you see something closer to this:

```log
[00:00:00] [Server thread/WARN] Could not load 'plugins/MyAwesomePlugin-1.0.0.jar' in folder 'plugins'
[00:00:00] [Server thread/WARN] org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
```

This means that what you have downloaded isn't a valid Paper plugin. This is generally caused by one
of the following:

1. The plugin you downloaded isn't a plugin at all, but instead a mod for Forge, Fabric, or similar.
These will not run on Paper.
2. The plugin failed to download completely. Especially when using tools such as `curl` or `wget`,
you can easily download error pages rather than the plugin you intended. This may also be caused
by a network issue. Attempt to download the plugin again. If you are using FTP (not SFTP or a web
panel) to upload your plugin to a shared hosting service, ensure your FTP client is in `binary`
and not `ASCII` mode. Consult the documentation for your FTP client for details.

#### Ambiguous plugin name

If you see something like this:

```log
[00:00:00] [Server thread/WARN] Ambiguous plugin name `Essentials' for files `plugins/EssentialsX-2.19.4.jar' and `plugins/Essentialsx-2.20.0-dev.jar' in `plugins'
```

This means you have two plugins with the same name, which is not supported. In this case, two
versions of EssentialsX are installed. Both the release `2.19.4`, and a development build of
`2.20.0`. Ensure you only have one version of each plugin installed at one time. Delete the older
version of the duplicate plugin, and restart your server.

To prevent accidentally installing two versions of one plugin while updating, you can use
the `update` folder as described in the [Update Guide](/paper/updating#step-2-update-plugins).

#### Something else

If you see an error, but it isn't similar to one of the above, attempt to read it yourself. While
the full error may be large and scary, you likely only have to read the first one or two lines to
understand what is going on. If you're not sure, do not hesitate to reach out for support on our
[Discord](https://discord.gg/papermc) in the `#paper-help` channel.

### If nothing is logged

If nothing is logged, your server is likely not attempting to load any plugins. The conditions
needed for the server to load a plugin are as follows:

1. The file is at the root of the `plugins` folder, relative to its working directory. This is
usually the same folder as the server JAR file. **Subdirectories of the `plugins` folder will not
be checked.** All plugins must be in the root folder.
2. The file ends in `.jar`. If your plugin does not end in `.jar`, what you have downloaded may not
be a plugin. Note that some plugins distribute multiple JARs as `.zip` files. If this is the
case, you have to extract them before installing the plugin.

If both of these are true, and you still see no logs, please reach out for support on our
[Discord](https://discord.gg/papermc) server in the `#paper-help` channel. We will be happy to
assist you.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
slug: /getting-started
description: How to get started with downloading and setting up a Paper server.
---

# Getting Started

## Requirements

:::tip

Paper requires at least **Java <Property name="PAPER_JAVA_MIN" />** to run, which [is easy to download and install](/misc/java-install).

:::

| Paper Version | Recommended Java Version |
|----------------|-----------------------------------------|
| 1.8 to 1.11 | Java 8 |
| 1.12 to 1.16.4 | Java 11 |
| 1.16.5 | Java 16 |
| 1.17.1-1.18.1+ | Java <Property name="PAPER_JAVA_MIN" /> |

## Downloading Paper

Paper provides runnable server JARs directly from our
[website's downloads page](https://papermc.io/downloads).

Click on the build number to download a file.

## Running the server

To run the server you will need to either create a startup script
or run a command in your terminal.

You can generate a startup script using our [Startup Script Generator](/misc/tools/start-script-gen).
You can also obtain the optimized terminal command to run the server there.

If you're just looking for a short command:
```bash
java -Xms4G -Xmx4G -jar paper.jar --nogui
```
Ensure you navigated your terminal to the directory of your server
and that you have replaced `paper.jar` with the name of the JAR you have downloaded.

The amount of RAM can be set by changing the numbers in the `Xmx` and `Xms` arguments.
`--nogui` disables Vanilla's GUI, so you don't get double interfaces when using the command line.

To configure your server, see the [Global Configuration](../reference/configuration/global-configuration.mdx) and
[Per World Configuration](../reference/configuration/world-configuration.mdx) pages.

## Updating the server

Updating Paper is simple! See our [Update Tutorial](../how-to/update.md) for more information.

## Migrating to Paper

### From Vanilla

Migrating from Vanilla is easy, but there are some differences, namely in world saves. Paper (and
CraftBukkit and Spigot) separate out each dimension of a world (nether, the end, etc.) into separate
world folders.

Paper will handle this conversion for you automatically. No additional consideration is required.

### From CraftBukkit or Spigot

Paper is a drop in replacement for both CraftBukkit and Spigot, you don't need to make any changes.

## Next steps

Take a look at our [Next Steps](/paper/next-steps) guide to get your server up and running with the best performance and
features.
114 changes: 114 additions & 0 deletions docs/versioned/paper/content/1.20/admin/getting-started/migration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
---
slug: /migration
title: Migrating to or from Paper
description: It's simple to migrate your server to or from Paper. This page will help you get started.
---

It's simple to migrate your server to or from Paper. The steps below will help you get started.

:::caution[Backup your data before you start!]

Before you begin, please ensure you have a full backup of your server.

See our [Backup Guide](/paper/updating#step-1-backup) for more information.

:::

## Migrating to Paper

### From CraftBukkit or Spigot

It's easy to migrate from CraftBukkit or Spigot to Paper. Follow the steps below.

1. Stop your server if it is running, and create a full backup.
2. Download Paper from [our downloads page](https://papermc.io/downloads).
3. Rename the downloaded file to match the name specified in the [start command](getting-started.mdx#running-the-server).
4. Replace your existing JAR file with your freshly downloaded Paper JAR.
5. Start your new server.

Paper retains full compatibility with all Spigot plugins, allowing a seamless transition.

:::info

Your new Paper server will still use [`bukkit.yml`](../reference/configuration/bukkit-configuration.mdx)
and [`spigot.yml`](../reference/configuration/spigot-configuration.mdx).
New configuration options can be found in [`config/paper-global.yml`](../reference/configuration/global-configuration.mdx)
and [`config/paper-world-defaults.yml`](../reference/configuration/world-configuration.mdx).

:::

If you have any issues migrating from CraftBukkit or Spigot, do not hesitate to reach out for
support on [our Discord server](https://discord.gg/papermc) (`#paper-help` channel).

### From Vanilla

When migrating to Paper from Vanilla, the way worlds are stored will automatically be changed.
Should you ever want to go back to Vanilla, follow the [Vanilla Migration Guide](#to-vanilla)
closely, as manual changes will be required.

1. Stop your Vanilla server if it is running, and create a full backup.
2. Download Paper from [our downloads page](https://papermc.io/downloads) and replace your Vanilla
server JAR with your freshly downloaded Paper JAR.
3. Rename the downloaded file to match the name specified in the [start command](getting-started.mdx#running-the-server).
4. Start your new Paper server.

You have now successfully migrated to Paper. If you encounter any issues, do not hesitate to reach
out for support on [our Discord server](https://discord.gg/papermc) (`#paper-help` channel).

### From Fabric/Forge

Because both Fabric and Forge use the Vanilla world directory structure, the same steps as the
[Vanilla Migration Guide](#from-vanilla) may be used, with one caveat. If your Fabric or Forge
server used mods that added new blocks, items, or other data to the game, Paper will be unable to
load these features.

Additionally, note that Paper does not support Fabric or Forge mods. You will need to find plugin
replacements. Any hybrids that attempt to support both mods and plugins are fundamentally flawed and
not recommended for use.

## Migrating from Paper

### To Vanilla

Because Paper stores worlds slightly differently than Vanilla, manual work is required to migrate.
If these steps are not taken, your nether and end will look like they have been reset. Don't worry!
Even if this has happened, you haven't lost any data. The Vanilla server just doesn't know where to
find it.

Here is a chart to show the difference between how Vanilla and Paper store worlds.

| Server Software | Overworld | Nether | End |
| --------------- | --------- | --------------------- | --------------------- |
| Vanilla | `/world` | `/world/DIM-1` | `/world/DIM1` |
| Paper | `/world` | `/world_nether/DIM-1` | `/world_the_end/DIM1` |

Follow these steps to migrate from Paper to Vanilla:

:::note

These steps assume a `level-name` (as set in `server.properties`) of `world`. If this is not the
case for you, replace `world` with your `level-name` for all steps below.

:::

1. Stop your Paper server, if it is running.
2. If you have already started your server with Vanilla, enter the `world` folder and delete both
the `DIM-1` and `DIM1` folders. This step is only necessary should you have started your server
with Vanilla.
3. Copy the `/world_nether/DIM-1` folder into the `/world` folder.
4. Copy the `/world_the_end/DIM1` folder into the `/world` folder.
5. Delete both the `/world_nether` and `/world_the_end` folders.
6. Replace your Paper JAR with a Vanilla server JAR.
7. Start your Vanilla server.

### To CraftBukkit or Spigot

Paper does **not** support migration to either CraftBukkit or Spigot! While you may find success
(both CraftBukkit and Spigot use the same directory structure as Paper), **do not** reach out for
support with issues you encounter and note that data loss is possible.

### To Fabric/Forge

Because both Fabric and Forge use the same directory structure for world storage as Vanilla, follow
the [Vanilla Migration Guide](#to-vanilla) for this process. Note that neither Fabric nor Forge will
support Paper plugins! You will be required to find replacement mods.
Loading

0 comments on commit b051389

Please sign in to comment.