From 85522cddca099fce94e4d139d3f8708bdba035be Mon Sep 17 00:00:00 2001 From: Chiss Date: Fri, 15 Aug 2014 09:49:00 +1000 Subject: [PATCH 1/3] Debug (will clean once fixed) Game stats --- .../mineplex/core/cosmetic/ui/button/CloseButton.java | 2 ++ .../src/mineplex/core/punish/UI/PunishPage.java | 2 ++ .../Mineplex.Core/src/mineplex/core/shop/ShopBase.java | 3 +++ .../src/mineplex/core/shop/page/ConfirmationPage.java | 5 +++++ .../src/mineplex/hub/queue/ui/QueuePage.java | 2 ++ .../game/classcombat/shop/ClassCombatShop.java | 2 ++ .../game/classcombat/shop/page/CustomBuildPage.java | 1 + .../src/nautilus/game/arcade/ArcadeManager.java | 10 +++++----- .../nautilus/game/arcade/addons/TeamArmorAddon.java | 1 + .../src/nautilus/game/arcade/game/Game.java | 4 ++-- .../arcade/game/games/champions/ChampionsDominate.java | 2 +- .../game/arcade/game/games/champions/ChampionsTDM.java | 2 +- .../arcade/game/games/champions/kits/KitKnight.java | 2 +- .../game/arcade/game/games/common/TeamDeathmatch.java | 1 + .../nautilus/game/arcade/game/games/spleef/Spleef.java | 2 +- .../nautilus/game/arcade/managers/GameFlagManager.java | 1 + .../game/arcade/managers/GameLobbyManager.java | 1 + .../game/arcade/managers/GamePlayerManager.java | 1 + .../src/nautilus/game/arcade/managers/MiscManager.java | 2 ++ .../game/tutorial/action/types/InventoryClose.java | 1 + 20 files changed, 36 insertions(+), 11 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/CloseButton.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/CloseButton.java index ed48a635a..2f7073c37 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/CloseButton.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/CloseButton.java @@ -10,11 +10,13 @@ public class CloseButton implements IButton public void ClickedLeft(Player player) { player.closeInventory(); + System.out.println(this.getClass().getName() + " 13"); } @Override public void ClickedRight(Player player) { player.closeInventory(); + System.out.println(this.getClass().getName() + " 19"); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/punish/UI/PunishPage.java b/Plugins/Mineplex.Core/src/mineplex/core/punish/UI/PunishPage.java index 1f1d62099..c20389707 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/punish/UI/PunishPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/punish/UI/PunishPage.java @@ -426,6 +426,7 @@ public class PunishPage extends CraftInventoryCustom implements Listener { _plugin.AddPunishment(_target, category, _reason, _player, severity, ban, punishTime); _player.closeInventory(); + System.out.println(this.getClass().getName() + " 429"); ClosePunish(); } @@ -451,6 +452,7 @@ public class PunishPage extends CraftInventoryCustom implements Listener { punishment.Remove(_player.getName(), _reason); _player.closeInventory(); + System.out.println(this.getClass().getName() + " 455"); ClosePunish(); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/shop/ShopBase.java b/Plugins/Mineplex.Core/src/mineplex/core/shop/ShopBase.java index db6a620b9..ce3d8a79e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/shop/ShopBase.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/shop/ShopBase.java @@ -181,6 +181,7 @@ public abstract class ShopBase implements Listene PlayerPageMap.get(event.getPlayer().getName()).Dispose(); event.getPlayer().closeInventory(); + System.out.println(this.getClass().getName() + " 184"); CloseShopForPlayer(event.getPlayer()); PlayerPageMap.remove(event.getPlayer().getName()); @@ -199,6 +200,8 @@ public abstract class ShopBase implements Listene SetCurrentPageForPlayer(player, page); player.openInventory(page); + + System.out.println(this.getClass().getName() + " - player.openInventory(page);"); } public void SetCurrentPageForPlayer(Player player, ShopPageBase> page) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/shop/page/ConfirmationPage.java b/Plugins/Mineplex.Core/src/mineplex/core/shop/page/ConfirmationPage.java index 335c26931..fac8be755 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/shop/page/ConfirmationPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/shop/page/ConfirmationPage.java @@ -104,7 +104,11 @@ public class ConfirmationPage if (_closeOnNextUpdate) { Player.closeInventory(); + System.out.println(this.getClass().getName() + " 138"); return; } @@ -187,6 +188,7 @@ public class QueuePage extends ShopPageBase Plugin.respondToInvite(player, false); player.closeInventory(); + System.out.println(this.getClass().getName() + " 191"); } private void buildSquareAt(int slot, ShopItem item, IButton button) diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/ClassCombatShop.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/ClassCombatShop.java index 4c9ea1cbd..57c009d47 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/ClassCombatShop.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/ClassCombatShop.java @@ -56,6 +56,8 @@ public class ClassCombatShop extends ShopBase { if (!CanOpenShop(player)) return false; + + System.out.println(this.getClass().getName() + " - I CAN OPEN SHOP"); OpenedShop.add(player.getName()); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/page/CustomBuildPage.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/page/CustomBuildPage.java index 4fea97720..e2782064f 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/page/CustomBuildPage.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/page/CustomBuildPage.java @@ -149,6 +149,7 @@ public class CustomBuildPage extends ShopPageBase()); @@ -1079,7 +1079,7 @@ public abstract class Game implements Listener if (_stats.get(player).containsKey(stat)) past = _stats.get(player).get(stat); - _stats.get(player).put(stat, past + amount); + _stats.get(player).put(stat, limitTo1 ? Math.max(1, past + amount) : past + amount); } public NautHashMap> GetStats() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsDominate.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsDominate.java index d73395990..842710733 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsDominate.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsDominate.java @@ -61,7 +61,7 @@ public class ChampionsDominate extends Domination { SetKit(player, GetKits()[2], true); player.closeInventory(); - System.out.println("Closing inventory from validate kit"); + System.out.println(this.getClass().getName() + " 64"); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsTDM.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsTDM.java index fab78c4b4..2d8c46cc8 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsTDM.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsTDM.java @@ -57,7 +57,7 @@ public class ChampionsTDM extends TeamDeathmatch { SetKit(player, GetKits()[2], true); player.closeInventory(); - System.out.println("Closing inventory from validate kit"); + System.out.println(this.getClass().getName() + " 61"); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/kits/KitKnight.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/kits/KitKnight.java index 0acb6ca38..e38d71a46 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/kits/KitKnight.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/kits/KitKnight.java @@ -26,7 +26,7 @@ public class KitKnight extends Kit { "Knight of the realm, extremely good at", "defending and surviving.", - }, + }, new Perk[] { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/common/TeamDeathmatch.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/common/TeamDeathmatch.java index 3efce21ac..3446fcc0b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/common/TeamDeathmatch.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/common/TeamDeathmatch.java @@ -164,6 +164,7 @@ public class TeamDeathmatch extends TeamGame { SetKit(player, GetKits()[2], true); player.closeInventory(); + System.out.println(this.getClass().getName() + " 167"); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/Spleef.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/Spleef.java index fd5bbeb1f..8ff710f81 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/Spleef.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/Spleef.java @@ -134,7 +134,7 @@ public class Spleef extends SoloGame public void BlockFade(Block block, Player player) { - AddStat(player, "BlocksBroken", 1, false); + AddStat(player, "BlocksBroken", 1, false, false); UtilPlayer.hunger(player, 1); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameFlagManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameFlagManager.java index 5a116b736..3180ac725 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameFlagManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameFlagManager.java @@ -264,6 +264,7 @@ public class GameFlagManager implements Listener { event.setCancelled(true); event.getWhoClicked().closeInventory(); + System.out.println(this.getClass().getName() + " 267"); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java index d5830fca8..148f33cd6 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java @@ -1147,6 +1147,7 @@ public class GameLobbyManager implements IPacketRunnable, Listener { event.setCancelled(true); event.getWhoClicked().closeInventory(); + System.out.println(this.getClass().getName() + " 1150"); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GamePlayerManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GamePlayerManager.java index 155d3d9b6..750c4283e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GamePlayerManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GamePlayerManager.java @@ -150,6 +150,7 @@ public class GamePlayerManager implements Listener { event.setCancelled(true); event.getWhoClicked().closeInventory(); + System.out.println(this.getClass().getName() + " 153"); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/MiscManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/MiscManager.java index 9237ef4a7..a13a2a247 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/MiscManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/MiscManager.java @@ -81,12 +81,14 @@ public class MiscManager implements Listener { event.setCancelled(true); player.closeInventory(); + System.out.println(this.getClass().getName() + " 84"); } else if (Manager.GetGame().IsLive() && !Manager.GetGame().IsAlive(player) && !((CraftPlayer)player).getHandle().spectating) { event.setCancelled(true); player.closeInventory(); + System.out.println(this.getClass().getName() + " 91"); } } diff --git a/Plugins/Nautilus.Game.Tutorial/src/nautilus/game/tutorial/action/types/InventoryClose.java b/Plugins/Nautilus.Game.Tutorial/src/nautilus/game/tutorial/action/types/InventoryClose.java index 5175acede..1cd59db33 100644 --- a/Plugins/Nautilus.Game.Tutorial/src/nautilus/game/tutorial/action/types/InventoryClose.java +++ b/Plugins/Nautilus.Game.Tutorial/src/nautilus/game/tutorial/action/types/InventoryClose.java @@ -16,5 +16,6 @@ public class InventoryClose extends Action public void CustomAction(Player player) { player.closeInventory(); + System.out.println(this.getClass().getName() + " 19"); } } From 29db90837d9132c2422eccbc26dd39e36b900e0f Mon Sep 17 00:00:00 2001 From: Chiss Date: Fri, 15 Aug 2014 15:28:50 +1000 Subject: [PATCH 2/3] Spleef Update Map parser block stuff --- .../src/mineplex/mapparser/MapParser.java | 28 ++++ .../src/nautilus/game/arcade/game/Game.java | 5 - .../arcade/game/games/mineware/MineWare.java | 2 +- .../game/arcade/game/games/spleef/Spleef.java | 130 +++++++++++++----- .../arcade/game/games/spleef/SpleefTeams.java | 2 +- .../game/games/spleef/kits/KitBrawler.java | 9 +- .../game/games/spleef/kits/KitLeaper.java | 41 ------ 7 files changed, 134 insertions(+), 83 deletions(-) delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/kits/KitLeaper.java diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/MapParser.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/MapParser.java index c545f0c3b..bfb81c67e 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/MapParser.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/MapParser.java @@ -26,6 +26,10 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockFadeEvent; +import org.bukkit.event.block.BlockSpreadEvent; +import org.bukkit.event.block.LeavesDecayEvent; import org.bukkit.event.entity.EntitySpawnEvent; import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; @@ -635,6 +639,30 @@ public class MapParser extends JavaPlugin implements Listener event.setCancelled(true); } + @EventHandler + public void DisableBurn(BlockBurnEvent event) + { + event.setCancelled(true); + } + + @EventHandler + public void DisableFire(BlockSpreadEvent event) + { + event.setCancelled(true); + } + + @EventHandler + public void DisableFade(BlockFadeEvent event) + { + event.setCancelled(true); + } + + @EventHandler + public void DisableDecay(LeavesDecayEvent event) + { + event.setCancelled(true); + } + @EventHandler public void Updates(PlayerMoveEvent event) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java index 28cbff671..add3bc252 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java @@ -373,8 +373,6 @@ public abstract class Game implements Listener //Set Spawn Data team.SetSpawnRequirement(this.SpawnDistanceRequirement); - - System.out.println("Created Team: " + team.GetName()); } @@ -393,8 +391,6 @@ public abstract class Game implements Listener return false; } - - public void RestrictKits() { //Null Default @@ -409,7 +405,6 @@ public abstract class Game implements Listener for (Perk perk : kit.GetPerks()) UtilServer.getServer().getPluginManager().registerEvents(perk, Manager.GetPlugin()); } - } public void DeregisterKits() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/MineWare.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/MineWare.java index 67e00ff9e..ccc77ccc5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/MineWare.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/MineWare.java @@ -37,7 +37,7 @@ import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.game.SoloGame; import nautilus.game.arcade.game.games.mineware.order.Order; import nautilus.game.arcade.game.games.mineware.random.*; -import nautilus.game.arcade.game.games.spleef.kits.KitLeaper; +import nautilus.game.arcade.game.games.runner.kits.KitLeaper; import nautilus.game.arcade.kit.Kit; public class MineWare extends SoloGame diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/Spleef.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/Spleef.java index 8ff710f81..b02e448f7 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/Spleef.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/Spleef.java @@ -4,10 +4,13 @@ import java.lang.reflect.Field; import java.util.HashMap; import org.bukkit.Effect; +import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_7_R4.entity.CraftArrow; import org.bukkit.entity.Arrow; import org.bukkit.entity.Player; +import org.bukkit.entity.Snowball; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.block.BlockDamageEvent; @@ -17,7 +20,11 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilEnt; +import mineplex.core.common.util.UtilInv; +import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilPlayer; +import mineplex.core.itemstack.ItemStackFactory; +import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import nautilus.game.arcade.ArcadeManager; @@ -36,7 +43,7 @@ public class Spleef extends SoloGame new Kit[] { - new KitLeaper(manager), + new KitSnowballer(manager), new KitBrawler(manager), new KitArcher(manager) }, @@ -47,22 +54,67 @@ public class Spleef extends SoloGame "1 Hunger per block smashed!", "Last player alive wins!" }); - + this.DamagePvP = false; this.WorldWaterDamage = 4; - + this.PrepareFreeze = false; } + @EventHandler + public void SnowballDamage(ProjectileHitEvent event) + { + if (!(event.getEntity() instanceof Snowball)) + return; + + Snowball ball = (Snowball)event.getEntity(); + + if (ball.getShooter() == null || !(ball.getShooter() instanceof Player)) + return; + + Location loc = ball.getLocation().add(ball.getVelocity().multiply(0.8)); + + Block block = loc.getBlock(); + + //Find Nearest if hit nothing :O + if (block.getType() == Material.AIR) + { + Block closest = null; + double closestDist = 0; + + for (Block other : UtilBlock.getSurrounding(block, true)) + { + if (other.getType() == Material.AIR) + continue; + + double dist = UtilMath.offset(loc, other.getLocation().add(0.5, 0.5, 0.5)); + + if (closest == null || dist < closestDist) + { + closest = other; + closestDist = dist; + } + } + + if (closest != null) + block = closest; + } + + BlockFade(block, (Player)ball.getShooter(), false); + } + @EventHandler public void ArrowDamage(ProjectileHitEvent event) { + if (!(event.getEntity() instanceof Arrow)) + return; + final Arrow arrow = (Arrow)event.getEntity(); final double velocity = arrow.getVelocity().length(); - + if (!(arrow.getShooter() instanceof Player)) return; - + final Player player = (Player)arrow.getShooter(); Manager.GetPlugin().getServer().getScheduler().scheduleSyncDelayedTask(Manager.GetPlugin(), new Runnable() @@ -88,14 +140,14 @@ public class Spleef extends SoloGame Block block = arrow.getWorld().getBlockAt(x, y, z); double radius = 0.5 + velocity/1.6d; - - BlockFade(block, player); - + + BlockFade(block, player, false); + for (Block other : UtilBlock.getInRadius(block.getLocation().add(0.5, 0.5, 0.5), radius).keySet()) { - BlockFade(other, player); + BlockFade(other, player, true); } - + arrow.remove(); } catch (Exception e) @@ -105,39 +157,55 @@ public class Spleef extends SoloGame } }, 0); } - + @EventHandler(priority = EventPriority.LOW) public void BlockDamage(BlockDamageEvent event) { if (!this.IsLive()) return; - + if (!this.IsAlive(event.getPlayer())) return; event.setCancelled(true); - - BlockFade(event.getBlock(), event.getPlayer()); + + BlockFade(event.getBlock(), event.getPlayer(), false); + + //Snowball + if (GetKit(event.getPlayer()) instanceof KitSnowballer) + if (!UtilInv.contains(event.getPlayer(), Material.SNOW_BALL, (byte)0, 16)) + event.getPlayer().getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.SNOW_BALL)); } - - @EventHandler + + + //Ignore + //@EventHandler public void LeapDamage(PerkLeapEvent event) { if (!UtilEnt.isGrounded(event.GetPlayer())) return; - + for (Block block : UtilBlock.getInRadius(event.GetPlayer().getLocation().subtract(0, 1, 0), 3d, 0).keySet()) { - BlockFade(block, event.GetPlayer()); + BlockFade(block, event.GetPlayer(), false); } } - - public void BlockFade(Block block, Player player) + + public void BlockFade(Block block, Player player, boolean slowDamage) { AddStat(player, "BlocksBroken", 1, false, false); - - UtilPlayer.hunger(player, 1); - + + //Prevent Super Hunger from Bow + if (Recharge.Instance.use(player, GetName() + " Hunger", 50, false, false)) + if (block.getTypeId() != 7) + UtilPlayer.hunger(player, 1); + + if (!slowDamage) + { + Break(block); + return; + } + //Wool and Stained Clay if (block.getTypeId() == 35 || block.getTypeId() == 159) { @@ -168,7 +236,7 @@ public class Spleef extends SoloGame else Break(block); } - + //Grass else if (block.getTypeId() == 2) { @@ -183,7 +251,7 @@ public class Spleef extends SoloGame else if (block.getData() == 0) block.setData((byte)2); - + else Break(block); } @@ -194,22 +262,22 @@ public class Spleef extends SoloGame Break(block); } } - + public void Break(Block block) { block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getTypeId()); block.setTypeId(0); } - + @EventHandler public void Hunger(UpdateEvent event) { if (event.getType() != UpdateType.SEC) return; - + if (!IsLive()) return; - + for (Player player : GetPlayers(true)) { if (player.getFoodLevel() <= 0) @@ -217,10 +285,10 @@ public class Spleef extends SoloGame Manager.GetDamage().NewDamageEvent(player, null, null, DamageCause.STARVATION, 1, false, true, false, "Starvation", GetName()); - + UtilPlayer.message(player, F.main("Game", "Break blocks to restore hunger!")); } - + UtilPlayer.hunger(player, -1); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/SpleefTeams.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/SpleefTeams.java index a88aa451d..a91c3ad82 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/SpleefTeams.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/SpleefTeams.java @@ -35,7 +35,7 @@ public class SpleefTeams extends TeamGame new Kit[] { - new KitLeaper(manager), + new KitSnowballer(manager), new KitBrawler(manager), new KitArcher(manager) }, diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/kits/KitBrawler.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/kits/KitBrawler.java index 463520c67..92c5bf99e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/kits/KitBrawler.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/kits/KitBrawler.java @@ -20,22 +20,23 @@ public class KitBrawler extends Kit new String[] { - "Much stronger knockback than other kits." + "Very leap. Such knockback. Wow." }, new Perk[] { + new PerkLeap("Leap", 1.2, 1.2, 6000), new PerkSmasher(), new PerkKnockback(0.6) }, - EntityType.ZOMBIE, - new ItemStack(Material.IRON_SWORD)); + EntityType.SKELETON, + new ItemStack(Material.IRON_AXE)); } @Override public void GiveItems(Player player) { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_SWORD)); + player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_AXE)); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/kits/KitLeaper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/kits/KitLeaper.java deleted file mode 100644 index 62f637fe9..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/kits/KitLeaper.java +++ /dev/null @@ -1,41 +0,0 @@ -package nautilus.game.arcade.game.games.spleef.kits; - -import org.bukkit.Material; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - -import mineplex.core.itemstack.ItemStackFactory; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.kit.Kit; -import nautilus.game.arcade.kit.KitAvailability; -import nautilus.game.arcade.kit.Perk; -import nautilus.game.arcade.kit.perks.*; - -public class KitLeaper extends Kit -{ - public KitLeaper(ArcadeManager manager) - { - super(manager, "Jumper", KitAvailability.Free, - - new String[] - { - "Leap to escape and damage blocks!" - }, - - new Perk[] - { - new PerkLeap("Smashing Leap", 1.2, 1.2, 8000), - new PerkKnockback(0.3) - }, - EntityType.PIG_ZOMBIE, - new ItemStack(Material.STONE_AXE)); - - } - - @Override - public void GiveItems(Player player) - { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.STONE_AXE)); - } -} From da8aa3f1e32c08b52eac16214a2abf4cfa9011f1 Mon Sep 17 00:00:00 2001 From: Ty Date: Fri, 15 Aug 2014 11:33:34 -0400 Subject: [PATCH 3/3] Fix issue where broken Jedis resources were not being properly handled. --- .../serverdata/RedisServerRepository.java | 100 ++++++++++++++++-- 1 file changed, 91 insertions(+), 9 deletions(-) diff --git a/Plugins/Mineplex.ServerData/src/mineplex/serverdata/RedisServerRepository.java b/Plugins/Mineplex.ServerData/src/mineplex/serverdata/RedisServerRepository.java index 7d8cfa140..1ae8cf16c 100644 --- a/Plugins/Mineplex.ServerData/src/mineplex/serverdata/RedisServerRepository.java +++ b/Plugins/Mineplex.ServerData/src/mineplex/serverdata/RedisServerRepository.java @@ -14,6 +14,7 @@ import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.Pipeline; import redis.clients.jedis.Response; import redis.clients.jedis.Transaction; +import redis.clients.jedis.exceptions.JedisConnectionException; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -73,9 +74,18 @@ public class RedisServerRepository implements ServerRepository servers.add(Utility.deserialize(serializedData, MinecraftServer.class)); } } + catch (JedisConnectionException exception) + { + exception.printStackTrace(); + _jedisPool.returnBrokenResource(jedis); + jedis = null; + } finally { - _jedisPool.returnResource(jedis); + if (jedis != null) + { + _jedisPool.returnResource(jedis); + } } return servers; @@ -94,9 +104,18 @@ public class RedisServerRepository implements ServerRepository String serializedData = jedis.get(dataKey); server = Utility.deserialize(serializedData, MinecraftServer.class); } + catch (JedisConnectionException exception) + { + exception.printStackTrace(); + _jedisPool.returnBrokenResource(jedis); + jedis = null; + } finally { - _jedisPool.returnResource(jedis); + if (jedis != null) + { + _jedisPool.returnResource(jedis); + } } return server; @@ -120,9 +139,18 @@ public class RedisServerRepository implements ServerRepository transaction.zadd(setKey, expiry, serverName); transaction.exec(); } + catch (JedisConnectionException exception) + { + exception.printStackTrace(); + _jedisPool.returnBrokenResource(jedis); + jedis = null; + } finally { - _jedisPool.returnResource(jedis); + if (jedis != null) + { + _jedisPool.returnResource(jedis); + } } } @@ -142,9 +170,18 @@ public class RedisServerRepository implements ServerRepository transaction.zrem(setKey, serverName); transaction.exec(); } + catch (JedisConnectionException exception) + { + exception.printStackTrace(); + _jedisPool.returnBrokenResource(jedis); + jedis = null; + } finally { - _jedisPool.returnResource(jedis); + if (jedis != null) + { + _jedisPool.returnResource(jedis); + } } } @@ -188,9 +225,18 @@ public class RedisServerRepository implements ServerRepository } } + catch (JedisConnectionException exception) + { + exception.printStackTrace(); + _jedisPool.returnBrokenResource(jedis); + jedis = null; + } finally { - _jedisPool.returnResource(jedis); + if (jedis != null) + { + _jedisPool.returnResource(jedis); + } } Map serverGroups = new HashMap(); @@ -233,9 +279,18 @@ public class RedisServerRepository implements ServerRepository servers.add(new ServerGroup(data, _region)); } } + catch (JedisConnectionException exception) + { + exception.printStackTrace(); + _jedisPool.returnBrokenResource(jedis); + jedis = null; + } finally { - _jedisPool.returnResource(jedis); + if (jedis != null) + { + _jedisPool.returnResource(jedis); + } } return servers; @@ -259,9 +314,18 @@ public class RedisServerRepository implements ServerRepository transaction.exec(); } } + catch (JedisConnectionException exception) + { + exception.printStackTrace(); + _jedisPool.returnBrokenResource(jedis); + jedis = null; + } finally { - _jedisPool.returnResource(jedis); + if (jedis != null) + { + _jedisPool.returnResource(jedis); + } } return 0; @@ -283,9 +347,18 @@ public class RedisServerRepository implements ServerRepository String max = "+inf"; names = jedis.zrangeByScore(key, min, max); } + catch (JedisConnectionException exception) + { + exception.printStackTrace(); + _jedisPool.returnBrokenResource(jedis); + jedis = null; + } finally { - _jedisPool.returnResource(jedis); + if (jedis != null) + { + _jedisPool.returnResource(jedis); + } } return names; @@ -306,9 +379,18 @@ public class RedisServerRepository implements ServerRepository String max = System.currentTimeMillis() + ""; names = jedis.zrangeByScore(key, min, max); } + catch (JedisConnectionException exception) + { + exception.printStackTrace(); + _jedisPool.returnBrokenResource(jedis); + jedis = null; + } finally { - _jedisPool.returnResource(jedis); + if (jedis != null) + { + _jedisPool.returnResource(jedis); + } } return names;