Project setup
JDK 25
The API jar is compiled at class file 69 — Java 25. Compile your plugin with JDK 25. Servers running this fork need 25 anyway, so an older toolchain is not a supported story.
The artifact
No meowmc-api artifact is published to any repository — there is no
<repository> URL or Gradle coordinate to write here. There are two real
compile targets, and which one you use depends on whether you touch the
org.meowmc namespaces:
- The
meowmc-apijar from a release — the only artifact that can resolveorg.meowmc.network.ClientVersion. Each release is one jar: see Installation. - Paper's published
paper-api26.3 — legitimate and sufficient for anything that touches only the compatible namespaces, because that surface is byte-identical to Paper's. A jar compiled against Paper's API loads on MeowMC unchanged.
The minimal plugin
A minimal plugin, compiling against org.bukkit only — true under either
target:
# plugin.yml
name: my-plugin
version: 1.0.0
main: com.example.myplugin.MyPlugin
api-version: '26.3'
package com.example.myplugin;
import org.bukkit.plugin.java.JavaPlugin;
public final class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("my-plugin enabled");
}
}
Build tool snippets
Nothing below resolves a meowmc-api coordinate, because none exists: include
the api jar from target 1 as a file dependency when you need ClientVersion,
otherwise depend on paper-api 26.3.
// build.gradle.kts — compiles against the paper-api coordinate (only)
repositories {
mavenCentral()
}
dependencies {
compileOnly("io.papermc.paper:paper-api:26.3-R0.1-SNAPSHOT")
}
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>26.3-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>