Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.vegogame.businessv;
- import net.milkbowl.vault.economy.Economy;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerJoinEvent;
- public class BusHandler implements Listener {
- private static BusinessV plugin = BusinessV.getPlugin(BusinessV.class);
- private static FileConfiguration cfg = plugin.getConfig();
- //Получить общий доход/мин
- public static double getTotalIncome(Player p) {
- double inc = 0.0;
- for(int num = 1; num < getEnableBusAmount() + 1; num++) {
- if(Storage.has(p, num)) inc += Storage.getBusIncome(p, num);
- }
- return inc;
- }
- public static long getPassedTime(Player p, int num) {
- return (System.currentTimeMillis() - Storage.getLastTime(p, num)) / 60000;
- }
- //Получить кассу бизнеса, если прошло больше минимального порога времени
- public static double getIncome(Player p, int num) {
- int mintime = cfg.getInt("settings.min-time-collect"); // Минимальное время, спустя которое можно собрать кассу
- double busInc = 0.0;
- long curtime = System.currentTimeMillis();
- long lasttime = Storage.getLastTime(p, num);
- int passed = (int) (curtime - lasttime) / 60000;
- if(passed >= mintime) {
- busInc = Storage.getBusIncome(p, num) * getAllowedTime(p, passed); //Умножить доход/мин на кол-во прошедших минут, не заходящее за рамки max-time
- }
- return busInc;
- }
- //Забрать кассу с определённого бизнеса
- public static void giveIncome(Player p, int num) {
- double inc = getIncome(p, num);
- if(inc > 0.0) {
- giveMoney(p, inc);
- Storage.setLastTime(p, num);
- String collect_succes = cfg.getString("messages.collect-succes").replace("&", "\u00a7").replace("$name$", Storage.getBusName(num)).replace("$inc$", "" + inc);
- p.sendMessage(collect_succes);
- } else {
- int mintime = cfg.getInt("settings.min-time-collect");
- long passed = getPassedTime(p, num);
- String collect_fail = cfg.getString("messages.collect-fail").replace("&", "\u00a7").replace("$time$", "" + (mintime - passed));
- p.sendMessage(collect_fail);
- }
- }
- //Получить позволительное кол-во минут, чтобы умножить на него доход/мин
- private static int getAllowedTime(Player p, int passed) {
- for(int i = 4; i > 0; i--) {
- if(p.hasPermission("busv.time" + i)) {
- int max = cfg.getInt("settings.max-time.time" + i); //Макс. время накопления кассы
- if(passed < max) return passed;
- return max;
- }
- }
- int max = cfg.getInt("settings.max-time.default");
- if(passed < max) return passed;
- return max;
- }
- //Проветси операцию улучшения бизнеса
- public static void buyUpgrade(Player p, int num) {
- String on_max_lvl = cfg.getString("messages.on-max-lvl").replace("&", "\u00a7").replace("$name$", Storage.getBusName(num));
- String no_bus = cfg.getString("messages.no-bus").replace("&", "\u00a7");
- if(!Storage.has(p, num)) {
- p.sendMessage(no_bus);
- return;
- }
- int busLvl = Storage.getBusLevel(p, num);
- String succes_up = cfg.getString("messages.succes-up").replace("&", "\u00a7").replace("$name$", Storage.getBusName(num)).replace("$level$", "" + (busLvl + 1));
- if(busLvl != 10) {
- int price = Storage.getUpgradePrice(p, num);
- if(!takeMoney(p, price, "up", num)) return;
- Storage.upgradeBus(p, num);
- p.sendMessage(succes_up);
- } else p.sendMessage(on_max_lvl);
- }
- //Провести операцию приобретения
- public static void buyBus(Player p, int num) {
- if(!p.hasPermission("busv." + num)) {
- String no_perm = cfg.getString("messages.no-perm").replace("&", "\u00a7").replace("$name$", Storage.getBusName(num));
- p.sendMessage(no_perm);
- return;
- }
- String already_bought = cfg.getString("messages.already-bought").replace("&", "\u00a7").replace("$name$", Storage.getBusName(num));
- String succes_buy = cfg.getString("messages.succes-buy").replace("&", "\u00a7").replace("$name$", Storage.getBusName(num));
- if(!Storage.has(p, num)) {
- int price = Storage.getPurchasePrice(num);
- if(!takeMoney(p, price, "buy", num)) return;
- Storage.addBus(p, num);
- p.sendMessage(succes_buy);
- } else p.sendMessage(already_bought);
- }
- //Получить кол-во купленных игроком бизнесов
- public static int getPlayerBusNum(Player p) {
- int busAmount = 0;
- int enAmount = 13;
- for(int x = 1; x < enAmount+1; x++) {
- if(Storage.has(p, x)) busAmount++;
- }
- return busAmount;
- }
- //Снять у игрока сумму денег, если таковая имеется
- public static boolean takeMoney(Player p, double amount, String param, int num) {
- Economy ec = BusinessV.getEconomy();
- String no_money_up = cfg.getString("messages.no-money-up").replace("&", "\u00a7").replace("$name$", Storage.getBusName(num));
- String no_money_buy = cfg.getString("messages.no-money-buy").replace("&", "\u00a7").replace("$name$", Storage.getBusName(num));
- if(!ec.has(p, amount)) {
- if(param == "up") p.sendMessage(no_money_up + (int) (amount - ec.getBalance(p)));
- if(param == "buy") p.sendMessage(no_money_buy + (int) (amount - ec.getBalance(p)));
- return false;
- }
- ec.withdrawPlayer(p, amount);
- return true;
- }
- //Выдать игроку сумму денег
- public static void giveMoney(Player p, double amount) {
- Economy ec = BusinessV.getEconomy();
- ec.depositPlayer(p, amount);
- }
- //Получить кол-во действующих бизнесов
- public static int getEnableBusAmount() {
- return 13;
- }
- @EventHandler
- public void onJoin(PlayerJoinEvent e) {
- Storage.addPlayer(e.getPlayer());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment