-
Notifications
You must be signed in to change notification settings - Fork 60
Developer API
Ján Kluka edited this page Jul 29, 2022
·
24 revisions
If you would like to see how to create your own custom enchant head over here
- UltraPrisonPlayerEnchantEvent
- PlayerAutomineEvent
- PlayerAutoMinerTimeReceiveEvent
- PlayerGemsLostEvent
- PlayerGemsReceiveEvent
- PlayerTokensReceiveEvent
- PlayerTokensLostEvent
- PlayerRankUpEvent
- PlayerPrestigeEvent
- UltraPrisonBlockBreakEvent
- UltraPrisonAutoSellEvent
- UltraPrisonSellAllEvent
- GangCreateEvent
- GangDisbandEvent
- GangJoinEvent
- GangLeaveEvent
- MineCreateEvent
- MineDeleteEvent
- MinePreResetEvent
- MinePostResetEvent
- PlayerMultiplierReceiveEvent
- PlayerMultiplierExpireEvent
- LayerTriggerEvent
- NukeTriggerEvent
- ExplosionTriggerEvent
package dev.drawethree.ultraprisoncore.autosell.api;
import dev.drawethree.ultraprisoncore.autosell.model.SellRegion;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.Collection;
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 ItemStack in specified mine region
*
* @param regionName Name of region
* @param item ItemStack
* @return Price for item
*/
double getPriceForItem(String regionName, ItemStack item);
/**
* Method to get if player has autosell enabled
*
* @param p Player
* @return true if player has autosell enabled, otherwise false
*/
boolean hasAutoSellEnabled(Player p);
/**
* Method to get all sell regions
*
* @return Collection of all loaded and active Sell Regions
*/
Collection<SellRegion> getSellRegions();
/**
* Method to get SellRegion at specified location
*
* @return Sell Region at given location or null if not present.
*/
SellRegion getSellRegionAtLocation(Location location);
}package dev.drawethree.ultraprisoncore.autominer.api;
import org.bukkit.entity.Player;
public interface UltraPrisonAutoMinerAPI {
/**
* Returns true if player is in autominer region, otherwise return false
*
* @param player Player
* @return returns true if player is in autominer region, otherwise return false
*/
boolean isInAutoMinerRegion(Player player);
/**
* Returns remaining autominer time in seconds for specific player
*
* @param player Player
* @return time in seconds left for specific player autominer
*/
int getAutoMinerTime(Player player);
}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 set enchant with specific level to ItemStack
* @param item ItemStack
* @param id Enchant ID
* @param level Enchant Level
* @return modified ItemStack
*/
ItemStack setEnchantLevel(ItemStack item, int id, int level);
/**
* Method to remove custom enchant from ItemStack
* @param item ItemStack
* @param id Enchant ID
* @return modified ItemStack
*/
ItemStack removeEnchant(ItemStack item, int id);
/**
* Method to get Enchant by ID
* @param id enchant id
* @return UltraPrisonEnchantment
*/
UltraPrisonEnchantment getById(int id);
/**
* Method to get Enchant by ID
* @param rawName enchant rawname
* @return UltraPrisonEnchantment
*/
UltraPrisonEnchantment getByName(String rawName);
}package me.drawethree.ultraprisoncore.gems.api;
import me.drawethree.ultraprisoncore.api.enums.ReceiveCause;
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 Player
* @param amount amount
* @param cause - Represents why player get these gemes
*/
void addGems(OfflinePlayer p, long amount, ReceiveCause cause);
}package me.drawethree.ultraprisoncore.multipliers.api;
import me.drawethree.ultraprisoncore.multipliers.enums.MultiplierType;
import me.drawethree.ultraprisoncore.multipliers.multiplier.GlobalMultiplier;
import me.drawethree.ultraprisoncore.multipliers.multiplier.Multiplier;
import me.drawethree.ultraprisoncore.multipliers.multiplier.PlayerMultiplier;
import org.bukkit.entity.Player;
public interface UltraPrisonMultipliersAPI {
/**
* Method to get current global sell multiplier
*
* @return global multiplier value
*/
GlobalMultiplier getGlobalSellMultiplier();
/**
* Method to get current global token multiplier
*
* @return global multiplier value
*/
GlobalMultiplier getGlobalTokenMultiplier();
/**
* Method to get player's sell multiplier
*
* @param p Player
* @return vote multiplier
*/
PlayerMultiplier getSellMultiplier(Player p);
/**
* Method to get player's token multiplier
*
* @param p Player
* @return vote multiplier
*/
PlayerMultiplier getTokenMultiplier(Player p);
/**
* Method to get player's rank multiplier
*
* @param p Player
* @return rank multiplier
*/
Multiplier getRankMultiplier(Player p);
/**
* Method to get overall player's multiplier based on multiplier type (SELL / TOKENS)
*
* @param p Player
* @param multiplierType MultiplierType.SELL or MultiplierType.TOKENS
* @return overall player's multiplier
*/
double getPlayerMultiplier(Player p, MultiplierType multiplierType);
/**
* Method to calculate total amount to deposit (tokens / money )
*
* @param p Player
* @param deposit original amount to deposit
* @param type MultiplierType.SELL or MultiplierType.TOKENS
* @return new amount to deposit
*/
default double getTotalToDeposit(Player p, double deposit, MultiplierType type) {
return deposit * (1.0 + this.getPlayerMultiplier(p, type));
}
}package me.drawethree.ultraprisoncore.ranks.api;
import me.drawethree.ultraprisoncore.ranks.model.Rank;
import org.bukkit.entity.Player;
public interface UltraPrisonRanksAPI {
/**
* Method to get player Rank
*
* @param p Player
* @return Rank
*/
Rank getPlayerRank(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);
/**
* Sets a rank to online player
*
* @param player Player
* @param rank Rank
*/
void setPlayerRank(Player player, Rank rank);
}package me.drawethree.ultraprisoncore.prestiges.api;
import me.drawethree.ultraprisoncore.prestiges.model.Prestige;
import org.bukkit.entity.Player;
public interface UltraPrisonPrestigesAPI {
/**
* Method to get player Prestige
*
* @param p Player
* @return Prestige
*/
Prestige getPlayerPrestige(Player p);
/**
* Sets a prestige to online player
*
* @param player Player
* @param prestige Prestige
*/
void setPlayerPrestige(Player player, Prestige prestige);
/**
* Sets a prestige to online player
*
* @param player Player
* @param prestige Prestige
*/
void setPlayerPrestige(Player player, long prestige);
}package me.drawethree.ultraprisoncore.tokens.api;
import me.drawethree.ultraprisoncore.api.enums.LostCause;
import me.drawethree.ultraprisoncore.api.enums.ReceiveCause;
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, LostCause cause);
/**
* Method to add tokens to player
* @param p Player
* @param amount amount
* @param cause - Represents why player get these tokens
*/
void addTokens(OfflinePlayer p, long amount, ReceiveCause cause);
}package dev.drawethree.ultraprisoncore.gangs.api;
import dev.drawethree.ultraprisoncore.gangs.model.Gang;
import org.bukkit.OfflinePlayer;
import java.util.Collection;
import java.util.Optional;
public interface UltraPrisonGangsAPI {
/**
* Method to get Gang from player
*
* @param player OfflinePlayer
* @return Optional<Gang> gang
*/
Optional<Gang> getPlayerGang(OfflinePlayer player);
/**
* Method to get Gang from name
*
* @param name name of gang
* @return Optional<Gang> gang
*/
Optional<Gang> getByName(String name);
/**
* Method to get all gangs
*
* @return List of gangs
*/
Collection<Gang> getAllGangs();
}package dev.drawethree.ultraprisoncore.pickaxelevels.api;
import dev.drawethree.ultraprisoncore.pickaxelevels.model.PickaxeLevel;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public interface UltraPrisonPickaxeLevelsAPI {
/**
* Method to get PickaxeLevel of itemstack
*
* @param item ItemStack
* @return instance of PickaxeLevel
*/
PickaxeLevel getPickaxeLevel(ItemStack item);
/**
* Method to get PickaxeLevel of Player
*
* @param player Player
* @return instance of PickaxeLevel
*/
PickaxeLevel getPickaxeLevel(Player player);
/**
* Method to get PickaxeLevel by specific level
*
* @param level level
* @return instance of PickaxeLevel
*/
PickaxeLevel getPickaxeLevel(int level);
/**
* Method to set PickaxeLevel of itemstack
*
* @param player Player
* @param item ItemStack to change
* @param level PickaxeLevel to set
*/
void setPickaxeLevel(Player player, ItemStack item, PickaxeLevel level);
/**
* Method to set PickaxeLevel of itemstack
*
* @param player Player
* @param item ItemStack to change
* @param level level to set
*/
void setPickaxeLevel(Player player, ItemStack item, int level);
}package me.drawethree.ultraprisoncore.mines.api;
import me.drawethree.ultraprisoncore.mines.model.mine.Mine;
import org.bukkit.Location;
public interface UltraPrisonMinesAPI {
/**
* Gets a mine by name
* @param name String
* @return Mine.class
*/
Mine getMineByName(String name);
/**
* Gets a mine by location
* @param loc Location
* @return Mine.class
*/
Mine getMineAtLocation(Location loc);
}package me.drawethree.ultraprisoncore.history.api;
import me.drawethree.ultraprisoncore.UltraPrisonModule;
import me.drawethree.ultraprisoncore.history.model.HistoryLine;
import org.bukkit.OfflinePlayer;
import java.util.List;
public interface UltraPrisonHistoryAPI {
/**
* Gets players history
*
* @param player Player
* @return List containing all HistoryLine.class of Player
*/
List<HistoryLine> getPlayerHistory(OfflinePlayer player);
/**
* Creates a new history line for player
*
* @param player Player
* @param context Context of the history
* @param module UltraPrisonModule associated with the history
*/
void createHistoryLine(OfflinePlayer player, UltraPrisonModule module, String context);
}- config.yml
- autominer.yml
- autosell.yml
- block-rewards.yml
- enchants.yml
- currencies.yml
- multipliers.yml
- ranks.yml
- prestiges.yml
- pickaxe-levels.yml
- pickaxe-skins.yml
- gangs.yml
- mines.yml
- bombs.yml
- blocks.yml
- mining-stats.yml
- rebirths.yml
- autosell.json
- blessing.json
- blockbooster.json
- charity.json
- efficiency.json
- explosive.json
- fly.json
- fortune.json
- gangvaluefinder.json
- gemfinder.json
- haste.json
- jumpboost.json
- keyalls.json
- keyfinder.json
- laserbeam.json
- layer.json
- nightvision.json
- nuke.json
- prestigefinder.json
- salary.json
- speed.json
- tokenfinder.json
- unbreaking.json
- voucherfinder.json
- robotfinder.json
- gem-merchant.json
- token-merchant.json
- custom-enchant.json
- custom-currency-enchant.json
