Back to Guides
Plugins

Create your first Paper plugin: a simple command plugin

HostChicken Editorial Team
September 7, 2025
2 min read
paperspigotplugin development

Create your first Paper plugin: a simple command plugin

Writing a Paper plugin is a great way to customize your server with features you can’t get from existing plugins. We’ll create a tiny plugin that adds a `/hello` command, covering the tools you need and the structure of a typical Paper project.

What you need

  • Java 17+
  • Gradle or Maven (we’ll show Gradle)
  • Paper API dependency
  • An editor (IntelliJ IDEA recommended)

Project setup (Gradle)

Create a new Gradle project and add the Paper API:

```gradle

plugins {

id 'java'

}

group = 'com.example'

version = '1.0.0'

repositories {

mavenCentral()

maven { url = uri('https://repo.papermc.io/repository/maven-public/') }

}

dependencies {

compileOnly 'io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT'

}

java {

toolchain {

languageVersion = JavaLanguageVersion.of(17)

}

}

```

Basic plugin class

Create `src/main/java/com/example/HelloPlugin.java`:

```java

package com.example;

import org.bukkit.command.Command;

import org.bukkit.command.CommandSender;

import org.bukkit.plugin.java.JavaPlugin;

public class HelloPlugin extends JavaPlugin {

@Override

public void onEnable() {

getLogger().info("HelloPlugin enabled!");

}

@Override

public void onDisable() {

getLogger().info("HelloPlugin disabled.");

}

@Override

public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

if (command.getName().equalsIgnoreCase("hello")) {

sender.sendMessage("Hi there! Have fun on the server.");

return true;

}

return false;

}

}

```

plugin.yml

Create `src/main/resources/plugin.yml`:

```yaml

name: HelloPlugin

version: 1.0.0

main: com.example.HelloPlugin

api-version: 1.20

commands:

hello:

description: Say hello

usage: /hello

```

Build the jar

Run:

```bash

./gradlew build

```

The plugin jar will appear in `build/libs/`. Copy it to your server’s `plugins/` folder and start the server.

Test in game

  • Join your server and run `/hello`.
  • You should see the friendly message.

Next steps

  • Register a command executor class instead of using `onCommand` for larger plugins.
  • Listen to events (e.g., `PlayerJoinEvent`) to react to gameplay.
  • Add a config file to customize messages.

Tips for success

  • Never run blocking I/O on the main thread. Use async tasks for database or web calls.
  • Keep logs informative but not spammy.
  • Start small; iterate with version control.

With this foundation, you can build commands, events, and features tailored to your server. In the next article, we’ll expand this into a `/home` plugin.

👤

About HostChicken Editorial Team

HostChicken Editorial Team contributes to the HostChicken guides, helping gamers master their servers.

Related Guides

25 article ideas for your Minecraft hosting app
2 min read
Minecraft Hosting
Auto-hibernation and scheduling: save resources with smart start/stop
3 min read
Minecraft Hosting
Backups and world management: save, restore, and clone safely
3 min read

Enjoyed This Guide?

Subscribe to get more Minecraft server tips and tutorials delivered to your inbox.