From 9b88683fdc54906e7dae3cdeb3f0186a34267714 Mon Sep 17 00:00:00 2001 From: NewGarbo Date: Mon, 25 Jan 2016 17:00:38 +0000 Subject: [PATCH] fix cannon tnt exploding prematurely, added cooldown rather than using Recharge. --- .../game/clans/clans/siege/cannon/Cannon.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/cannon/Cannon.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/cannon/Cannon.java index d5c6c6f36..4be4e8be5 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/cannon/Cannon.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/cannon/Cannon.java @@ -44,8 +44,8 @@ import mineplex.core.common.util.UtilParticle.ParticleType; import mineplex.core.common.util.UtilParticle.ViewDist; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilTime; import mineplex.core.itemstack.ItemBuilder; -import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.game.clans.clans.ClanTips.TipType; @@ -55,7 +55,10 @@ public class Cannon implements Listener { public static final ItemStack CANNON_ITEM = new ItemBuilder(Material.IRON_BLOCK, 1).setRawTitle(C.cBlue + "Cannon").setLore(C.cWhite + "BOOM BABY!").build(); + public static final int COOLDOWN = 20 * 1000 /* 20 seconds*/; + public static final int MAX_SULPHUR = 3; + public static final int MAX_TNT = 1; public static final int TNT_SLOT = 4; public static final List SULPHUR_SLOTS = Arrays.asList(1, 3, 5, 7); @@ -201,7 +204,7 @@ public class Cannon implements Listener } } - @EventHandler + @EventHandler(priority = EventPriority.HIGHEST) public void onTntExplode(EntityExplodeEvent event) { // stop the tnt from exploding naturally @@ -238,14 +241,17 @@ public class Cannon implements Listener { if (canBeFired()) { - if (Recharge.Instance.use(_rider, "Fire Cannon", 10000 /* 10 seconds */, true, false)) + if (System.currentTimeMillis() - _lastFired < COOLDOWN) { - fire(); + UtilPlayer.message(_rider, F.main("Clans", "Cannon is cooling down.")); + return; } + + fire(); } else { - UtilPlayer.message(_rider, F.main("Clans", "Cannon is not correctly loaded.")); + UtilPlayer.message(_rider, F.main("Clans", "Cannon is not correctly loaded. (" + F.time(UtilTime.MakeStr(COOLDOWN - (System.currentTimeMillis() - _lastFired)) + ")"))); _rider.playSound(_rider.getLocation(), Sound.CLICK, 1.f, 1.f); } }