Prerequisites
This guide assumes you have written a little Java before, but not necessarily that you have made a Minecraft plugin. By the end of the Entry Level guide you will have a working WaterdogPE plugin that you can drop into the proxy's plugins/ folder.
What you will need
- A Java 17 (or newer) JDK. WaterdogPE itself runs on Java 17, and your plugin must target the same version. Make sure you install a JDK (which can compile code), not just a JRE.
- An IDE that supports Maven. We recommend IntelliJ IDEA (the free Community Edition is enough) or Eclipse. IntelliJ has excellent Maven integration and is what most WaterdogPE developers use.
- An internet connection, so Maven can download the WaterdogPE API and its dependencies the first time you build.
How a plugin is structured
A WaterdogPE plugin is just a .jar file with two required pieces:
- A main class that extends
dev.waterdog.waterdogpe.plugin.Pluginand overrides at least theonEnable()method. This is the entry point the proxy calls when it loads your plugin. - A
plugin.ymlfile (placed insrc/main/resources/) that tells the proxy your plugin's name, version and which class is the main class.
A typical project looks like this:
my-plugin/
├── pom.xml ← Maven build file
└── src/
└── main/
├── java/
│ └── com/example/myplugin/
│ └── MyPlugin.java ← your main class
└── resources/
├── plugin.yml ← plugin descriptor
└── config.yml ← (optional) default configpom.xmlis the Maven build file. It declares the WaterdogPE dependency and tells Maven how to compile your plugin into a runnable.jar.MyPlugin.javais your main class. It is usually named after the plugin.plugin.ymlholds the basic information the proxy needs to load the plugin.config.ymlis optional — a configuration file your users can edit to change how the plugin behaves.
Next steps
- Maven Setup — set up the
pom.xmlso Maven can build your plugin. - Your First Plugin — write the main class and
plugin.yml, then build and load it.
After that, the Plugin API section covers the things plugins actually do: commands, events, working with players, scheduling tasks and more.
