diff --git a/com/gamingmesh/jobs/api/JobsAreaSelectionEvent.java b/com/gamingmesh/jobs/api/JobsAreaSelectionEvent.java index 54519289..94f4054b 100644 --- a/com/gamingmesh/jobs/api/JobsAreaSelectionEvent.java +++ b/com/gamingmesh/jobs/api/JobsAreaSelectionEvent.java @@ -1,15 +1,13 @@ package com.gamingmesh.jobs.api; import org.bukkit.entity.Player; -import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; import com.gamingmesh.jobs.container.CuboidArea; -public final class JobsAreaSelectionEvent extends Event implements Cancellable { +public final class JobsAreaSelectionEvent extends Event { private static final HandlerList handlers = new HandlerList(); - private boolean cancelled; private CuboidArea area; private Player player; @@ -26,16 +24,6 @@ public final class JobsAreaSelectionEvent extends Event implements Cancellable { return area; } - @Override - public boolean isCancelled() { - return cancelled; - } - - @Override - public void setCancelled(boolean cancel) { - cancelled = cancel; - } - @Override public HandlerList getHandlers() { return handlers; diff --git a/com/gamingmesh/jobs/commands/list/bonus.java b/com/gamingmesh/jobs/commands/list/bonus.java index 03f08a41..af3492d9 100644 --- a/com/gamingmesh/jobs/commands/list/bonus.java +++ b/com/gamingmesh/jobs/commands/list/bonus.java @@ -1,5 +1,6 @@ package com.gamingmesh.jobs.commands.list; +import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.gamingmesh.jobs.Jobs; @@ -47,20 +48,29 @@ public class bonus implements Cmd { printBoost(sender, boost, BoostOf.Permission); printBoost(sender, boost, BoostOf.Item); - printBoost(sender, boost, BoostOf.NearSpawner); - printBoost(sender, boost, BoostOf.PetPay); printBoost(sender, boost, BoostOf.Global); - printBoost(sender, boost, BoostOf.Dynamic); + if (Jobs.getGCManager().useDynamicPayment) + printBoost(sender, boost, BoostOf.Dynamic); printBoost(sender, boost, BoostOf.Area); + if (Jobs.getGCManager().payNearSpawner()) + printBoost(sender, boost, BoostOf.NearSpawner); + printBoost(sender, boost, BoostOf.PetPay); if (Jobs.getMcMMOlistener().mcMMOPresent && boost.get(BoostOf.McMMO, CurrencyType.EXP) != 0D) printBoost(sender, boost, BoostOf.McMMO); sender.sendMessage(Jobs.getLanguage().getMessage("general.info.separator")); - sender.sendMessage(Jobs.getLanguage().getMessage("command.bonus.output.final", - "%money%", mc + formatText(boost.getFinal(CurrencyType.MONEY, true)), - "%points%", pc + formatText(boost.getFinal(CurrencyType.POINTS, true)), - "%exp%", ec + formatText(boost.getFinal(CurrencyType.EXP, true)))); + + String msg = Jobs.getLanguage().getMessage("command.bonus.output.final", + "%money%", mc + formatText(boost.getFinal(CurrencyType.MONEY, true, true)), + "%points%", pc + formatText(boost.getFinal(CurrencyType.POINTS, true, true)), + "%exp%", ec + formatText(boost.getFinal(CurrencyType.EXP, true, true))); + + String txt = "[\"\",{\"text\":\"" + msg + + "\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + Jobs.getLanguage().getMessage( + "command.bonus.output.finalExplanation") + "\"}]}}}]"; + + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + player.getName() + " " + txt); return true; } @@ -70,10 +80,18 @@ public class bonus implements Cmd { String ec = ChatColor.YELLOW.toString(); private void printBoost(CommandSender sender, Boost boost, BoostOf type) { - sender.sendMessage(Jobs.getLanguage().getMessage("command.bonus.output." + type.name().toLowerCase(), + String prefix = ChatColor.GOLD + "*"; + if (type != BoostOf.NearSpawner && type != BoostOf.PetPay) + prefix = ""; + String msg = Jobs.getLanguage().getMessage("command.bonus.output." + type.name().toLowerCase(), "%money%", mc + formatText(boost.get(type, CurrencyType.MONEY, true)), "%points%", pc + formatText(boost.get(type, CurrencyType.POINTS, true)), - "%exp%", ec + formatText(boost.get(type, CurrencyType.EXP, true)))); + "%exp%", ec + formatText(boost.get(type, CurrencyType.EXP, true))); + + if (msg.startsWith(" ") && (type == BoostOf.NearSpawner || type == BoostOf.PetPay)) + msg = msg.substring(1, msg.length()); + + sender.sendMessage(prefix + msg); } private static String formatText(double amount) { diff --git a/com/gamingmesh/jobs/config/GeneralConfigManager.java b/com/gamingmesh/jobs/config/GeneralConfigManager.java index b40eae6c..32dfbc29 100644 --- a/com/gamingmesh/jobs/config/GeneralConfigManager.java +++ b/com/gamingmesh/jobs/config/GeneralConfigManager.java @@ -414,7 +414,8 @@ public class GeneralConfigManager { "Player data is always periodically auto-saved and autosaved during a clean shutdown.", "Only enable this if you have a multi-server setup, or have a really good reason for enabling this.", "Turning this on will decrease database performance."); saveOnDisconnect = c.get("save-on-disconnect", false); - + + c.getW().addComment("selectionTool", "Tool used when selecting bounds for restricted area"); getSelectionTooldID = c.get("selectionTool", 294); if (Material.getMaterial(Jobs.getGCManager().getSelectionTooldID) == null) getSelectionTooldID = 294; diff --git a/com/gamingmesh/jobs/config/LanguageManager.java b/com/gamingmesh/jobs/config/LanguageManager.java index fff7a464..d7d96061 100644 --- a/com/gamingmesh/jobs/config/LanguageManager.java +++ b/com/gamingmesh/jobs/config/LanguageManager.java @@ -120,6 +120,7 @@ public class LanguageManager { c.get("command.bonus.output.area", " &eArea bonus: %money% %points% %exp%"); c.get("command.bonus.output.mcmmo", " &eMcMMO bonus: %money% %points% %exp%"); c.get("command.bonus.output.final", " &eFinal bonus: %money% %points% %exp%"); + c.get("command.bonus.output.finalExplanation", " &eDoes not include Petpay and Near spawner bonus/penalty"); c.get("command.convert.help.info", "Converts data base system from one system to another. if you currently running sqlite, this will convert to Mysql and vise versa."); diff --git a/com/gamingmesh/jobs/config/RestrictedAreaManager.java b/com/gamingmesh/jobs/config/RestrictedAreaManager.java index 02101225..101e3881 100644 --- a/com/gamingmesh/jobs/config/RestrictedAreaManager.java +++ b/com/gamingmesh/jobs/config/RestrictedAreaManager.java @@ -112,14 +112,15 @@ public class RestrictedAreaManager { return areas; } - private StringBuilder addHeader(StringBuilder header) { + private static StringBuilder addHeader(StringBuilder header) { header.append("Restricted area configuration"); header.append(System.getProperty("line.separator")) .append(System.getProperty("line.separator")) .append("Configures restricted areas where you cannot get experience or money").append(System.getProperty("line.separator")) .append("when performing a job.").append(System.getProperty("line.separator")).append(System.getProperty("line.separator")) .append("The multiplier changes the experience/money gains in an area.").append(System.getProperty("line.separator")) - .append("A multiplier of 0.0 means no money or xp, while 0.5 means you will get half the normal money/exp").append(System.getProperty("line.separator")) + .append("A multiplier of 0.0 means no bonus, while 0.5 means you will get 50% more the normal income").append(System.getProperty("line.separator")) + .append("While -0.5 means that you will get 50% less the normal income").append(System.getProperty("line.separator")) .append(System.getProperty("line.separator")) .append("restrictedareas:").append(System.getProperty("line.separator")) .append(" area1:").append(System.getProperty("line.separator")) diff --git a/com/gamingmesh/jobs/container/Boost.java b/com/gamingmesh/jobs/container/Boost.java index 0413ae7f..7202dd2f 100644 --- a/com/gamingmesh/jobs/container/Boost.java +++ b/com/gamingmesh/jobs/container/Boost.java @@ -35,25 +35,27 @@ public class Boost { if (r < -1) r = -1; if (percent) - return (int)(r * 100); + return (int) (r * 100); return r; } public double getFinal(CurrencyType BT) { - return getFinal(BT, false); + return getFinal(BT, false, false); } - public double getFinal(CurrencyType BT, boolean percent) { + public double getFinal(CurrencyType BT, boolean percent, boolean excludeExtra) { double r = 0D; for (BoostOf one : BoostOf.values()) { if (!map.containsKey(one)) continue; + if (excludeExtra && (one == BoostOf.NearSpawner || one == BoostOf.PetPay)) + continue; r += map.get(one).get(BT); } if (r < -1) r = -1; if (percent) - return (int)(r * 100); + return (int) (r * 100); return r; } } diff --git a/com/gamingmesh/jobs/listeners/JobsListener.java b/com/gamingmesh/jobs/listeners/JobsListener.java index 11feb5bd..9be90088 100644 --- a/com/gamingmesh/jobs/listeners/JobsListener.java +++ b/com/gamingmesh/jobs/listeners/JobsListener.java @@ -90,6 +90,7 @@ public class JobsListener implements Listener { ItemStack iih = Jobs.getNms().getItemInMainHand(player); if (iih == null || iih.getType() == Material.AIR) return; + @SuppressWarnings("deprecation") int heldItemId = iih.getTypeId(); if (heldItemId != Jobs.getGCManager().getSelectionTooldID()) return; diff --git a/plugin.yml b/plugin.yml index fbded014..f08ec1c0 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,9 +1,9 @@ name: Jobs description: Jobs Plugin for the BukkitAPI main: com.gamingmesh.jobs.Jobs -version: 3.7.7 +version: 3.8.0 author: phrstbrn -softdepend: [Vault, iConomy, MythicMobs, McMMO, WorldEdit] +softdepend: [Vault, iConomy, MythicMobs, McMMO] commands: jobs: description: Jobs