Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.socarp.aquaticland.bossfight.objects;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.LinkedHashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.concurrent.ConcurrentHashMap;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.attribute.Attribute;
- import org.bukkit.entity.Player;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.potion.PotionEffect;
- import org.bukkit.scheduler.BukkitRunnable;
- import net.md_5.bungee.api.ChatMessageType;
- import net.md_5.bungee.api.chat.ClickEvent;
- import net.md_5.bungee.api.chat.ComponentBuilder;
- import net.md_5.bungee.api.chat.HoverEvent;
- import net.md_5.bungee.api.chat.TextComponent;
- import ru.socarp.aquaticland.bossfight.Main;
- import ru.socarp.aquaticland.bossfight.enums.BoosterType;
- import ru.socarp.aquaticland.bossfight.enums.MobType;
- import ru.socarp.aquaticland.bossfight.enums.StatType;
- import ru.socarp.aquaticland.bossfight.utils.LocationUtils;
- import ru.socarp.aquaticland.bossfight.utils.StringUtils;
- import ru.morka.stickmix.stickmixcore.utils.TimeUtils;
- public class BFPlayer {
- public static Map<String, BFPlayer> players = new ConcurrentHashMap<>();
- private String name;
- private int level;
- private double exp;
- private double resources;
- private int crystals;
- private int blocks;
- private int kills;
- private int deaths;
- private int bossKills;
- private long lastKit;
- private Map<StatType, Integer> stat_log;
- private Map<SellItem, Integer> block_log;
- private Map<MobType, Integer> mob_log;
- private Map<String, Integer> quest_log;
- private List<Artefact> artefacts;
- private boolean inTutorial;
- private String lastDamager;
- private long lastDamagerHitTime;
- private int teleportTask;
- private double donateResourcesMultiplier;
- private double donateExpMultiplier;
- private double donateCrystalsMultiplier;
- private int kitResources;
- private int delay;
- private int maxMarketItems;
- private double resourcesMultiplier;
- private double expMultiplier;
- private double crystalsMultiplier;
- private Map<String, Double> statistics;
- public BFPlayer(String name) {
- this.name = name;
- load();
- }
- private void load() {
- Bukkit.getScheduler().runTaskAsynchronously(Main.getMain(), () -> {
- if (playerExists()) {
- ResultSet resultSet = Main.getMain().getDatabaseManager().getResult("SELECT * FROM " + Main.GAME_TABLE + " WHERE name='" + name + "'");
- try {
- if (resultSet.next()) {
- this.level = resultSet.getInt("level");
- this.exp = resultSet.getDouble("exp");
- this.resources = resultSet.getDouble("resources");
- this.crystals = resultSet.getInt("crystals");
- this.blocks = resultSet.getInt("blocks");
- this.kills = resultSet.getInt("kills");
- this.deaths = resultSet.getInt("deaths");
- this.bossKills = resultSet.getInt("boss_kills");
- this.lastKit = resultSet.getLong("last_kit");
- this.stat_log = new LinkedHashMap<>();
- String[] statLog = resultSet.getString("stat_log").split(",");
- for (String stat : statLog) {
- String[] statData = stat.split("=");
- if (statData.length == 2)
- this.stat_log.put(StatType.valueOf(statData[0]), Integer.valueOf(statData[1]));
- }
- this.block_log = new LinkedHashMap<>();
- String[] blockLog = resultSet.getString("block_log").split(",");
- for (String block : blockLog) {
- String[] blockData = block.split("=");
- if (blockData.length == 2)
- if (SellItem.getSellItem(blockData[0]) != null)
- this.block_log.put(SellItem.getSellItem(blockData[0]), Integer.valueOf(blockData[1]));
- }
- this.mob_log = new LinkedHashMap<>();
- String[] mobLog = resultSet.getString("mob_log").split(",");
- for (String mob : mobLog) {
- String[] mobData = mob.split("=");
- if (mobData.length == 2)
- this.mob_log.put(MobType.valueOf(mobData[0]), Integer.valueOf(mobData[1]));
- }
- this.quest_log = new LinkedHashMap<>();
- String[] questLog = resultSet.getString("quest_log").split(",");
- for (String quest : questLog) {
- String[] questData = quest.split("=");
- if (questData.length == 2)
- this.quest_log.put(questData[0], Integer.valueOf(questData[1]));
- }
- this.artefacts = new ArrayList<>();
- String[] artefactLog = resultSet.getString("artefacts").split(",");
- for (String artefact : artefactLog)
- if (Artefact.getArtefact(artefact) != null)
- artefacts.add(Artefact.getArtefact(artefact));
- }
- } catch (SQLException e) {
- }
- } else {
- this.level = 1;
- this.exp = 0;
- this.resources = 0;
- this.crystals = 0;
- this.blocks = 0;
- this.kills = 0;
- this.deaths = 0;
- this.bossKills = 0;
- this.lastKit = 0;
- this.stat_log = new LinkedHashMap<>();
- this.block_log = new LinkedHashMap<>();
- this.mob_log = new LinkedHashMap<>();
- this.quest_log = new LinkedHashMap<>();
- this.artefacts = new ArrayList<>();
- Main.getMain().getDatabaseManager().update("INSERT INTO " + Main.GAME_TABLE + "(name, level, exp, resources, crystals, blocks, kills, deaths, boss_kills, last_kit, stat_log, block_log, mob_log, quest_log, artefacts) VALUES('" + name + "', '" + level + "', '" + exp + "', '" + resources + "', '" + crystals + "', '" + blocks + "', '" + kills + "', '" + deaths + "', '" + bossKills + "', '" + lastKit + "', '" + null + "', '" + null + "', '" + null + "', '" + null + "', '" + null + "')");
- }
- inTutorial = false;
- teleportTask = -1;
- donateResourcesMultiplier = 0;
- donateExpMultiplier = 0;
- donateCrystalsMultiplier = 0;
- kitResources = 0;
- delay = 10;
- maxMarketItems = 1;
- statistics = new HashMap<>();
- initDonate();
- });
- players.put(name, this);
- }
- public boolean playerExists() {
- ResultSet resultSet = Main.getMain().getDatabaseManager().getResult("SELECT * FROM " + Main.GAME_TABLE + " WHERE name='" + name + "'");
- try {
- if (resultSet.next())
- return true;
- } catch (SQLException e) {
- }
- return false;
- }
- public void save() {
- Bukkit.getScheduler().runTaskAsynchronously(Main.getMain(), () -> {
- String statLog = "";
- StatType statType;
- for(Iterator var3 = this.stat_log.keySet().iterator(); var3.hasNext(); statLog = statLog + "," + statType + "=" + this.stat_log.get(statType)) {
- statType = (StatType)var3.next();
- }
- statLog = statLog.replaceFirst(",", "");
- String blockLog = "";
- SellItem sellItem;
- for(Iterator var4 = this.block_log.keySet().iterator(); var4.hasNext(); blockLog = blockLog + "," + sellItem.getId() + "=" + this.block_log.get(sellItem)) {
- sellItem = (SellItem)var4.next();
- }
- blockLog = blockLog.replaceFirst(",", "");
- String mobLog = "";
- MobType mobType;
- for(Iterator var5 = this.mob_log.keySet().iterator(); var5.hasNext(); mobLog = mobLog + "," + mobType + "=" + this.mob_log.get(mobType)) {
- mobType = (MobType)var5.next();
- }
- mobLog = mobLog.replaceFirst(",", "");
- String questLog = "";
- String artefactLog;
- for(Iterator var6 = this.quest_log.keySet().iterator(); var6.hasNext(); questLog = questLog + "," + artefactLog + "=" + this.quest_log.get(artefactLog)) {
- artefactLog = (String)var6.next();
- }
- questLog = questLog.replaceFirst(",", "");
- artefactLog = "";
- Artefact artefact;
- for(Iterator var7 = this.artefacts.iterator(); var7.hasNext(); artefactLog = artefactLog + "," + artefact.getId()) {
- artefact = (Artefact)var7.next();
- }
- artefactLog = artefactLog.replaceFirst(",", "");
- Main.getMain().getDatabaseManager().update("UPDATE " + Main.GAME_TABLE + " SET level=" + this.level + ", exp=" + this.exp + ", resources=" + this.resources + ", crystals=" + this.crystals + ", blocks=" + this.blocks + ", kills=" + this.kills + ", deaths=" + this.deaths + ", boss_kills=" + this.bossKills + ", last_kit=" + this.lastKit + ", stat_log='" + statLog + "', block_log='" + blockLog + "', mob_log='" + mobLog + "', quest_log='" + questLog + "' , artefacts='" + artefactLog + "' " + " WHERE name='" + this.name + "'");
- });
- }
- public void unload() {
- save();
- players.remove(name);
- }
- public static BFPlayer getBFPlayer(String name) {
- return players.get(name);
- }
- public Player getPlayer() {
- return Bukkit.getPlayer(name);
- }
- public void sendMessage(String message) {
- if (getPlayer() == null)
- return;
- getPlayer().sendMessage("§8[§bStick§aMix§8] §f" + message);
- }
- public void sendTitle(String title, String subtitle, int stayTime) {
- if (getPlayer() == null)
- return;
- getPlayer().sendTitle(title, subtitle, 20, stayTime, 20);
- }
- public void sendActionBar(String actionBar) {
- if (getPlayer() == null)
- return;
- getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, new ComponentBuilder(actionBar).create());
- }
- public void addAnswerVariable(String answerInfo, String commandName) {
- if (getPlayer() == null)
- return;
- TextComponent textComponent = new TextComponent("§8[§bStick§aMix§8] §f" + answerInfo);
- textComponent.setBold(true);
- textComponent.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("§aНажмите сюда, чтобы выбрать этот вариант").create()));
- if (commandName != null)
- textComponent.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, commandName));
- getPlayer().spigot().sendMessage(textComponent);
- }
- public void initDonate() {
- if (getPlayer() == null)
- return;
- if (getPlayer().hasPermission("bossfight.iron")) {
- donateResourcesMultiplier += 0.1;
- donateExpMultiplier += 0.05;
- donateCrystalsMultiplier += 0.025;
- kitResources += 5;
- }
- if (getPlayer().hasPermission("bossfight.nephrite")) {
- donateResourcesMultiplier += 0.2;
- donateExpMultiplier += 0.1;
- donateCrystalsMultiplier += 0.05;
- kitResources += 10;
- maxMarketItems++;
- }
- if (getPlayer().hasPermission("bossfight.gold")) {
- donateResourcesMultiplier += 0.3;
- donateExpMultiplier += 0.15;
- donateCrystalsMultiplier += 0.1;
- kitResources += 20;
- maxMarketItems++;
- }
- if (getPlayer().hasPermission("bossfight.ruby")) {
- donateResourcesMultiplier += 0.4;
- donateExpMultiplier += 0.2;
- donateCrystalsMultiplier += 0.15;
- kitResources += 30;
- maxMarketItems++;
- }
- if (getPlayer().hasPermission("bossfight.diamond")) {
- donateResourcesMultiplier += 0.5;
- donateExpMultiplier += 0.25;
- donateCrystalsMultiplier += 0.2;
- kitResources += 40;
- maxMarketItems++;
- }
- if (getPlayer().hasPermission("bossfight.emerald")) {
- donateResourcesMultiplier += 0.6;
- donateExpMultiplier += 0.35;
- donateCrystalsMultiplier += 0.25;
- kitResources += 50;
- maxMarketItems++;
- }
- if (getPlayer().hasPermission("bossfight.stick")) {
- donateResourcesMultiplier += 0.75;
- donateExpMultiplier += 0.5;
- donateCrystalsMultiplier += 0.35;
- kitResources += 70;
- maxMarketItems++;
- }
- if (getPlayer().hasPermission("bossfight.sponsor")) {
- donateResourcesMultiplier += 1.0;
- donateExpMultiplier += 0.7;
- donateCrystalsMultiplier += 0.5;
- kitResources += 100;
- maxMarketItems++;
- }
- }
- public void teleport(Location location) {
- if (getPlayer() == null)
- return;
- if (teleportTask != -1) {
- sendMessage("§fПодождите, Вы уже отправили запрос на телепортацию!");
- return;
- }
- if (getPlayer().hasPermission("bossfight.nocooldowns")) {
- getPlayer().teleport(location);
- sendMessage("§fТелепортация успешно выполнена!");
- return;
- }
- sendMessage("§fВы будете телепортированы через §a" + delay + " §fсек. §fНе двигайтесь!");
- teleportTask = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getMain(), new Runnable() {
- int count = -1;
- Location startLocation = getPlayer().getLocation();
- @Override
- public void run() {
- if (getPlayer() != null) {
- if (!LocationUtils.isCompare(startLocation, getPlayer().getLocation())) {
- cancelTeleport();
- sendTitle("§cТелепортация", "§cотменена", 10);
- sendMessage("§fТелепортация отменена.");
- return;
- }
- if (++count == delay) {
- getPlayer().teleport(location);
- sendTitle("§aТелепортация", "§aвыполнена", 10);
- sendMessage("§fТелепортация успешно выполнена!");
- cancelTeleport();
- } else
- sendTitle("§fТелепортация через", "§a" + (delay - count) + " §fсек.", 10);
- }
- }
- }, 0, 10);
- }
- public void cancelTeleport() {
- if (teleportTask == -1)
- return;
- Bukkit.getScheduler().cancelTask(teleportTask);
- teleportTask = -1;
- }
- public void giveKit() {
- if (getPlayer() == null)
- return;
- if (level < 3) {
- sendMessage("§fВы сможете получить свой кит после достижения §a3 §fуровня.");
- return;
- }
- if ((System.currentTimeMillis() - lastKit) / 1000 <= 259200) {
- sendMessage("§fВы сможете получить свой кит через §c" + TimeUtils.getDurationString(259200 - (System.currentTimeMillis() - lastKit) / 1000) + "§f.");
- return;
- }
- if (kitResources > 0)
- addResourcesWithoutBoosters(kitResources);
- if (getPlayer().hasPermission("bossfight.case"))
- getPlayer().getInventory().addItem(UsableItem.getUsableItem("§aОбычный ключ").getItemStack());
- if (getPlayer().hasPermission("bossfight.caseart"))
- getPlayer().getInventory().addItem(UsableItem.getUsableItem("§6Древний ключ").getItemStack());
- if (getPlayer().hasPermission("bossfight.caserare"))
- getPlayer().getInventory().addItem(UsableItem.getUsableItem("§cРедкий ключ").getItemStack());
- lastKit = System.currentTimeMillis();
- }
- public void updateMultipliers() {
- if (getPlayer() == null)
- return;
- resourcesMultiplier = StringUtils.fixDouble(3, Main.GLOBAL_RESOURCES_MULTIPLIER + donateResourcesMultiplier + Booster.getGlobalMultiplier(BoosterType.RESOURCES) + Booster.getLocalMultiplier(BoosterType.RESOURCES, this));
- expMultiplier = StringUtils.fixDouble(3, Main.GLOBAL_EXP_MULTIPLIER + donateExpMultiplier + Booster.getGlobalMultiplier(BoosterType.EXP) + Booster.getLocalMultiplier(BoosterType.EXP, this));
- crystalsMultiplier = StringUtils.fixDouble(3, Main.GLOBAL_CRYSTALS_MULTIPLIER + donateCrystalsMultiplier + Booster.getGlobalMultiplier(BoosterType.CRYSTALS) + Booster.getLocalMultiplier(BoosterType.CRYSTALS, this));
- }
- public void updateAttributes() {
- if (getPlayer() == null)
- return;
- getPlayer().getAttribute(Attribute.GENERIC_ATTACK_SPEED).setBaseValue(100);
- double healthValue = 20 + getStatLevel(StatType.HEALTH);
- getPlayer().getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(healthValue);
- }
- public void showTutorial() {
- if (getPlayer() == null)
- return;
- if (inTutorial) {
- sendMessage("§fВы уже начали прохождение туториала!");
- return;
- }
- inTutorial = true;
- new BukkitRunnable() {
- int count = -1;
- @Override
- public void run() {
- if (getPlayer() == null) {
- cancel();
- return;
- }
- ++count;
- sendMessage(Main.TUTORIAL.get(count));
- if (count == Main.TUTORIAL.size() - 1) {
- inTutorial = false;
- cancel();
- sendMessage("§6§lСпасибо за внимание!");
- if (getStatLevel(StatType.TUTORIAL) == 0) {
- setStatLevel(StatType.TUTORIAL, 1);
- addResourcesWithoutBoosters(20);
- }
- }
- }
- }.runTaskTimerAsynchronously(Main.getMain(), 10, 140);
- }
- public void sellItems() {
- if (getPlayer() == null)
- return;
- double totalResources = 0.0;
- ItemStack[] itemStacks = getPlayer().getInventory().getContents();
- for (int l = itemStacks.length, i = 0; i < l; ++i) {
- ItemStack itemStack = itemStacks[i];
- if (itemStack != null && SellItem.getSellItem(itemStack.getType()) != null) {
- SellItem sellItem = SellItem.getSellItem(itemStack.getType());
- if (level >= sellItem.getLevel()) {
- totalResources += sellItem.getResources() * itemStack.getAmount();
- getPlayer().getInventory().setItem(i, new ItemStack(Material.AIR));
- }
- }
- }
- if (totalResources > 0)
- addResources(totalResources);
- else
- sendMessage("§fВ вашем инвентаре нет предметов, которые можно продать.");
- }
- public void takeItemInHand() {
- if (getPlayer() == null)
- return;
- if (getPlayer().getInventory().getItemInMainHand() != null) {
- ItemStack itemStack = getPlayer().getInventory().getItemInMainHand();
- itemStack.setAmount(itemStack.getAmount() - 1);
- }
- }
- public Map<String, UsableItem> getLadderItems() {
- Map<String, UsableItem> ladderItems = new LinkedHashMap<>();
- if (Main.SHOP_UPGRADEABLE_ITEMS != null && Main.SHOP_UPGRADEABLE_ITEMS.size() > 0)
- Main.SHOP_UPGRADEABLE_ITEMS.keySet().forEach(item -> {
- if (!ladderItems.containsKey(item))
- ladderItems.put(item, UsableItem.getUsableItem(Main.SHOP_UPGRADEABLE_ITEMS.get(item)));
- });
- ItemStack[] itemStacks = getPlayer().getInventory().getContents();
- for (int l = itemStacks.length, i = 0; i < l; ++i) {
- ItemStack itemStack = itemStacks[i];
- if (itemStack != null && itemStack.hasItemMeta() && itemStack.getItemMeta().hasDisplayName()) {
- String id = itemStack.getItemMeta().getDisplayName();
- if (UsableItem.itemsWithLadder.containsKey(id)) {
- UsableItem usableItem = UsableItem.itemsWithLadder.get(id);
- ladderItems.put(usableItem.getLadder(), usableItem.getNextUpgrade());
- }
- }
- }
- ItemStack helmet = getPlayer().getInventory().getHelmet();
- if (helmet != null && helmet.hasItemMeta() && helmet.getItemMeta().hasDisplayName()) {
- String id = helmet.getItemMeta().getDisplayName();
- if (UsableItem.itemsWithLadder.containsKey(id)) {
- UsableItem usableItem = UsableItem.itemsWithLadder.get(id);
- ladderItems.put(usableItem.getLadder(), usableItem.getNextUpgrade());
- }
- }
- ItemStack chestplate = getPlayer().getInventory().getChestplate();
- if (chestplate != null && chestplate.hasItemMeta() && chestplate.getItemMeta().hasDisplayName()) {
- String id = chestplate.getItemMeta().getDisplayName();
- if (UsableItem.itemsWithLadder.containsKey(id)) {
- UsableItem usableItem = UsableItem.itemsWithLadder.get(id);
- ladderItems.put(usableItem.getLadder(), usableItem.getNextUpgrade());
- }
- }
- ItemStack leggings = getPlayer().getInventory().getLeggings();
- if (leggings != null && leggings.hasItemMeta() && leggings.getItemMeta().hasDisplayName()) {
- String id = leggings.getItemMeta().getDisplayName();
- if (UsableItem.itemsWithLadder.containsKey(id)) {
- UsableItem usableItem = UsableItem.itemsWithLadder.get(id);
- ladderItems.put(usableItem.getLadder(), usableItem.getNextUpgrade());
- }
- }
- ItemStack boots = getPlayer().getInventory().getBoots();
- if (boots != null && boots.hasItemMeta() && boots.getItemMeta().hasDisplayName()) {
- String id = boots.getItemMeta().getDisplayName();
- if (UsableItem.itemsWithLadder.containsKey(id)) {
- UsableItem usableItem = UsableItem.itemsWithLadder.get(id);
- ladderItems.put(usableItem.getLadder(), usableItem.getNextUpgrade());
- }
- }
- return ladderItems;
- }
- public void upgradeLadderItem(String id) {
- ItemStack[] itemStacks = getPlayer().getInventory().getContents();
- for (int l = itemStacks.length, i = 0; i < l; ++i) {
- ItemStack itemStack = itemStacks[i];
- if (itemStack != null && itemStack.hasItemMeta() && itemStack.getItemMeta().hasDisplayName())
- if (UsableItem.itemsWithLadder.containsKey(itemStack.getItemMeta().getDisplayName())) {
- UsableItem usableItem = UsableItem.itemsWithLadder.get(itemStack.getItemMeta().getDisplayName());
- if (usableItem.getNextUpgrade().getId().equals(id)) {
- getPlayer().getInventory().setItem(i, usableItem.getNext().getItemStack());
- return;
- }
- }
- }
- ItemStack helmet = getPlayer().getInventory().getHelmet();
- if (helmet != null && helmet.hasItemMeta() && helmet.getItemMeta().hasDisplayName())
- if (UsableItem.itemsWithLadder.containsKey(helmet.getItemMeta().getDisplayName())) {
- UsableItem usableItem = UsableItem.itemsWithLadder.get(helmet.getItemMeta().getDisplayName());
- if (usableItem.getNextUpgrade().getId().equals(id)) {
- getPlayer().getInventory().setHelmet(usableItem.getNext().getItemStack());
- return;
- }
- }
- ItemStack chestplate = getPlayer().getInventory().getChestplate();
- if (chestplate != null && chestplate.hasItemMeta() && chestplate.getItemMeta().hasDisplayName())
- if (UsableItem.itemsWithLadder.containsKey(chestplate.getItemMeta().getDisplayName())) {
- UsableItem usableItem = UsableItem.itemsWithLadder.get(chestplate.getItemMeta().getDisplayName());
- if (usableItem.getNextUpgrade().getId().equals(id)) {
- getPlayer().getInventory().setChestplate(usableItem.getNext().getItemStack());
- return;
- }
- }
- ItemStack leggings = getPlayer().getInventory().getLeggings();
- if (leggings != null && leggings.hasItemMeta() && leggings.getItemMeta().hasDisplayName())
- if (UsableItem.itemsWithLadder.containsKey(leggings.getItemMeta().getDisplayName())) {
- UsableItem usableItem = UsableItem.itemsWithLadder.get(leggings.getItemMeta().getDisplayName());
- if (usableItem.getNextUpgrade().getId().equals(id)) {
- getPlayer().getInventory().setLeggings(usableItem.getNext().getItemStack());
- return;
- }
- }
- ItemStack boots = getPlayer().getInventory().getBoots();
- if (boots != null && boots.hasItemMeta() && boots.getItemMeta().hasDisplayName())
- if (UsableItem.itemsWithLadder.containsKey(boots.getItemMeta().getDisplayName())) {
- UsableItem usableItem = UsableItem.itemsWithLadder.get(boots.getItemMeta().getDisplayName());
- if (usableItem.getNextUpgrade().getId().equals(id))
- getPlayer().getInventory().setBoots(usableItem.getNext().getItemStack());
- }
- }
- public void updatePotionEffects() {
- if (getPlayer() == null)
- return;
- if (!artefacts.isEmpty())
- artefacts.stream().filter(artefact -> !artefact.getPotionEffects().isEmpty()).filter(artefact -> !artefact.getPotionEffects().isEmpty() && getPlayer() != null).forEachOrdered(artefact -> {
- artefact.getPotionEffects().keySet().forEach(effect -> {
- if (getPlayer().hasPotionEffect(effect))
- getPlayer().removePotionEffect(effect);
- getPlayer().addPotionEffect(new PotionEffect(effect, Integer.MAX_VALUE, artefact.getPotionEffects().get(effect)));
- });
- });
- }
- public boolean hasItem(UsableItem usableItem, int amount) {
- int count = 0;
- ItemStack[] itemStacks = getPlayer().getInventory().getContents();
- for (int l = itemStacks.length, i = 0; i < l; ++i) {
- ItemStack itemStack = itemStacks[i];
- if (itemStack != null && itemStack.hasItemMeta() && itemStack.getItemMeta().hasDisplayName())
- if (UsableItem.getUsableItem(itemStack) != null && UsableItem.getUsableItem(itemStack).getId().equals(usableItem.getId()))
- count += itemStack.getAmount();
- }
- return count >= amount;
- }
- public boolean takeItem(UsableItem usableItem, int amount) {
- int count = 0;
- ItemStack[] itemStacks = getPlayer().getInventory().getContents();
- for (int l = itemStacks.length, i = 0; i < l; ++i) {
- ItemStack itemStack = itemStacks[i];
- if (itemStack != null && itemStack.hasItemMeta() && itemStack.getItemMeta().hasDisplayName())
- if (UsableItem.getUsableItem(itemStack) != null && UsableItem.getUsableItem(itemStack).getId().equals(usableItem.getId())) {
- count += itemStack.getAmount();
- getPlayer().getInventory().getItem(i).setAmount(0);
- }
- }
- if (count == amount)
- return true;
- ItemStack itemStack = usableItem.getItemStack();
- if (count > amount)
- itemStack.setAmount(count - amount);
- else if (count < amount) {
- itemStack.setAmount(count);
- return false;
- }
- if (getPlayer() != null)
- getPlayer().getInventory().addItem(itemStack);
- return true;
- }
- public double getNextLevelPrice() {
- int price = Main.LEVEL_PRICE;
- for (int i = 1; i < level; ++i)
- price *= 2.5;
- return price;
- }
- public String getLevelPercent() {
- int percent = (int) (exp / getNextLevelPrice() * 100);
- String percentInfo = percent + "%";
- return percent < 33 ? "§c" + percentInfo : percent < 66 ? "§f" + percentInfo : "§a" + percentInfo;
- }
- public String getName() {
- return name;
- }
- public int getLevel() {
- return level;
- }
- public void checkLevelUp() {
- if (exp >= getNextLevelPrice())
- levelUp();
- }
- public void levelUp() {
- level++;
- sendTitle("§a§lУРОВЕНЬ ПОВЫШЕН!", "§fТеперь у Вас §a" + level + " §fуровень.", 100);
- sendMessage("§fВаш уровень успешно повышен до §a" + level);
- }
- public void setResources(int resources) { this.resources = resources; }
- public void setLevel(int level) {
- this.level = level;
- }
- public double getExp() {
- return exp;
- }
- public void addExp(double exp) {
- double totalExp = exp * expMultiplier;
- this.exp += totalExp;
- sendMessage("§fВы получили §a" + StringUtils.formatDouble(totalExp) + " §fопыта" + (expMultiplier > 1.0 ? " §8(§6" + expMultiplier + "x§8)" : ""));
- }
- public void addExpSilently(double exp) {
- double totalExp = exp * expMultiplier;
- this.exp += totalExp;
- sendActionBar("§f+ §a" + StringUtils.formatDouble(totalExp) + " §fопыта" + (expMultiplier > 1.0 ? " §8(§6" + expMultiplier + "x§8)" : ""));
- }
- public void setExp(double exp) {
- this.exp = exp;
- }
- public double getResources() {
- return resources;
- }
- public void addResources(double resources) {
- double totalResources = resources * resourcesMultiplier;
- this.resources += totalResources;
- sendMessage("§fВы получили §a" + StringUtils.formatDouble(totalResources) + " §fресурсов" + (resourcesMultiplier > 1.0 ? " §8(§6" + resourcesMultiplier + "x§8)" : ""));
- }
- public void addResourcesWithoutBoosters(double resources) {
- this.resources += resources;
- sendMessage("§fВы получили §a" + StringUtils.formatDouble(resources) + " §fресурсов");
- }
- public void addResourcesSilently(double resources) {
- double totalResources = resources * resourcesMultiplier;
- this.resources += totalResources;
- sendActionBar("§f+ §a" + StringUtils.formatDouble(totalResources) + " §fресурсов" + (resourcesMultiplier > 1.0 ? " §8(§6" + resourcesMultiplier + "x§8)" : ""));
- }
- public boolean takeResources(double resources) {
- if (this.resources >= resources) {
- this.resources -= resources;
- if (getPlayer() != null)
- sendMessage("§fВы потеряли §c" + StringUtils.formatDouble(resources) + " §fресурсов");
- return true;
- }
- return false;
- }
- public void setResources(double resources) {
- this.resources = resources;
- }
- public int getCrystals() {
- return crystals;
- }
- public void addCrystals(int crystals) {
- this.crystals += crystals;
- sendActionBar("§f+ §a" + crystals + " §fкристаллов");
- }
- public boolean takeCrystals(int crystals) {
- if (this.crystals >= crystals) {
- this.crystals -= crystals;
- sendMessage("§fВы потеряли §c" + crystals + " §fкристаллов");
- return true;
- }
- return false;
- }
- public void setCrystals(int crystals) {
- this.crystals = crystals;
- }
- public int getBlocks() {
- return blocks;
- }
- public void addBlocks(int blocks) {
- this.blocks += blocks;
- }
- public void setBlocks(int blocks) {
- this.blocks = blocks;
- }
- public int getKills() {
- return kills;
- }
- public void addKills(int kills) {
- this.kills += kills;
- }
- public void setKills(int kills) {
- this.kills = kills;
- }
- public int getDeaths() {
- return deaths;
- }
- public void addDeaths(int deaths) {
- this.deaths += deaths;
- }
- public void setDeaths(int deaths) {
- this.deaths = deaths;
- }
- public int getBossKills() {
- return bossKills;
- }
- public void addBossKills(int bossKills) {
- this.bossKills += bossKills;
- }
- public void setBossKills(int bossKills) {
- this.bossKills = bossKills;
- }
- public long getLastKit() {
- return lastKit;
- }
- public void setLastKit(long lastKit) {
- this.lastKit = lastKit;
- }
- public Map<StatType, Integer> getStatLog() {
- return stat_log;
- }
- public int getStatLevel(StatType statType) {
- if (stat_log.containsKey(statType))
- return stat_log.get(statType);
- return 0;
- }
- public void addStatLevel(StatType statType, int level) {
- if (stat_log.containsKey(statType))
- stat_log.put(statType, stat_log.get(statType) + level);
- else
- stat_log.put(statType, level);
- }
- public void setStatLevel(StatType statType, int level) {
- stat_log.put(statType, level);
- }
- public void setStatLog(Map<StatType, Integer> stat_log) {
- this.stat_log = stat_log;
- }
- public Map<SellItem, Integer> getBlockLog() {
- return block_log;
- }
- public int getBlockCount(SellItem serializableBlock) {
- if (block_log.containsKey(serializableBlock))
- return block_log.get(serializableBlock);
- return 0;
- }
- public void addBlockCount(SellItem serializableBlock, int count) {
- if (block_log.containsKey(serializableBlock))
- block_log.put(serializableBlock, block_log.get(serializableBlock) + count);
- else
- block_log.put(serializableBlock, count);
- }
- public void setBlockCount(SellItem serializableBlock, int count) {
- block_log.put(serializableBlock, count);
- }
- public void setBlockLog(Map<SellItem, Integer> block_log) {
- this.block_log = block_log;
- }
- public Map<MobType, Integer> getMobLog() {
- return mob_log;
- }
- public int getMobCount(MobType mobType) {
- if (mob_log.containsKey(mobType))
- return mob_log.get(mobType);
- return 0;
- }
- public void addMobCount(MobType mobType, int count) {
- if (mob_log.containsKey(mobType))
- mob_log.put(mobType, mob_log.get(mobType) + count);
- else
- mob_log.put(mobType, count);
- }
- public void setMobCount(MobType mobType, int count) {
- mob_log.put(mobType, count);
- }
- public void setMobLog(Map<MobType, Integer> mob_log) {
- this.mob_log = mob_log;
- }
- public Map<String, Integer> getQuestLog() {
- return quest_log;
- }
- public int getQuestLevel(String questType) {
- if (quest_log.containsKey(questType))
- return quest_log.get(questType);
- return 0;
- }
- public int getSellerLevel(String sellerType) {
- return 0;
- }
- public void addQuestLevel(String questType, int count) {
- if (quest_log.containsKey(questType))
- quest_log.put(questType, quest_log.get(questType) + count);
- else
- quest_log.put(questType, count);
- }
- public void setQuestLevel(String questType, int count) {
- quest_log.put(questType, count);
- }
- public void setSellerLevel(String sellerType, int count) {
- }
- public void setQuestLog(Map<String, Integer> quest_log) {
- this.quest_log = quest_log;
- }
- public List<Artefact> getArtefacts() {
- return artefacts;
- }
- public boolean addArtefact(Artefact artefact) {
- if (artefacts.contains(artefact))
- return false;
- if (!artefact.getStatistics().isEmpty())
- artefact.getStatistics().keySet().forEach(statistic -> {
- if (statistics.containsKey(statistic))
- statistics.put(statistic, statistics.get(statistic) + artefact.getStatistics().get(statistic));
- else
- statistics.put(statistic, artefact.getStatistics().get(statistic));
- });
- artefacts.add(artefact);
- updatePotionEffects();
- return true;
- }
- public boolean removeArtefact(Artefact artefact) {
- if (!artefacts.contains(artefact))
- return false;
- if (!artefact.getStatistics().isEmpty())
- artefact.getStatistics().keySet().forEach(statistic -> {
- if (statistics.containsKey(statistic)) {
- double value = statistics.get(statistic) - artefact.getStatistics().get(statistic);
- if (value != 0)
- statistics.put(statistic, statistics.get(statistic) - artefact.getStatistics().get(statistic));
- else
- statistics.remove(statistic);
- }
- });
- if (!artefact.getPotionEffects().isEmpty() && getPlayer() != null)
- artefact.getPotionEffects().keySet().forEach(effect -> {
- if (getPlayer().hasPotionEffect(effect))
- getPlayer().removePotionEffect(effect);
- });
- artefacts.remove(artefact);
- updatePotionEffects();
- return true;
- }
- public void setArtefacts(List<Artefact> artefacts) {
- this.artefacts = artefacts;
- }
- public boolean isInTutorial() {
- return inTutorial;
- }
- public void setInTutorial(boolean inTutorial) {
- this.inTutorial = inTutorial;
- }
- public String getLastDamager() {
- if ((System.currentTimeMillis() - lastDamagerHitTime) / 1000 > delay) {
- if (lastDamager != null) {
- lastDamager = null;
- sendMessage("§fВы вышли из режима боя.");
- }
- return null;
- }
- return lastDamager;
- }
- public long getLastDamagerRemoveTime() {
- return delay - ((System.currentTimeMillis() - lastDamagerHitTime) / 1000);
- }
- public void setLastDamager(String lastDamager) {
- if (this.lastDamager == null || !this.lastDamager.equals(lastDamager)) {
- this.lastDamager = lastDamager;
- lastDamagerHitTime = System.currentTimeMillis();
- sendMessage("§fВы вошли в режим боя. Если Вы выйдете в течение §f" + delay + " §fсекунд, то умрёте.");
- }
- }
- public int getDelay() {
- return delay;
- }
- public void setDelay(int delay) {
- this.delay = delay;
- }
- public int getMaxMarketItems() {
- return maxMarketItems;
- }
- public void setMaxMarketItems(int maxMarketItems) {
- this.maxMarketItems = maxMarketItems;
- }
- public int getKitResources() {
- return kitResources;
- }
- public void setKitResources(int kitResources) {
- this.kitResources = kitResources;
- }
- public double getDonateExpMultiplier() {
- return donateExpMultiplier;
- }
- public void setDonateExpMultiplier(double donateExpMultiplier) {
- this.donateExpMultiplier = donateExpMultiplier;
- }
- public double getDonateResourcesMultiplier() {
- return donateResourcesMultiplier;
- }
- public void setDonateResourcesMultiplier(double donateResourcesMultiplier) {
- this.donateResourcesMultiplier = donateResourcesMultiplier;
- }
- public double getDonateCrystalsMultiplier() {
- return donateCrystalsMultiplier;
- }
- public void setDonateCrystalsMultiplier(double donateCrystalsMultiplier) {
- this.donateCrystalsMultiplier = donateCrystalsMultiplier;
- }
- public double getExpMultiplier() {
- return expMultiplier;
- }
- public void setExpMultiplier(double expMultiplier) {
- this.expMultiplier = expMultiplier;
- }
- public double getResourcesMultiplier() {
- return resourcesMultiplier;
- }
- public void setResourcesMultiplier(double resourcesMultiplier) {
- this.resourcesMultiplier = resourcesMultiplier;
- }
- public double getCrystalsMultiplier() {
- return crystalsMultiplier;
- }
- public void setCrystalsMultiplier(double crystalsMultiplier) {
- this.crystalsMultiplier = crystalsMultiplier;
- }
- public Map<String, Double> getStatistics() {
- return statistics;
- }
- public void setStatistics(Map<String, Double> statistics) {
- this.statistics = statistics;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement