Skip to content

Developer API

Ján Kluka edited this page Jan 15, 2021 · 31 revisions

You can only use API and events of modules you have enabled in your config.yml!

Events

UltraPrisonPlayerEvent

  • UltraPrisonPlayerEnchantEvent
  • UltraPrisonPlayerGemsReceiveEvent
  • UltraPrisonPlayerTokensReceiveEvent

UltraPrisonBlockBreakEvent

UltraPrisonAutoSellEvent

API


Auto-Sell

package me.drawethree.ultraprisoncore.autosell.api;

import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.codemc.worldguardwrapper.region.IWrappedRegion;

public interface UltraPrisonAutoSellAPI {

    /**
     * Method to get current earnings of player
     *
     * @param player Player
     * @return Current earnings
     */
    double getCurrentEarnings(Player player);

    /**
     * Method to get price for broken block in specified mine region
     * @param region IWrappedRegion
     * @param block Block
     * @return Price for broken block
     */
    double getPriceForBrokenBlock(IWrappedRegion region, Block block);

    /**
     * Method to get if player has autosell enabled
     * @param p Player
     * @return true if player has autosell enabled, otherwise false
     */
    boolean hasAutoSellEnabled(Player p);
}

Enchants

package me.drawethree.ultraprisoncore.enchants.api;

import me.drawethree.ultraprisoncore.enchants.enchants.UltraPrisonEnchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;

import java.util.HashMap;

public interface UltraPrisonEnchantsAPI {


    /**
     * Method to get all custom enchants applied on specific ItemStack
     *
     * @param itemStack ItemStack
     * @return
     */
    HashMap<UltraPrisonEnchantment, Integer> getPlayerEnchants(ItemStack itemStack);

    /**
     * Method to check if player has specific enchant on his current item in hand
     * @param p Player
     * @param id Enchant ID
     * @return true if player has specified enchant
     */
    boolean hasEnchant(Player p, int id);

    /**
     * Method to get enchant level of specific ItemStack
     * @param item ItemStack
     * @param id Enchant ID
     * @return 0 if enchant was not found, otherwise level of enchant
     */
    int getEnchantLevel(ItemStack item, int id);

    /**
     * Method to add custom enchant to ItemStack
     * @param item ItemStack
     * @param p Player
     * @param id Enchant ID
     * @param level Enchant Level
     * @return modified ItemStack
     */
    ItemStack addEnchant(ItemStack item, Player p, int id, int level);

    /**
     * Method to remove custom enchant from ItemStack
     * @param item ItemStack
     * @param p Player
     * @param id Enchant ID
     * @return modified ItemStack
     */
    ItemStack removeEnchant(ItemStack item, Player p, int id);

    /**
     * @deprecated NOT CURRENTLY WORKING!
     * Method to register new enchantment
     * @param enchantment Enchant
     * @return true if enchant was registered properly
     */
    boolean registerEnchant(UltraPrisonEnchantment enchantment);
}

Gems

package me.drawethree.ultraprisoncore.gems.api;

import org.bukkit.OfflinePlayer;

public interface UltraPrisonGemsAPI {

	/**
	 * Method to get player gems
	 *
	 * @param p Player
	 * @return Player gems amount
	 */
	long getPlayerGems(OfflinePlayer p);

	/**
	 * Method to check if player has more or equal gems than specified amount
	 * @param p Player
	 * @param amount amount
	 * @return true if player has more or equal gems
	 */
	boolean hasEnough(OfflinePlayer p, long amount);

	/**
	 * Method to remove gems from player
	 * @param p Player
	 * @param amount amount
	 */
	void removeGems(OfflinePlayer p, long amount);

	/**
	 * Method to add gems to player
	 * @param p
	 * @param amount
	 */
	void addGems(OfflinePlayer p, long amount);
}

Multipliers

package me.drawethree.ultraprisoncore.multipliers.api;

import org.bukkit.entity.Player;

public interface UltraPrisonMultipliersAPI {


    /**
     * Method to get current global multiplier
     *
     * @return global multiplier value
     */
    double getGlobalMultiplier();

    /**
     * Method to get player's vote multiplier
     * @param p Player
     * @return vote multiplier
     */
    double getVoteMultiplier(Player p);

    /**
     * Method to get player's rank multiplier
     * @param p Player
     * @return rank multiplier
     */
    double getRankMultiplier(Player p);

    /**
     * Method to get overall player's multiplier
     * @param p Player
     * @return overall player's multiplier
     */
    double getPlayerMultiplier(Player p);

    /**
     * Method to calculate total amount to deposit
     * @param p Player
     * @param deposit original amount to deposit
     * @return new amount to deposit
     */
    default double getTotalToDeposit(Player p, double deposit) {
        return deposit * (1 + getPlayerMultiplier(p));
    }

}

Ranks

package me.drawethree.ultraprisoncore.ranks.api;


import me.drawethree.ultraprisoncore.ranks.rank.Prestige;
import me.drawethree.ultraprisoncore.ranks.rank.Rank;
import org.bukkit.entity.Player;

public interface UltraPrisonRankupAPI {

	/**
	 * Method to get player Rank
	 *
	 * @param p Player
	 * @return Rank
	 */
	Rank getPlayerRank(Player p);

	/**
	 * Method to get player Prestige
	 * @param p Player
	 * @return Prestige
	 */
	Prestige getPlayerPrestige(Player p);

	/**
	 * Method to get next player rank
	 * @param player Player
	 * @return null if he has max rank, otherwise next Rank
	 */
	Rank getNextPlayerRank(Player player);

	/**
	 * Method to get player's rankup progress
	 * @param player Player
	 * @return int 0-100 percentage
	 */
	int getRankupProgress(Player player);
}

Tokens

package me.drawethree.ultraprisoncore.tokens.api;

import org.bukkit.OfflinePlayer;

public interface UltraPrisonTokensAPI {


    /**
     * Method to get player's tokens
     *
     * @param p Player
     * @return amount of player's tokens
     */
    long getPlayerTokens(OfflinePlayer p);

    /**
     * Method to check if player has more or equal tokens than specified amount
     * @param p Player
     * @param amount amount
     * @return true if player has more or equal tokens than amount
     */
    boolean hasEnough(OfflinePlayer p, long amount);

    /**
     * Method to remove tokens from player
     * @param p Player
     * @param amount amount
     */
    void removeTokens(OfflinePlayer p, long amount);

    /**
     * Method to add tokens to player
     * @param p Player
     * @param amount amount
     */
    void addTokens(OfflinePlayer p, long amount);
}

XPrison Logo

General

Modules

Default Configs

Enchant Configs — Passive

Enchant Configs — Currency Rewards

Enchant Configs — Key & Item Rewards

Enchant Configs — Area of Effect

Enchant Configs — Multipliers

Enchant Configs — Templates

Enchant Configs — Addons

Addons

Support

For Developers

Others

Clone this wiki locally