From 22f3f61bfc07e7efc04249be193f77c8bc050837 Mon Sep 17 00:00:00 2001 From: montlikadani Date: Thu, 9 Jul 2020 19:08:04 +0200 Subject: [PATCH] Fix version checking - Fix when the money/exp/points displayed more values than original. This was caused by boosted items even its not exists. - Fixes #851 --- .../jobs/CMILib/VersionChecker.java | 5 ++- .../com/gamingmesh/jobs/Gui/GuiManager.java | 42 ++++++++----------- .../jobs/commands/list/editquests.java | 7 ++-- .../jobs/commands/list/entitylist.java | 7 ++-- .../jobs/hooks/McMMO/McMMO1_X_listener.java | 3 +- .../jobs/hooks/McMMO/McMMO2_X_listener.java | 1 - 6 files changed, 30 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/gamingmesh/jobs/CMILib/VersionChecker.java b/src/main/java/com/gamingmesh/jobs/CMILib/VersionChecker.java index 76c26a44..6e7fd3fd 100644 --- a/src/main/java/com/gamingmesh/jobs/CMILib/VersionChecker.java +++ b/src/main/java/com/gamingmesh/jobs/CMILib/VersionChecker.java @@ -53,8 +53,9 @@ public class VersionChecker { if (newVersion == null) return; - String currentVersion = plugin.getDescription().getVersion(); - if (Integer.parseInt(newVersion.replace(".", "")) <= Integer.parseInt(currentVersion.replace(".", ""))) + int currentVersion = Integer.parseInt(plugin.getDescription().getVersion().replace(".", "")); + if (Integer.parseInt(newVersion.replace(".", "")) <= currentVersion || currentVersion >= + Integer.parseInt(newVersion.replace(".", ""))) return; List msg = Arrays.asList( diff --git a/src/main/java/com/gamingmesh/jobs/Gui/GuiManager.java b/src/main/java/com/gamingmesh/jobs/Gui/GuiManager.java index 2c646feb..9701ebb8 100644 --- a/src/main/java/com/gamingmesh/jobs/Gui/GuiManager.java +++ b/src/main/java/com/gamingmesh/jobs/Gui/GuiManager.java @@ -40,10 +40,10 @@ public class GuiManager { gui.setTitle(Jobs.getLanguage().getMessage("command.info.gui.pickjob")); gui.setFiller(CMIMaterial.get(Jobs.getGCManager().guiFiller)); - int GuiSize = Jobs.getGCManager().getJobsGUIRows() * 9; - - int neededSlots = JobsList.size() + ((JobsList.size() / Jobs.getGCManager().getJobsGUIGroupAmount()) * Jobs.getGCManager().getJobsGUISkipAmount()) + Jobs.getGCManager().getJobsGUIStartPosition(); - int neededRows = (int) Math.ceil(neededSlots / 9D); + int GuiSize = Jobs.getGCManager().getJobsGUIRows() * 9, + neededSlots = JobsList.size() + ((JobsList.size() / Jobs.getGCManager().getJobsGUIGroupAmount()) + * Jobs.getGCManager().getJobsGUISkipAmount()) + Jobs.getGCManager().getJobsGUIStartPosition(), + neededRows = (int) Math.ceil(neededSlots / 9D); // Resizing GUI in case we have more jobs then we could fit in current setup GuiSize = Jobs.getGCManager().getJobsGUIRows() > neededRows ? GuiSize : neededRows * 9; @@ -216,19 +216,16 @@ public class GuiManager { } double income = jInfo.getIncome(level, numjobs); - income = boost.getFinalAmount(CurrencyType.MONEY, income) + ((Jobs.getPlayerManager().getInventoryBoost(player, job) - .get(CurrencyType.MONEY)) + 1); + income = boost.getFinalAmount(CurrencyType.MONEY, income); String incomeColor = income >= 0 ? "" : ChatColor.DARK_RED.toString(); double xp = jInfo.getExperience(level, numjobs); - xp = boost.getFinalAmount(CurrencyType.EXP, xp) + ((Jobs.getPlayerManager().getInventoryBoost(player, job) - .get(CurrencyType.EXP)) + 1); + xp = boost.getFinalAmount(CurrencyType.EXP, xp); String xpColor = xp >= 0 ? "" : ChatColor.GRAY.toString(); double points = jInfo.getPoints(level, numjobs); - points = boost.getFinalAmount(CurrencyType.POINTS, points) + ((Jobs.getPlayerManager().getInventoryBoost(player, job) - .get(CurrencyType.POINTS)) + 1); - String pointsColor = xp >= 0 ? "" : ChatColor.RED.toString(); + points = boost.getFinalAmount(CurrencyType.POINTS, points); + String pointsColor = points >= 0 ? "" : ChatColor.RED.toString(); if (income == 0D && points == 0D && xp == 0D) continue; @@ -236,15 +233,15 @@ public class GuiManager { String itemName = jInfo.getRealisticName(); String val = ""; - if (income != 0.0 && Jobs.getGCManager().PaymentMethodsMoney) + if (income != 0.0) val += Jobs.getLanguage().getMessage("command.info.help.money", "%money%", incomeColor + String.format(Jobs.getGCManager().getDecimalPlacesMoney(), income)); - if (points != 0.0 && Jobs.getGCManager().PaymentMethodsPoints) + if (points != 0.0) val += Jobs.getLanguage().getMessage("command.info.help.points", "%points%", pointsColor + String.format(Jobs.getGCManager().getDecimalPlacesPoints(), points)); - if (xp != 0.0 && Jobs.getGCManager().PaymentMethodsExp) + if (xp != 0.0) val += Jobs.getLanguage().getMessage("command.info.help.exp", "%exp%", xpColor + String.format(Jobs.getGCManager().getDecimalPlacesExp(), xp)); @@ -376,19 +373,16 @@ public class GuiManager { } double income = jInfo.getIncome(level, numjobs); - income = boost.getFinalAmount(CurrencyType.MONEY, income) + ((Jobs.getPlayerManager().getInventoryBoost(player, job) - .get(CurrencyType.MONEY)) + 1); + income = boost.getFinalAmount(CurrencyType.MONEY, income); String incomeColor = income >= 0 ? "" : ChatColor.DARK_RED.toString(); double xp = jInfo.getExperience(level, numjobs); - xp = boost.getFinalAmount(CurrencyType.EXP, xp) + ((Jobs.getPlayerManager().getInventoryBoost(player, job) - .get(CurrencyType.EXP)) + 1); + xp = boost.getFinalAmount(CurrencyType.EXP, xp); String xpColor = xp >= 0 ? "" : ChatColor.GRAY.toString(); double points = jInfo.getPoints(level, numjobs); - points = boost.getFinalAmount(CurrencyType.POINTS, points) + ((Jobs.getPlayerManager().getInventoryBoost(player, job) - .get(CurrencyType.POINTS)) + 1); - String pointsColor = xp >= 0 ? "" : ChatColor.RED.toString(); + points = boost.getFinalAmount(CurrencyType.POINTS, points); + String pointsColor = points >= 0 ? "" : ChatColor.RED.toString(); if (income == 0D && points == 0D && xp == 0D) continue; @@ -396,15 +390,15 @@ public class GuiManager { String itemName = jInfo.getRealisticName(); String val = ""; - if (income != 0.0 && Jobs.getGCManager().PaymentMethodsMoney) + if (income != 0.0) val += Jobs.getLanguage().getMessage("command.info.help.money", "%money%", incomeColor + String.format(Jobs.getGCManager().getDecimalPlacesMoney(), income)); - if (points != 0.0 && Jobs.getGCManager().PaymentMethodsPoints) + if (points != 0.0) val += Jobs.getLanguage().getMessage("command.info.help.points", "%points%", pointsColor + String.format(Jobs.getGCManager().getDecimalPlacesPoints(), points)); - if (xp != 0.0 && Jobs.getGCManager().PaymentMethodsExp) + if (xp != 0.0) val += Jobs.getLanguage().getMessage("command.info.help.exp", "%exp%", xpColor + String.format(Jobs.getGCManager().getDecimalPlacesExp(), xp)); diff --git a/src/main/java/com/gamingmesh/jobs/commands/list/editquests.java b/src/main/java/com/gamingmesh/jobs/commands/list/editquests.java index a174a82d..42f0bcd0 100644 --- a/src/main/java/com/gamingmesh/jobs/commands/list/editquests.java +++ b/src/main/java/com/gamingmesh/jobs/commands/list/editquests.java @@ -35,7 +35,9 @@ public class editquests implements Cmd { @Override @JobCommand(721) public boolean perform(Jobs plugin, CommandSender sender, String[] args) { - if (sender instanceof Player) { + if (!(sender instanceof Player)) + return false; + Player player = (Player) sender; if (args.length == 0) { @@ -580,7 +582,6 @@ public class editquests implements Cmd { } Util.getQuestsEditorMap().remove(player.getUniqueId()); - return true; } @@ -588,7 +589,7 @@ public class editquests implements Cmd { default: break; } - } + return false; } diff --git a/src/main/java/com/gamingmesh/jobs/commands/list/entitylist.java b/src/main/java/com/gamingmesh/jobs/commands/list/entitylist.java index 13051e3d..a4df10d3 100644 --- a/src/main/java/com/gamingmesh/jobs/commands/list/entitylist.java +++ b/src/main/java/com/gamingmesh/jobs/commands/list/entitylist.java @@ -23,20 +23,21 @@ public class entitylist implements Cmd { int i = 0; for (EntityType type : EntityType.values()) { - if (!type.isAlive()) - continue; - if (!type.isSpawnable()) + if (!type.isAlive() || !type.isSpawnable()) continue; i++; + if (!msg.isEmpty()) msg += ", "; + if (i > 1) { msg += c1; i = 0; } else { msg += c2; } + msg += type.name().toLowerCase(); } diff --git a/src/main/java/com/gamingmesh/jobs/hooks/McMMO/McMMO1_X_listener.java b/src/main/java/com/gamingmesh/jobs/hooks/McMMO/McMMO1_X_listener.java index f5f86fd7..426a06bb 100644 --- a/src/main/java/com/gamingmesh/jobs/hooks/McMMO/McMMO1_X_listener.java +++ b/src/main/java/com/gamingmesh/jobs/hooks/McMMO/McMMO1_X_listener.java @@ -30,7 +30,6 @@ public class McMMO1_X_listener implements Listener { @EventHandler public void onFishingTreasure(McMMOPlayerFishingTreasureEvent event) { - // make sure plugin is enabled if (!plugin.isEnabled()) return; @@ -56,7 +55,7 @@ public class McMMO1_X_listener implements Listener { if (event.getTreasure() == null) return; - + JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(player); if (jPlayer == null) return; diff --git a/src/main/java/com/gamingmesh/jobs/hooks/McMMO/McMMO2_X_listener.java b/src/main/java/com/gamingmesh/jobs/hooks/McMMO/McMMO2_X_listener.java index ee2fd5ad..6315133b 100644 --- a/src/main/java/com/gamingmesh/jobs/hooks/McMMO/McMMO2_X_listener.java +++ b/src/main/java/com/gamingmesh/jobs/hooks/McMMO/McMMO2_X_listener.java @@ -30,7 +30,6 @@ public class McMMO2_X_listener implements Listener { @EventHandler public void onFishingTreasure(McMMOPlayerFishingTreasureEvent event) { - // make sure plugin is enabled if (!plugin.isEnabled()) return;