https://github.com/azurejelly/paper-template
A Minecraft server plugin template using Google Guice.
https://github.com/azurejelly/paper-template
bukkit bukkit-plugin minecraft minecraft-server papermc plugin server
Last synced: about 2 months ago
JSON representation
A Minecraft server plugin template using Google Guice.
- Host: GitHub
- URL: https://github.com/azurejelly/paper-template
- Owner: azurejelly
- License: gpl-3.0
- Created: 2024-05-11T22:14:50.000Z (about 2 years ago)
- Default Branch: multi-module
- Last Pushed: 2025-08-02T22:45:31.000Z (11 months ago)
- Last Synced: 2026-04-04T10:32:48.324Z (3 months ago)
- Topics: bukkit, bukkit-plugin, minecraft, minecraft-server, papermc, plugin, server
- Language: Java
- Homepage:
- Size: 114 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Paper Template
A Minecraft server plugin template using [Google Guice](https://github.com/google/guice). Looking for a template with only one module? Check [this branch](https://github.com/azurejelly/paper-template/tree/single-module) out.
## Requirements
To use this template, you will need:
- Some experience with [Google Guice](https://github.com/google/guice);
- [Git](https://www.git-scm.com/) for Version Control;
- An IDE - preferably [IntelliJ IDEA](https://www.jetbrains.com/idea/);
- [JDK 21](https://adoptium.net/) or higher.
- You can lower this requirement to Java 17, 11 or even 8 by modifying the source files accordingly.
## Getting started
Clone the repository using the following command on the command line:
```shell
$ git clone https://github.com/azurejelly/paper-template
$ cd paper-template
```
Alternatively, download the source files as a ZIP from [here](https://github.com/azurejelly/paper-template/archive/refs/heads/multi-module.zip). You will need to extract them to a folder using something like 7-Zip.
## Setup
Import the project to IntelliJ IDEA, or open it directly from the command line:
```shell
$ idea .
```
To change the plugin's name, description, group ID, version and some other properties, open up the `gradle.properties` file. By default, the file looks like this:
```properties
group=dev.azuuure.sample
version=1.0.0
# Sets the Minecraft version to use with the 'runServer' task.
serverVersion=1.21.3
# Sets the plugin name, description and website.
# The description and website are both optional and can be commented out.
pluginName=SamplePlugin
pluginDescription="It's as shrimple as that"
pluginWebsite=https://azuuure.dev
```
When changing the group ID, be sure to change the packages inside the source code as well. You can do this by right-clicking the packages on IntelliJ IDEA, then choosing `Refactor > Rename`. If the server yells at you when loading the plugin because it can't find the main class, try specifying it manually in the [`plugin/build.gradle.kts`](plugin/build.gradle.kts) file:
```kt
bukkit {
/* ... */
main = "${project.group}.${pluginName}"
/* ... */
}
```
## Running an integrated server
You can run an integrated Paper server with the plugin by using the `gradlew runServer` task:
```shell
$ ./gradlew runServer
```
This also supports downloading plugin dependencies automatically - see the [run-task wiki](https://github.com/jpenilla/run-task/wiki/) for more information.
## Building for distribution
To build a version ready for distribution, simply run:
```shell
$ ./gradlew build
```
You should now have a file that you can distribute at the `plugin/build/libs/` directory (the one without the `-original` suffix!).