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

Extension Runtime Commands

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 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.