← Plugins · HyPrison Core

API Examples

Copy-paste Java examples for integrating your plugin with HyPrison Core. See Developers & API for the full reference (economy methods, placeholder list, services). All examples assume you run on the main/server thread unless your engine allows otherwise.

1. Economy API

1.1 Shop purchase (withdraw)

import com.hyprisoncore.HyPrisonCorePlugin;
import com.hyprisoncore.economy.EconomyService;
import java.util.UUID;

public void onPlayerBuyItem(UUID playerUuid, String itemName, long price) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null || !plugin.isEconomyEnabled()) {
        return;
    }
    EconomyService economy = plugin.getEconomyService();

    if (!economy.hasAtLeast(playerUuid, price)) {
        sendMessage(playerUuid, "Not enough money. You need " + economy.formatCurrency(price) + ".");
        return;
    }
    if (economy.withdraw(playerUuid, price, "Shop: " + itemName)) {
        giveItemToPlayer(playerUuid, itemName);
        sendMessage(playerUuid, "Purchased! New balance: " + economy.formatCurrency(economy.getBalance(playerUuid)));
    }
}

1.2 Reward or refund (deposit)

public void rewardPlayer(UUID playerUuid, long amount, String reason) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null || !plugin.isEconomyEnabled()) return;
    EconomyService economy = plugin.getEconomyService();

    economy.deposit(playerUuid, amount, reason);
    sendMessage(playerUuid, "You received " + economy.formatCurrency(amount) + " (" + reason + ").");
}

1.3 Display balance and format currency

public String getBalanceLine(UUID playerUuid) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null || !plugin.isEconomyEnabled()) return "Economy disabled";
    EconomyService economy = plugin.getEconomyService();

    long balance = economy.getBalance(playerUuid);
    return "Balance: " + economy.formatCurrency(balance);
}

1.4 Top balances (e.g. custom baltop UI)

import java.util.List;
import java.util.Map;

public void showTopBalances(Player viewer, int limit) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null || !plugin.isEconomyEnabled()) return;
    EconomyService economy = plugin.getEconomyService();

    List<Map.Entry<UUID, Long>> top = economy.topBalances(Math.min(limit, 20));
    for (int i = 0; i < top.size(); i++) {
        Map.Entry<UUID, Long> entry = top.get(i);
        String name = plugin.getRankService().getPlayerDisplayName(entry.getKey());
        String formatted = economy.formatCurrency(entry.getValue());
        sendMessage(viewer, (i + 1) + ". " + name + " — " + formatted);
    }
}

1.5 Transfer between players

public boolean payPlayer(UUID fromUuid, UUID toUuid, long amount) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null || !plugin.isEconomyEnabled()) return false;
    EconomyService economy = plugin.getEconomyService();

    return economy.transfer(fromUuid, toUuid, amount);
}

1.6 Admin: set balance

public void setPlayerBalance(UUID playerUuid, long newBalance, String reason) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null || !plugin.isEconomyEnabled()) return;
    EconomyService economy = plugin.getEconomyService();

    economy.setBalance(playerUuid, newBalance, reason);
}

2. Placeholder API

2.1 Scoreboard line (UUID only)

import com.hyprisoncore.placeholder.PlaceholderService;

public String buildScoreboardLine(UUID playerUuid, String template) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null) return template;
    PlaceholderService placeholders = plugin.getPlaceholderService();

    return placeholders.resolve(playerUuid, template);
}

// Usage: buildScoreboardLine(player.getUuid(), "Balance: {balance} | Rank: {rank} | Tokens: {tokens}");

2.2 Scoreboard line with mine info (use Player)

import com.hypixel.hytale.server.core.entity.entities.Player;

public String buildScoreboardLineWithMine(Player player, String template) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null) return template;
    PlaceholderService placeholders = plugin.getPlaceholderService();

    return placeholders.resolve(player, template);
}

// Usage: buildScoreboardLineWithMine(player, "Mine: {mine} | Progress: {progress}% | Balance: {balance}");

2.3 Custom replacement with placeholder map

import java.util.Map;

public Map<String, String> getPlaceholderMap(UUID playerUuid, Player playerOrNull) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null) return Map.of();
    PlaceholderService placeholders = plugin.getPlaceholderService();

    return placeholders.buildPlaceholders(playerUuid, playerOrNull);
}

3. Rank API

3.1 Get player rank and prefix

import com.hyprisoncore.rank.RankService;

public String getPlayerRankPrefix(UUID playerUuid) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null) return "";
    return plugin.getRankService().getPrefixText(playerUuid);
}

public String getPlayerRankId(UUID playerUuid) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null) return "";
    return plugin.getRankService().getRankId(playerUuid);
}

3.2 Sell multiplier (e.g. custom sell plugin)

public double getSellMultiplier(UUID playerUuid) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null) return 1.0;
    return plugin.getRankService().getSellMultiplier(playerUuid);
}

// Use: long finalReward = (long) (baseReward * getSellMultiplier(playerUuid));
// economy.deposit(playerUuid, finalReward, "CustomSell");

3.3 Check if player can afford rank-up

import com.hyprisoncore.config.PlayerProgress;
import com.hyprisoncore.config.RankDefinition;

public boolean canAffordRankUp(UUID playerUuid) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null || !plugin.isEconomyEnabled()) return false;
    RankService rankService = plugin.getRankService();
    EconomyService economy = plugin.getEconomyService();

    PlayerProgress progress = rankService.getProgress(playerUuid);
    RankDefinition next = rankService.getNextRank(progress.rankId);
    if (next == null) return false;
    long cost = rankService.effectiveRankCost(next);
    return cost > 0 && economy.hasAtLeast(playerUuid, cost);
}

4. Mine API

4.1 Get mine at player's current position

import com.hyprisoncore.config.MineDefinition;
import java.util.Optional;

public Optional<MineDefinition> getMineAtPlayer(Player player) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null || !plugin.isMinesEnabled()) return Optional.empty();
    return plugin.getMineService().resolveMineAtPlayer(player);
}

4.2 List mines a player can access

import java.util.List;

public List<String> getAccessibleMineNames(UUID playerUuid) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null || !plugin.isMinesEnabled()) return List.of();
    RankService rankService = plugin.getRankService();
    com.hyprisoncore.mine.MineService mineService = plugin.getMineService();

    String rankId = rankService.getRankId(playerUuid);
    String prestigeId = rankService.getPrestigeId(playerUuid);
    return mineService.getMineNames(rankId, prestigeId);
}

4.3 Get mine block composition

import java.util.Map;

public Map<String, Double> getMineComposition(String mineName) {
    HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
    if (plugin == null) return Map.of();
    return plugin.getMineService().getComposition(mineName);
}

5. Feature checks

HyPrisonCorePlugin plugin = HyPrisonCorePlugin.get();
if (plugin == null) return;

if (plugin.isEconomyEnabled()) { /* use getEconomyService() */ }
if (plugin.isMinesEnabled())  { /* use getMineService() */ }
if (plugin.isPlotsEnabled()) { /* use getPlotManager() */ }
if (plugin.isWarpsEnabled())  { /* use getWarpService() */ }
if (plugin.isCratesEnabled()) { /* use getCrateService() */ }
if (plugin.isNpcsEnabled())   { /* use getNpcManager() */ }
if (plugin.isHologramsEnabled()) { /* use getHologramManager() */ }
if (plugin.isPickaxeEnabled()) { /* use getPickaxeService() */ }

6. Packages

ClassPackage
HyPrisonCorePlugincom.hyprisoncore.HyPrisonCorePlugin
EconomyServicecom.hyprisoncore.economy.EconomyService
PlaceholderServicecom.hyprisoncore.placeholder.PlaceholderService
RankServicecom.hyprisoncore.rank.RankService
MineServicecom.hyprisoncore.mine.MineService
MineDefinitioncom.hyprisoncore.config.MineDefinition
PlayerProgresscom.hyprisoncore.config.PlayerProgress
Player (Hytale)com.hypixel.hytale.server.core.entity.entities.Player

PlotManager, WarpService, CrateService, NpcManager, HologramManager: get via plugin.getPlotManager(), plugin.getWarpService(), etc.

HyPrison Core by DrSmoker / Highwater Studios LLC. Premium license — one key per server. For licensing: Discord — drsmokerttv.