MCEconomy PaperMC
PaperMC runtime module for MCEconomy. It initializes the database backend,
boots MCEconomyProvider, and controls extension lifecycle through
MCExtensionManager.
Version: 2026.0.4-3
Runtime Overview
- Database backend from
config.yml:sqliteormysql. - Extension jars path:
plugins/MCEconomy/extensions/libs/*.jar. - Extension configs path:
plugins/MCEconomy/extensions/configs/.
Extension Runtime Commands
/mceconomy list/mceconomy reload <id>/mceconomy reloadall/mceconomy disable <id>
Permission node: mcextension.admin
Required Provider Usage
All extension logic must consume economy functionality from
MCEconomyProvider only. Do not call platform internals directly.
import io.github.mcclauneck.mceconomy.common.MCEconomyProvider;
MCEconomyProvider provider = MCEconomyProvider.getInstance();
if (provider == null) return;
provider.getCoin(playerUuid, "player")
.thenAccept(balance -> logger.info("Balance: " + balance));
Extension Metadata
Each extension jar must include extension.yml in jar root.
name: ExampleExtension
main: com.example.mceconomy.extension.ExampleExtension
version: 1.0.0
extension:
depend: []
Additional Git metadata example:
git:
provider: github or gitlab
owner: your-org
repository: your-repo
- Example extensions: MCClauneck-Extension
Example Extension Class (IMCExtension)
Implement IMCExtension to register your extension lifecycle hooks.
package com.example.mceconomy.extension;
import io.github.mcclauneck.mcextension.api.IMCExtension;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.concurrent.Executor;
public final class ExampleExtension implements IMCExtension {
@Override
public void onLoad(JavaPlugin plugin, Executor executor) {
plugin.getLogger().info("[ExampleExtension] Loaded");
}
@Override
public void onDisable(JavaPlugin plugin, Executor executor) {
plugin.getLogger().info("[ExampleExtension] Disabled");
}
}
Import MCEconomy PaperMC
Maven
<repositories>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/MCClauneck/plugin-papermc</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>io.github.mcclauneck</groupId>
<artifactId>mceconomy-papermc</artifactId>
<version>2026.0.4-3</version>
<scope>provided</scope>
</dependency>
</dependencies>
Gradle (Groovy)
repositories {
mavenCentral()
maven {
url = uri("https://maven.pkg.github.com/MCClauneck/plugin-papermc")
credentials {
username = System.getenv('GITHUB_ACTOR') ?: System.getenv('AGENT_NAME') ?: System.getenv('USER_GITHUB_NAME')
password = System.getenv('GITHUB_TOKEN') ?: System.getenv('AGENT_TOKEN') ?: System.getenv('USER_GITHUB_TOKEN')
}
}
}
dependencies {
compileOnly 'io.github.mcclauneck:mceconomy-papermc:2026.0.4-3'
}
Gradle (Kotlin)
repositories {
mavenCentral()
maven {
url = uri("https://maven.pkg.github.com/MCClauneck/plugin-papermc")
credentials {
username = System.getenv("GITHUB_ACTOR") ?: System.getenv("AGENT_NAME") ?: System.getenv("USER_GITHUB_NAME")
password = System.getenv("GITHUB_TOKEN") ?: System.getenv("AGENT_TOKEN") ?: System.getenv("USER_GITHUB_TOKEN")
}
}
}
dependencies {
compileOnly("io.github.mcclauneck:mceconomy-papermc:2026.0.4-3")
}
Relocated Dependencies
The PaperMC plugin shades a subset of its dependencies via shadowJar
to prevent classpath conflicts. The relocations defined in build.gradle
move any references from io.github.mcengine and
com.zaxxer
under the io.github.mcclauneck namespace before
publishing the final jar.