✅[1.21 - 1.21.8] Emerald Currency - New Era Economy & Bank
1.0.2High-performance economy plugin for PaperMC servers that uses the vanilla Emerald item as its core c
KartaEmeraldCurrency
KartaEmeraldCurrency is a modern, high-performance economy plugin for PaperMC servers that uses the vanilla Emerald item as its core currency. It features a virtual bank system, interactive GUIs, and a powerful developer API, making it a versatile and stable choice for any server.
Built to be efficient and safe, all database operations are handled asynchronously to prevent server lag.
Compatibility: PaperMC 1.21 – 1.21.8 (Java 21+)
Features
- Emerald-Based Economy: Uses physical Emeralds for deposits and withdrawals.
- Virtual Bank: Securely store your emeralds in a virtual bank account, safe from inventory loss.
- Interactive GUI: A modern and easy-to-use GUI for all common actions, accessible via /emerald.
- Main Menu: Shows a summary of your account balance.
- Bank GUI: A dedicated interface for depositing and withdrawing emeralds. You can deposit all emeralds from your inventory with one click, or deposit/withdraw a custom amount by entering the value in chat.
- Vault Integration: Can act as the primary economy provider for any Vault-compatible plugin.
- PlaceholderAPI Support: A full set of placeholders to display economic data on scoreboards, chat, etc.
- Developer API: A clean, asynchronous API for other plugins to interact with the economy.
- Async & Performant: All database I/O is asynchronous to ensure your server remains lag-free.
- Configurable: Almost every aspect, from fees to messages, can be customized.
Installation
- Download the latest release from the Releases page.
- Place the KartaEmeraldCurrency-x.x.x.jar file into your server's /plugins directory.
- Restart your server. The default configuration files will be generated in /plugins/KartaEmeraldCurrency/.
Commands & Permissions
User Commands (/emerald or /kec)
The primary way to interact with the economy is through the main GUI (/emerald). While some direct commands may exist, the GUI provides access to all features, including the Bank, Transfers, and Leaderboards.
Command Permission Description
/emerald kec.gui Opens the main interactive GUI.
/emerald balance kec.balance Shows your current bank, wallet, and total balance.
/emerald pay <player> <amount> kec.pay Pays another player from your bank account.
/emerald deposit <amount> kec.deposit Deposits physical emeralds into your bank.
/emerald withdraw <amount> kec.withdraw Withdraws emeralds from your bank to your inventory.
/emerald top kec.top Shows the leaderboard of the richest players.
/emerald help kec.help Displays a help message.
Admin Commands (/emeraldadmin or /kecadmin)
All admin commands require the base permission kec.admin or granular permissions.
Command Permission Description
/kecadmin set <player> <amount> kec.admin.set Sets a player's bank balance.
/kecadmin add <player> <amount> kec.admin.add Adds to a player's bank balance.
/kecadmin remove <player> <amount> kec.admin.remove Removes from a player's bank balance.
/kecadmin give <player> <amount> kec.admin.give Gives a player physical emeralds.
/kecadmin take <player> <amount> kec.admin.take Takes physical emeralds from a player.
/kecadmin reload kec.admin.reload Reloads the configuration files.
/kecadmin migrate <source_type> kec.admin.migrate Migrates data from one storage type to another (e.g., SQLITE to MYSQL).
Placeholders
Requires PlaceholderAPI.
- %kartaemerald_balance% - Player's total bank balance.
- %kartaemerald_balance_formatted% - Player's bank balance, formatted with suffixes (e.g., 1.2k).
- %kartaemerald_balance_comma% - Player's bank balance, formatted with commas (e.g., 1,234,567).
- %kartaemerald_bank% - An alias for %kartaemerald_balance%.
- %kartaemerald_wallet% - Player's physical emerald count in their inventory.
- %kartaemerald_top_<1-10>_name% - (Not yet implemented) Name of the Nth player on the leaderboard.
- %kartaemerald_top_<1-10>_amount% - (Not yet implemented) Balance of the Nth player on a leaderboard.
Note on custom placeholders: In configuration files (gui.yml, messages.yml), you can use context-specific placeholders. These use the <placeholder_name> format, which is compatible with the MiniMessage library. For example, in the leaderboard GUI, you can use <rank>, <player_name>, and <balance>.
Developer API
KartaEmeraldCurrency provides a clean, easy-to-use API for developers. All data-related methods are asynchronous and return a CompletableFuture.
Accessing the API
First, get the service from Bukkit's ServicesManager.
import com.minekarta.kec.api.KartaEmeraldService;
import org.bukkit.Bukkit;
import org.bukkit.plugin.RegisteredServiceProvider;
public class MyPlugin {
private KartaEmeraldService economyService;
public void onEnable() {
RegisteredServiceProvider<KartaEmeraldService> rsp = Bukkit.getServicesManager().getRegistration(KartaEmeraldService.class);
if (rsp != null) {
this.economyService = rsp.getProvider();
}
}
}
Example Usage: Paying a Player
import com.minekarta.kec.api.TransferReason;
public void rewardPlayer(Player player, long amount) {
if (economyService != null) {
// Transfer from no one (server) by using a null UUID for the 'from' parameter is not supported.
// Instead, use the addBankBalance method for server-to-player transactions.
economyService.addBankBalance(player.getUniqueId(), amount).thenAccept(success -> {
if (success) {
player.sendMessage("You have been rewarded " + amount + " emeralds!");
}
});
}
}Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta