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
| Class | Package |
|---|---|
| HyPrisonCorePlugin | com.hyprisoncore.HyPrisonCorePlugin |
| EconomyService | com.hyprisoncore.economy.EconomyService |
| PlaceholderService | com.hyprisoncore.placeholder.PlaceholderService |
| RankService | com.hyprisoncore.rank.RankService |
| MineService | com.hyprisoncore.mine.MineService |
| MineDefinition | com.hyprisoncore.config.MineDefinition |
| PlayerProgress | com.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.