From be0bb1ef157e28cbb3e56b357cd8a359ffe24b41 Mon Sep 17 00:00:00 2001 From: Zrips Date: Sun, 26 May 2019 12:36:00 +0300 Subject: [PATCH] Fixing McMMO issue --- src/main/java/com/gamingmesh/jobs/Jobs.java | 4 ++- .../jobs/McMMO/McMMO1_X_listener.java | 5 ++-- .../jobs/McMMO/McMMO2_X_listener.java | 10 +++++-- .../gamingmesh/jobs/McMMO/McMMOManager.java | 29 +++++++++---------- .../gamingmesh/jobs/config/ConfigManager.java | 9 +++--- 5 files changed, 33 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/gamingmesh/jobs/Jobs.java b/src/main/java/com/gamingmesh/jobs/Jobs.java index 28e64737..63c1e294 100644 --- a/src/main/java/com/gamingmesh/jobs/Jobs.java +++ b/src/main/java/com/gamingmesh/jobs/Jobs.java @@ -176,8 +176,10 @@ public class Jobs extends JavaPlugin { try { Class.forName("com.gmail.nossr50.datatypes.skills.SuperAbilityType"); getServer().getPluginManager().registerEvents(new McMMO2_X_listener(this), this); + consoleMsg("&e[Jobs] Registered McMMO 2.x listener"); } catch (Throwable e) { getServer().getPluginManager().registerEvents(new McMMO1_X_listener(this), this); + consoleMsg("&e[Jobs] Registered McMMO 1.x listener"); } } @@ -1355,7 +1357,7 @@ public class Jobs extends JavaPlugin { public static boolean hasPermission(Object sender, String perm, boolean rawEnable) { if (!(sender instanceof Player)) return true; - + if (((Player) sender).hasPermission(perm)) return true; if (!rawEnable) { diff --git a/src/main/java/com/gamingmesh/jobs/McMMO/McMMO1_X_listener.java b/src/main/java/com/gamingmesh/jobs/McMMO/McMMO1_X_listener.java index f4c4e6fe..a7404929 100644 --- a/src/main/java/com/gamingmesh/jobs/McMMO/McMMO1_X_listener.java +++ b/src/main/java/com/gamingmesh/jobs/McMMO/McMMO1_X_listener.java @@ -66,8 +66,9 @@ public class McMMO1_X_listener implements Listener { try { Object ab = event.getClass().getMethod("getAbility").invoke(event); - int maxLenght = (int) ab.getClass().getMethod("getMaxLength").invoke(ab); - InfoMap.put(String.valueOf(ab), System.currentTimeMillis() + (maxLenght * 1000)); +// Lets use fixed timer as this tend to return 0 +// int maxLenght = (int) ab.getClass().getMethod("getMaxLength").invoke(ab); + InfoMap.put(String.valueOf(ab), System.currentTimeMillis() + (30 * 1000)); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) { e.printStackTrace(); } diff --git a/src/main/java/com/gamingmesh/jobs/McMMO/McMMO2_X_listener.java b/src/main/java/com/gamingmesh/jobs/McMMO/McMMO2_X_listener.java index 39e64eb8..68058f68 100644 --- a/src/main/java/com/gamingmesh/jobs/McMMO/McMMO2_X_listener.java +++ b/src/main/java/com/gamingmesh/jobs/McMMO/McMMO2_X_listener.java @@ -13,8 +13,10 @@ import com.gamingmesh.jobs.Jobs; import com.gamingmesh.jobs.actions.ItemActionInfo; import com.gamingmesh.jobs.container.ActionType; import com.gamingmesh.jobs.container.JobsPlayer; +import com.gamingmesh.jobs.stuff.Debug; import com.gmail.nossr50.events.skills.abilities.McMMOPlayerAbilityActivateEvent; import com.gmail.nossr50.events.skills.abilities.McMMOPlayerAbilityDeactivateEvent; +import com.gmail.nossr50.events.skills.abilities.McMMOPlayerAbilityEvent; import com.gmail.nossr50.events.skills.repair.McMMOPlayerRepairCheckEvent; public class McMMO2_X_listener implements Listener { @@ -55,6 +57,10 @@ public class McMMO2_X_listener implements Listener { Jobs.action(jPlayer, new ItemActionInfo(resultStack, ActionType.REPAIR)); } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void OnAbility(McMMOPlayerAbilityEvent event) { + } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public void OnAbilityOn(McMMOPlayerAbilityActivateEvent event) { HashMap InfoMap = Jobs.getMcMMOManager().getMap().get(event.getPlayer().getUniqueId()); @@ -62,12 +68,12 @@ public class McMMO2_X_listener implements Listener { InfoMap = new HashMap<>(); Jobs.getMcMMOManager().getMap().put(event.getPlayer().getUniqueId(), InfoMap); } - - InfoMap.put(event.getAbility().toString(), System.currentTimeMillis() + (event.getAbility().getMaxLength() * 1000)); + InfoMap.put(event.getAbility().toString(), System.currentTimeMillis() + (30 * 1000)); } @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public void OnAbilityOff(McMMOPlayerAbilityDeactivateEvent event) { + Debug.D("active " + event.getAbility()); HashMap InfoMap = Jobs.getMcMMOManager().getMap().get(event.getPlayer().getUniqueId()); if (InfoMap != null) { InfoMap.remove(event.getAbility().toString()); diff --git a/src/main/java/com/gamingmesh/jobs/McMMO/McMMOManager.java b/src/main/java/com/gamingmesh/jobs/McMMO/McMMOManager.java index e1901e25..08188637 100644 --- a/src/main/java/com/gamingmesh/jobs/McMMO/McMMOManager.java +++ b/src/main/java/com/gamingmesh/jobs/McMMO/McMMOManager.java @@ -25,46 +25,45 @@ public class McMMOManager { HashMap InfoMap = map.get(player.getUniqueId()); if (InfoMap == null) return 0D; - if (mcMMOOverHaul) { - Long t = InfoMap.get(SuperAbilityType.TREE_FELLER.getName()); + Long t = InfoMap.get(SuperAbilityType.TREE_FELLER.toString()); if (t != null) { - if (t < System.currentTimeMillis()) + if (t > System.currentTimeMillis()) return -(1 - Jobs.getGCManager().TreeFellerMultiplier); - InfoMap.remove(SuperAbilityType.TREE_FELLER.getName()); + InfoMap.remove(SuperAbilityType.TREE_FELLER.toString()); } - - t = InfoMap.get(SuperAbilityType.GIGA_DRILL_BREAKER.getName()); + + t = InfoMap.get(SuperAbilityType.GIGA_DRILL_BREAKER.toString()); if (t != null) { - if (t < System.currentTimeMillis()) + if (t > System.currentTimeMillis()) return -(1 - Jobs.getGCManager().gigaDrillMultiplier); - InfoMap.remove(SuperAbilityType.GIGA_DRILL_BREAKER.getName()); + InfoMap.remove(SuperAbilityType.GIGA_DRILL_BREAKER.toString()); } - - t = InfoMap.get(SuperAbilityType.SUPER_BREAKER.getName()); + + t = InfoMap.get(SuperAbilityType.SUPER_BREAKER.toString()); if (t != null) { - if (t < System.currentTimeMillis()) + if (t > System.currentTimeMillis()) return -(1 - Jobs.getGCManager().superBreakerMultiplier); - InfoMap.remove(SuperAbilityType.SUPER_BREAKER.getName()); + InfoMap.remove(SuperAbilityType.SUPER_BREAKER.toString()); } } else if (mcMMOPresent) { Long t = InfoMap.get("TREE_FELLER"); if (t != null) { - if (t < System.currentTimeMillis()) + if (t > System.currentTimeMillis()) return -(1 - Jobs.getGCManager().TreeFellerMultiplier); InfoMap.remove("TREE_FELLER"); } t = InfoMap.get("GIGA_DRILL_BREAKER"); if (t != null) { - if (t < System.currentTimeMillis()) + if (t > System.currentTimeMillis()) return -(1 - Jobs.getGCManager().gigaDrillMultiplier); InfoMap.remove("GIGA_DRILL_BREAKER"); } t = InfoMap.get("SUPER_BREAKER"); if (t != null) { - if (t < System.currentTimeMillis()) + if (t > System.currentTimeMillis()) return -(1 - Jobs.getGCManager().superBreakerMultiplier); InfoMap.remove("SUPER_BREAKER"); } diff --git a/src/main/java/com/gamingmesh/jobs/config/ConfigManager.java b/src/main/java/com/gamingmesh/jobs/config/ConfigManager.java index 8f39b46d..60dbc8f3 100644 --- a/src/main/java/com/gamingmesh/jobs/config/ConfigManager.java +++ b/src/main/java/com/gamingmesh/jobs/config/ConfigManager.java @@ -873,11 +873,12 @@ public class ConfigManager { ActionType actionType = ActionType.getByName(sqsection.getString("Action")); KeyValues kv = null; - if (sqsection.isString("Target")) + if (sqsection.isString("Target")){ kv = getKeyValue(sqsection.getString("Target"), actionType, jobName); - else if (sqsection.isList("Target")) { - for (int i = 0; i < sqsection.getStringList("Target").size(); i++) { - kv = getKeyValue(sqsection.getStringList("Target").get(i), actionType, jobName); + }else if (sqsection.isList("Target")) { + List list = sqsection.getStringList("Target"); + for (int i = 0; i < list.size(); i++) { + kv = getKeyValue(list.get(i), actionType, jobName); } }