Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package vegobusiness.main;
- import java.util.List;
- import org.bukkit.ChatColor;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.entity.Player;
- import com.earth2me.essentials.api.Economy;
- import com.earth2me.essentials.api.NoLoanPermittedException;
- import com.earth2me.essentials.api.UserDoesNotExistException;
- public class Commands implements CommandExecutor {
- private static Business plugin;
- public Commands(Business plugin) {
- Commands.plugin = plugin;
- }
- private Player p;
- @Override
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
- if(sender instanceof Player) this.p = (Player) sender;
- FileConfiguration cfg = plugin.getConfig();
- if(!(sender instanceof Player) && args.length == 0);
- if(args.length == 0) {
- msgSender(p, "help");
- return true;
- }
- switch(args[0]) {
- case "list":
- if(!(sender instanceof Player)) {
- sender.sendMessage("Эта команда только для Игроков!");
- return true;
- }
- if(args.length >= 2) {
- String no_args_list = cfg.getString("messages.no-args-list").replace("&", "\u00a7");
- int busAmount = getPlayerBus(p);
- if(busAmount == 0) {
- p.sendMessage(no_args_list);
- return true;
- }
- listSender(p, busAmount);
- return true;
- }
- List<String> list = cfg.getStringList("messages.list");
- for(String s : list) {
- s = s.replace("&", "\u00a7");
- int enAmount = getEnableBusAmount();
- for(int x = 1; x < enAmount+1; x++) {
- s = s.replace("$bus" + x + "$", cfg.getString("bus-names.bus" + x));
- s = s.replace("$inc" + x + "$", "" + cfg.getDouble("incomes.bus" + x + ".1"));
- if(x == 1) continue;
- s = s.replace("$price" + x + "$", "" + cfg.getDouble("bus-prices.bus" + x));
- }
- p.sendMessage(s);
- }
- return true;
- case "help":
- msgSender(p, "help");
- return true;
- case "upgrade":
- if(!(sender instanceof Player)) {
- sender.sendMessage("Эта команда только для Игроков!");
- return true;
- }
- if(args.length < 2) {
- String no_args = cfg.getString("messages.no-args").replace("&", "\u00a7");
- p.sendMessage(no_args);
- return true;
- }
- int enAmount2 = getEnableBusAmount();
- String invalid_up = cfg.getString("messages.invalid-up").replace("&", "\u00a7");
- for(int x = 1; x != enAmount2+1; x++) {
- if(args[1].length() > 2) {
- p.sendMessage(invalid_up);
- return true;
- }
- if(Integer.valueOf(args[1]) == x) {
- buyUpgrade(p, "bus" + x);
- return true;
- }
- }
- p.sendMessage(invalid_up);
- return true;
- case "buy":
- if(!(sender instanceof Player)) {
- sender.sendMessage("Эта команда только для Игроков!");
- return true;
- }
- if(args.length < 2) {
- String no_args = cfg.getString("messages.no-args").replace("&", "\u00a7");
- p.sendMessage(no_args);
- return true;
- }
- int enAmount3 = getEnableBusAmount();
- String invalid_up2 = cfg.getString("messages.invalid-up").replace("&", "\u00a7");
- for(int x = 1; x != enAmount3+1; x++) {
- if(args[1].length() > 2) {
- p.sendMessage(invalid_up2);
- return true;
- }
- if(Integer.valueOf(args[1]) == x) {
- buyBus(p, x);
- return true;
- }
- }
- String invalid_bus = cfg.getString("messages.invalid-bus").replace("&", "\u00a7");
- p.sendMessage(invalid_bus);
- return true;
- case "info":
- if(!(sender instanceof Player)) {
- sender.sendMessage("Эта команда только для Игроков!");
- return true;
- }
- if(args.length < 2) {
- String no_args = cfg.getString("messages.no-args").replace("&", "\u00a7");
- p.sendMessage(no_args);
- return true;
- }
- int enAmount4 = getEnableBusAmount();
- String invalid_up3 = cfg.getString("messages.invalid-up").replace("&", "\u00a7");
- for(int x = 1; x != enAmount4+1; x++) {
- if(args[1].length() > 2) {
- p.sendMessage(invalid_up3);
- return true;
- }
- if(Integer.valueOf(args[1]) == x) {
- if(!cfg.contains("players." + p.getName() + ".bus" + x)) {
- String invalid_info = cfg.getString("messages.invalid-info").replace("&", "\u00a7");
- p.sendMessage(invalid_info);
- return true;
- }
- infoSender(p, x);
- return true;
- }
- }
- String invalid_info = cfg.getString("messages.invalid-bus").replace("&", "\u00a7");
- p.sendMessage(invalid_info);
- return true;
- case "reload":
- if(sender instanceof Player) {
- if(!p.hasPermission("vegobus.admin")) return false;
- }
- plugin.reloadConfig();
- sender.sendMessage(ChatColor.GREEN + "Конфиг успешно перезагружен!");
- return true;
- case "reset":
- if(sender instanceof Player) {
- if(!p.hasPermission("levels.admin")) return false;
- }
- String pname = args[1];
- for(int x = 2; x < getEnableBusAmount()+1; x++) {
- cfg.set("players." + pname + ".bus" + x, null);
- }
- cfg.set("players." + pname + ".bus1", 1);
- cfg.set("players." + pname + ".bus5", null);
- plugin.saveConfig();
- sender.sendMessage(ChatColor.GREEN + "Игрок успешно обнулен");
- return true;
- case "add":
- if(sender instanceof Player) {
- if(!p.hasPermission("levels.admin")) return false;
- }
- String plname = args[1];
- String bus = args[2];
- String lvl = args[3];
- cfg.set("players." + plname + "." + bus, Integer.parseInt(lvl));
- plugin.saveConfig();
- sender.sendMessage(ChatColor.GREEN + "Игроку успешно добавлен бизнес");
- return true;
- case "del":
- if(sender instanceof Player) {
- if(!p.hasPermission("levels.admin")) return false;
- }
- String playname = args[1];
- String busToDel = args[2];
- cfg.set("players." + playname + "." + busToDel, null);
- plugin.saveConfig();
- sender.sendMessage(ChatColor.GREEN + "У игрока успешно удален бизнес");
- case "getincome":
- String busg = args[1]; // Business number to collect income
- int mintime = cfg.getInt("settings.min-time-collect"); // Minimum time in mins to collect money
- if(!cfg.contains("players." + p.getName() + ".bus" + busg)) {
- p.sendMessage(cfg.getString("messages.no-bus"));
- return true;
- }
- if(!cfg.contains("players." + p.getName() + ".lasttime" + busg)) {
- cfg.set("players." + p.getName() + ".lasttime" + busg, System.currentTimeMillis() - (mintime * 60000));
- plugin.saveConfig();
- giveIncome(p, Integer.parseInt(busg));
- return true;
- }
- giveIncome(p, Integer.parseInt(busg));
- // long curtime = System.currentTimeMillis();
- // long lasttime = cfg.getLong("players." + p.getName() + ".lasttime" + busg);
- //
- // if(curtime >= lasttime + (mintime * 60000)) {
- // int busLvl = cfg.getInt("players." + p.getName() + ".bus"+busg);
- // double busInc = cfg.getDouble("incomes.bus"+busg + "."+busLvl) * 60;
- // giveMoney(p.getName(), busInc);
- //
- // cfg.set("players." + p.getName() + ".lasttime" + busg, System.currentTimeMillis());
- // plugin.saveConfig();
- //
- // p.sendMessage(ChatColor.GREEN + "Вы забрали доход " + (int) busInc + "$ с " + cfg.getString("bus-names.bus" + busg));
- // } else p.sendMessage(ChatColor.RED + "Ваш бизнес еще не успел заполнить кассу! Осталось: " + (mintime - ((curtime - lasttime) / 60000)) + " минут");
- return true;
- case "collectall":
- int mtime = cfg.getInt("settings.min-time-collect"); // Minimum time in mins to collect money
- double bank = 0.0;
- for(int x = 1; x < getEnableBusAmount()+1; x++) {
- if(cfg.contains("players." + p.getName() + ".bus" + x)) {
- if(!cfg.contains("players." + p.getName() + ".lasttime" + x)) {
- cfg.set("players." + p.getName() + ".lasttime" + x, System.currentTimeMillis() - (mtime * 60000));
- plugin.saveConfig();
- }
- bank += getIncome(p, x);
- }
- }
- if(bank == 0.0) {
- p.sendMessage(ChatColor.RED + "Еще ни один из ваших бизнесов не успел заработать денег!");
- return true;
- }
- giveMoney(p.getName(), bank / 2);
- p.sendMessage(ChatColor.GREEN + "Вы собрали доход со всех своих бизнесов с комиссией 50%! Зачислено: " + bank / 2);
- return true;
- }
- return false;
- }
- private double getIncome(Player p, int busNum) {
- FileConfiguration cfg = plugin.getConfig();
- int mintime = cfg.getInt("settings.min-time-collect"); // Minimum time in mins to collect money
- double busInc = 0.0;
- long curtime = System.currentTimeMillis();
- long lasttime = cfg.getLong("players." + p.getName() + ".lasttime" + busNum);
- int passed = (int) ((curtime - lasttime) / 60000);
- if(passed >= mintime) {
- int busLvl = cfg.getInt("players." + p.getName() + ".bus"+busNum);
- busInc = cfg.getDouble("incomes.bus"+busNum + "."+busLvl) * getAllowedCollectTime(p, passed);
- }
- if(busInc > 0.0) {
- cfg.set("players." + p.getName() + ".lasttime" + busNum, System.currentTimeMillis());
- plugin.saveConfig();
- }
- return busInc;
- }
- private void giveIncome(Player p, int busNum) {
- FileConfiguration cfg = plugin.getConfig();
- int mintime = cfg.getInt("settings.min-time-collect"); // Minimum time in mins to collect money
- long curtime = System.currentTimeMillis();
- long lasttime = cfg.getLong("players." + p.getName() + ".lasttime" + busNum);
- int passed = (int) ((curtime - lasttime) / 60000);
- if(passed >= mintime) {
- int busLvl = cfg.getInt("players." + p.getName() + ".bus"+busNum);
- double busInc = cfg.getDouble("incomes.bus"+busNum + "."+busLvl) * getAllowedCollectTime(p, passed);
- giveMoney(p.getName(), busInc);
- cfg.set("players." + p.getName() + ".lasttime" + busNum, System.currentTimeMillis());
- plugin.saveConfig();
- p.sendMessage(ChatColor.GREEN + "Вы забрали доход " + (int) busInc + "$ с " + cfg.getString("bus-names.bus" + busNum));
- } else p.sendMessage(ChatColor.RED + "Ваш бизнес еще не успел заполнить кассу! Осталось: " + (mintime - passed) + " минут");
- }
- private int getAllowedCollectTime(Player p, int passed) {
- FileConfiguration cfg = plugin.getConfig();
- if(p.hasPermission("vegobus.maxtime2")) {
- if(passed < cfg.getInt("settings.max-time.maxtime2")) return passed;
- return cfg.getInt("settings.max-time.maxtime2");
- }
- if(p.hasPermission("vegobus.maxtime1")) {
- if(passed < cfg.getInt("settings.max-time.maxtime1")) return passed;
- return cfg.getInt("settings.max-time.maxtime1");
- }
- if(passed < cfg.getInt("default")) return passed;
- return cfg.getInt("default");
- }
- private void listSender(Player p, int BusAmount) {
- String pname = p.getName();
- double playerInc = getIncome(pname);
- List<String> msg = plugin.getConfig().getStringList("messages.player-list");
- int enAmount5 = getEnableBusAmount();
- for(String s : msg) {
- s = s.replace("&", "\u00a7");
- s = s.replace("$name$", pname);
- s = s.replace("$buses$", "" + BusAmount);
- s = s.replace("$income$", "" + playerInc);
- for(int x = 1; x != enAmount5+1; x++) {
- String busName = plugin.getConfig().getString("bus-names.bus" + x);
- if(plugin.getConfig().contains("players." + pname + ".bus" + x)) {
- int busLvl = plugin.getConfig().getInt("players." + pname + ".bus" + x);
- double inc = plugin.getConfig().getDouble("incomes." + "bus"+x + "."+busLvl);
- s = s.replace("$bus"+x+"$", ChatColor.GREEN + busName);
- s = s.replace("$level"+x+"$", "" + busLvl);
- s = s.replace("$inc"+x+"$", "" + inc);
- } else {
- s = s.replace("$bus"+x+"$", ChatColor.RED + busName);
- s = s.replace("$level"+x+"$", "--");
- s = s.replace("$inc"+x+"$", "--");
- }
- }
- p.sendMessage(s);
- }
- }
- private void msgSender(Player p, String param) {
- String par = param;
- List<String> msg = plugin.getConfig().getStringList("messages." + par);
- for(String s : msg) {
- s = s.replace("&", "\u00a7");
- p.sendMessage(s);
- }
- }
- private void infoSender(Player p, int busNum) {
- FileConfiguration cfg = plugin.getConfig();
- String bname = "ERROR";
- bname = cfg.getString("bus-names.bus" + busNum);
- String pname = p.getName();
- int busLvl = cfg.getInt("players." + pname + ".bus" + busNum);
- String upPrice = null;
- if(busLvl != 10) upPrice = cfg.getString("up-prices.bus" + busNum + "." + busLvl);
- double inc = cfg.getDouble("incomes.bus" + busNum + "." + busLvl);
- List<String> msg = cfg.getStringList("messages.info");
- for(String s : msg) {
- s = s.replace("&", "\u00a7").replace("$player$", pname).replace("$income$", "" + inc).replace("$name$", bname).replace("$level$", "" + busLvl);
- if(upPrice != null) {
- s = s.replace("$upPrice$", upPrice);
- } else s = s.replace("$upPrice$", "--");
- p.sendMessage(s);
- }
- }
- public static int getBusLevel(Player p, String busName) {
- return plugin.getConfig().getInt("players." + p.getName() + "." + busName);
- }
- public void buyUpgrade(Player p, String busName) {
- FileConfiguration cfg = plugin.getConfig();
- String bname = busName;
- String pname = p.getName();
- String succes_up = cfg.getString("messages.succes-up").replace("&", "\u00a7");
- String on_max_lvl = cfg.getString("messages.on-max-lvl").replace("&", "\u00a7");
- String no_bus = cfg.getString("messages.no-bus").replace("&", "\u00a7").replace("$name$", pname);
- on_max_lvl = on_max_lvl.replace("$name$", cfg.getString("bus-names." + bname));
- no_bus = no_bus.replace("$bus$", cfg.getString("bus-names." + bname));
- if(!cfg.contains("players." + pname + "." + bname)) {
- p.sendMessage(no_bus);
- return;
- }
- int busLvl = getBusLevel(p, bname);
- if(busLvl != 10) {
- int Cost = cfg.getInt("up-prices." + bname + "." + busLvl);
- if(!takeMoney(p, (double) Cost, "up", bname)) return;
- int newLvl = busLvl + 1;
- cfg.set("players." + pname + "." + bname, newLvl);
- succes_up = succes_up.replace("$name$", cfg.getString("bus-names." + bname));
- succes_up = succes_up.replace("$level$", String.valueOf(newLvl));
- p.sendMessage(succes_up);
- } else p.sendMessage(on_max_lvl);
- }
- public void buyBus(Player p, int busNum) {
- FileConfiguration cfg = plugin.getConfig();
- if(cfg.getBoolean("bus-perms.bus" + busNum)) {
- if(!p.hasPermission("vegobus." + busNum)) {
- String no_perm = cfg.getString("messages.no-perm").replace("&", "\u00a7");
- p.sendMessage(no_perm);
- return;
- }
- }
- String busName = "bus" + busNum;
- String pname = p.getName();
- String already_bought = cfg.getString("messages.already-bought").replace("&", "\u00a7");
- String succes_buy = cfg.getString("messages.succes-buy").replace("&", "\u00a7");
- already_bought = already_bought.replace("$name$", cfg.getString("bus-names." + busName));
- succes_buy = succes_buy.replace("$name$", cfg.getString("bus-names." + busName));
- if(!cfg.contains("players." + pname + "." + busName)) {
- int Cost = cfg.getInt("bus-prices." + busName);
- if(!takeMoney(p, Cost, "buy", busName)) return;
- cfg.set("players." + pname + "." + busName, 1);
- cfg.set("players." + p.getName() + ".lasttime" + busNum, System.currentTimeMillis() - (cfg.getInt("min-time-collect") * 60000));
- p.sendMessage(succes_buy);
- } else p.sendMessage(already_bought);
- }
- public static int getPlayerBus(Player p) {
- String pname = p.getName();
- int busAmount = 0;
- int enAmount = getEnableBusAmount();
- for(int x = 1; x < enAmount+1; x++) {
- if(plugin.getConfig().contains("players." + pname + ".bus" + x)) {
- busAmount++;
- }
- }
- return busAmount;
- }
- @SuppressWarnings("deprecation")
- public static boolean takeMoney(Player p, double amount, String param, String busName) {
- String no_money_up = plugin.getConfig().getString("messages.no-money-up").replace("&", "\u00a7");
- String no_money_buy = plugin.getConfig().getString("messages.no-money-buy").replace("&", "\u00a7");
- String name = p.getName();
- try {
- double money = Economy.getMoney(name);
- if(money < amount) {
- String no_up = no_money_up + (int) (amount - money);
- no_up = no_up.replace("$name$", plugin.getConfig().getString("bus-names." + busName));
- String no_buy = no_money_buy + (int) (amount - money);
- no_buy = no_buy.replace("$name$", plugin.getConfig().getString("bus-names." + busName));
- if(param == "up") p.sendMessage(no_up);
- if(param == "buy") p.sendMessage(no_buy);
- return false;
- }
- Economy.setMoney(name, money - amount);
- return true;
- } catch (NoLoanPermittedException | UserDoesNotExistException e) {
- e.printStackTrace();
- }
- return false;
- }
- @SuppressWarnings("deprecation")
- public static void giveMoney(String name, double amount) {
- try {
- double money = Economy.getMoney(name);
- Economy.setMoney(name, money + amount);
- } catch (NoLoanPermittedException | UserDoesNotExistException e) {
- e.printStackTrace();
- }
- }
- public double getIncome(String name) {
- double inc = 0;
- int enAmount = getEnableBusAmount();
- for(int x = 1; x != enAmount+1; x++) {
- int busLvl = plugin.getConfig().getInt("players." + name + ".bus"+x);
- double busInc = plugin.getConfig().getDouble("incomes.bus"+x + "."+busLvl);
- inc += busInc;
- }
- return inc;
- }
- public static int getEnableBusAmount() {
- int enAmount = 0;
- for(int x = 1; x < 100; x++) {
- String busName = plugin.getConfig().getString("bus-names.bus" + x);
- if(busName == null) break;
- enAmount++;
- }
- return enAmount;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment