From d0e49280a48ce9bb530d0ccd119090c3f11bdf99 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Wed, 28 Oct 2015 13:34:03 -0400 Subject: [PATCH 01/22] Added a sniper kit! :D --- .../game/games/paintball/Paintball.java | 5 + .../games/paintball/kits/KitMachineGun.java | 1 + .../game/games/paintball/kits/KitRifle.java | 1 + .../game/games/paintball/kits/KitShotgun.java | 1 + .../game/games/paintball/kits/KitSniper.java | 77 +++++++++ .../kits}/perks/PerkPaintballMachineGun.java | 2 +- .../kits}/perks/PerkPaintballRifle.java | 2 +- .../kits}/perks/PerkPaintballShotgun.java | 2 +- .../kits/perks/PerkPaintballSniper.java | 147 ++++++++++++++++++ 9 files changed, 235 insertions(+), 3 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java rename Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/{kit => game/games/paintball/kits}/perks/PerkPaintballMachineGun.java (98%) rename Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/{kit => game/games/paintball/kits}/perks/PerkPaintballRifle.java (97%) rename Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/{kit => game/games/paintball/kits}/perks/PerkPaintballShotgun.java (97%) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java index 19ead99b7..57ea34f63 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java @@ -24,6 +24,7 @@ import nautilus.game.arcade.game.TeamGame; import nautilus.game.arcade.game.games.paintball.kits.KitMachineGun; import nautilus.game.arcade.game.games.paintball.kits.KitRifle; import nautilus.game.arcade.game.games.paintball.kits.KitShotgun; +import nautilus.game.arcade.game.games.paintball.kits.KitSniper; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.stats.KillFastStatTracker; import nautilus.game.arcade.stats.LastStandStatTracker; @@ -262,6 +263,10 @@ public class Paintball extends TeamGame { count = 3; } + if (GetKit(damager) instanceof KitSniper) + { + count = ((KitSniper) GetKit(damager)).getPaintDamage(damager); + } } //Out diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitMachineGun.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitMachineGun.java index 3c6db6cc1..04a62d950 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitMachineGun.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitMachineGun.java @@ -11,6 +11,7 @@ import org.bukkit.inventory.meta.PotionMeta; import mineplex.core.common.util.C; import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballMachineGun; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitRifle.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitRifle.java index 4bbf4b523..ac0f1b480 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitRifle.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitRifle.java @@ -12,6 +12,7 @@ import org.bukkit.potion.PotionEffectType; import mineplex.core.common.util.C; import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballRifle; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitShotgun.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitShotgun.java index a397ccb10..ce2e2db69 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitShotgun.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitShotgun.java @@ -11,6 +11,7 @@ import org.bukkit.inventory.meta.PotionMeta; import mineplex.core.common.util.C; import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballShotgun; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java new file mode 100644 index 000000000..8075cd4ee --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java @@ -0,0 +1,77 @@ +package nautilus.game.arcade.game.games.paintball.kits; + +import mineplex.core.achievement.Achievement; +import mineplex.core.common.util.C; +import mineplex.core.common.util.UtilInv; +import mineplex.core.itemstack.ItemBuilder; +import mineplex.core.itemstack.ItemStackFactory; +import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballShotgun; +import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballSniper; +import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.kit.KitAvailability; +import nautilus.game.arcade.kit.Perk; +import nautilus.game.arcade.kit.perks.PerkSlow; + +import org.bukkit.Color; +import org.bukkit.Material; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class KitSniper extends Kit +{ + public KitSniper(ArcadeManager manager) + { + super(manager, "Sniper", KitAvailability.Achievement, + + new String[] + { + "Long range sniper rifle", + C.cGold + "Higher damage every second scoped" + }, + + new Perk[] + { + new PerkPaintballShotgun(), + new PerkSlow(0) + }, + EntityType.ZOMBIE, + new ItemStack(Material.STONE_HOE)); + + setAchievementRequirements(new Achievement[] + { + Achievement.SUPER_PAINTBALL_FLAWLESS_VICTORY, + Achievement.SUPER_PAINTBALL_KILLING_SPREE, + Achievement.SUPER_PAINTBALL_LAST_STAND, + Achievement.SUPER_PAINTBALL_MEDIC, + Achievement.SUPER_PAINTBALL_SPEEDRUNNER, + Achievement.SUPER_PAINTBALL_WINS + }); + } + + @Override + public void GiveItems(Player player) + { + player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.STONE_HOE, (byte)0, 1, C.cWhite + "Paintball Sniper Rifle")); + + UtilInv.insert(player, ItemStackFactory.Instance.CreateStack(Material.POTION, (byte) 16429, 1, "Water Bomb")); + + player.getInventory().setHelmet(new ItemBuilder(Material.LEATHER_HELMET).setColor(Color.WHITE).build()); + player.getInventory().setChestplate(new ItemBuilder(Material.LEATHER_CHESTPLATE).setColor(Color.WHITE).build()); + player.getInventory().setLeggings(new ItemBuilder(Material.LEATHER_LEGGINGS).setColor(Color.WHITE).build()); + player.getInventory().setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setColor(Color.WHITE).build()); + } + + public int getPaintDamage(Player player) + { + for (Perk perk : this.GetPerks()) + { + if (perk instanceof PerkPaintballSniper) + { + return ((PerkPaintballSniper) perk).getPaintDamage(player); + } + } + return 0; + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballMachineGun.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballMachineGun.java similarity index 98% rename from Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballMachineGun.java rename to Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballMachineGun.java index f2097476a..9cc331b61 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballMachineGun.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballMachineGun.java @@ -1,4 +1,4 @@ -package nautilus.game.arcade.kit.perks; +package nautilus.game.arcade.game.games.paintball.kits.perks; import org.bukkit.ChatColor; import org.bukkit.Material; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballRifle.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballRifle.java similarity index 97% rename from Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballRifle.java rename to Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballRifle.java index d977b8cfc..963da3e0c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballRifle.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballRifle.java @@ -1,4 +1,4 @@ -package nautilus.game.arcade.kit.perks; +package nautilus.game.arcade.game.games.paintball.kits.perks; import org.bukkit.ChatColor; import org.bukkit.Material; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballShotgun.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballShotgun.java similarity index 97% rename from Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballShotgun.java rename to Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballShotgun.java index 257f58a15..6c14682f9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballShotgun.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballShotgun.java @@ -1,4 +1,4 @@ -package nautilus.game.arcade.kit.perks; +package nautilus.game.arcade.game.games.paintball.kits.perks; import org.bukkit.ChatColor; import org.bukkit.Material; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java new file mode 100644 index 000000000..fd2d18031 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java @@ -0,0 +1,147 @@ +package nautilus.game.arcade.game.games.paintball.kits.perks; + +import java.util.HashMap; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilEvent; +import mineplex.core.common.util.UtilEvent.ActionType; +import mineplex.core.common.util.UtilGear; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.recharge.Recharge; +import mineplex.core.recharge.RechargedEvent; +import mineplex.core.updater.event.UpdateEvent; +import mineplex.minecraft.game.core.condition.Condition.ConditionType; +import nautilus.game.arcade.kit.Perk; + +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.EnderPearl; +import org.bukkit.entity.Player; +import org.bukkit.entity.Projectile; +import org.bukkit.entity.Snowball; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerInteractEvent; + +public class PerkPaintballSniper extends Perk +{ + private HashMap _crouching = new HashMap(); + + public PerkPaintballSniper() + { + super("Sniper Rifle", new String[] + { + C.cYellow + "Crouch" + C.cGray + " to use " + C.cGreen + "Scope", + C.cYellow + "Right-Click" + C.cGray + " to use " + C.cGreen + "Shotgun" + }); + } + + @EventHandler + public void Recharge(RechargedEvent event) + { + if (!event.GetAbility().equals(GetName())) + return; + + event.GetPlayer().playSound(event.GetPlayer().getLocation(), Sound.NOTE_STICKS, 2f, 1f); + event.GetPlayer().playSound(event.GetPlayer().getLocation(), Sound.NOTE_STICKS, 2f, 1.5f); + } + + @EventHandler + public void Shoot(PlayerInteractEvent event) + { + if (!Manager.GetGame().IsLive()) + return; + + if (!UtilEvent.isAction(event, ActionType.R)) + return; + + if (UtilBlock.usable(event.getClickedBlock())) + return; + + if (!UtilGear.isMat(event.getItem(), Material.STONE_HOE)) + return; + + Player player = event.getPlayer(); + + if (!Manager.IsAlive(player)) + return; + + if (UtilPlayer.isSpectator(player)) + return; + + if (!Kit.HasKit(player)) + return; + + event.setCancelled(true); + + if (!Recharge.Instance.use(player, GetName(), 1400, true, false)) + return; + + Projectile proj = player.launchProjectile(Manager.GetGame().GetTeam(player).GetColor() == ChatColor.AQUA ? Snowball.class : EnderPearl.class); + + proj.setVelocity(proj.getVelocity().normalize().multiply(4)); + + //Sound + player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 0.8f, 1f); + } + + @EventHandler + public void onUpdate(UpdateEvent event) + { + if (!Manager.GetGame().IsLive()) + return; + + //Cleanup check + HashMap copyMap = new HashMap(); + copyMap.putAll(_crouching); + for (Player player : copyMap.keySet()) + { + boolean remove = false; + if (!Manager.GetGame().IsAlive(player)) + remove = true; + + if (UtilPlayer.isSpectator(player)) + remove = true; + + if (!player.isSneaking()) + remove = true; + + if (remove) + { + _crouching.remove(player); + + // Zoom + if (Manager.GetCondition().HasCondition(player, ConditionType.SLOW, GetName())) + Manager.GetCondition().EndCondition(player, ConditionType.SLOW, GetName()); + } + } + + //Add check + for (Player player : Manager.GetGame().GetPlayers(true)) + { + if (UtilPlayer.isSpectator(player)) + continue; + + if (!player.isSneaking()) + continue; + + if (_crouching.containsKey(player)) + continue; + + _crouching.put(player, System.currentTimeMillis()); + + // Zoom + if (!Manager.GetCondition().HasCondition(player, ConditionType.SLOW, GetName())) + Manager.GetCondition().Factory().Slow(GetName(), player, null, Double.MAX_VALUE, 5, false, false, false, false); + } + } + + public int getPaintDamage(Player player) + { + if (!_crouching.containsKey(player)) + return 1; + + return (int) Math.max(1, Math.floor((System.currentTimeMillis() - _crouching.get(player)) / 1000)); + } +} \ No newline at end of file From a7070065580085448aa48288574312b1a497da24 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Wed, 28 Oct 2015 21:42:41 -0400 Subject: [PATCH 02/22] Work. Deemed unsuitable due to an issue with the paintballs flying wide. --- .../game/games/paintball/Paintball.java | 31 +++- .../game/games/paintball/PlayerCopy.java | 3 - .../games/paintball/kits/KitMachineGun.java | 52 ++----- .../game/games/paintball/kits/KitRifle.java | 57 +++---- .../game/games/paintball/kits/KitShotgun.java | 53 +++---- .../game/games/paintball/kits/KitSniper.java | 32 ++-- .../kits/perks/PerkPaintballSniper.java | 146 ++++++++++++++++-- 7 files changed, 233 insertions(+), 141 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java index 57ea34f63..2dd4344b2 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java @@ -7,6 +7,10 @@ import java.util.Iterator; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilEvent; +import mineplex.core.common.util.UtilEvent.ActionType; +import mineplex.core.common.util.UtilGear; +import mineplex.core.common.util.UtilInv; import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; @@ -56,6 +60,7 @@ import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerEvent; +import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -98,6 +103,7 @@ public class Paintball extends TeamGame private HashMap _doubles = new HashMap(); + @SuppressWarnings("unchecked") public Paintball(ArcadeManager manager) { super(manager, GameType.Paintball, @@ -107,6 +113,7 @@ public class Paintball extends TeamGame new KitRifle(manager), new KitShotgun(manager), new KitMachineGun(manager), + new KitSniper(manager), }, new String[] @@ -162,6 +169,7 @@ public class Paintball extends TeamGame event.setCancelled(true); } + @SuppressWarnings("deprecation") @EventHandler public void Paint(ProjectileHitEvent event) { @@ -265,7 +273,10 @@ public class Paintball extends TeamGame } if (GetKit(damager) instanceof KitSniper) { - count = ((KitSniper) GetKit(damager)).getPaintDamage(damager); + count = ((KitSniper) GetKit(damager)).getPaintDamage(event.GetProjectile()); + + if (count == -1) + count = 1; } } @@ -517,4 +528,22 @@ public class Paintball extends TeamGame for (Player player : GetPlayers(true)) player.removePotionEffect(PotionEffectType.WATER_BREATHING); } + + @EventHandler + public void onHeal(PlayerInteractEvent event) + { + if (!IsLive()) + return; + + if (!UtilEvent.isAction(event, ActionType.R)) + return; + + if (!UtilGear.isMat(event.getItem(), Material.POTION)) + return; + + if (!IsAlive(event.getPlayer()) || UtilPlayer.isSpectator(event.getPlayer())) + event.setCancelled(true); + + UtilInv.Update(event.getPlayer()); + } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopy.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopy.java index b072dea9a..787c23296 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopy.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopy.java @@ -2,12 +2,9 @@ package nautilus.game.arcade.game.games.paintball; import mineplex.core.common.util.C; import mineplex.core.common.util.UtilEnt; -import mineplex.core.disguise.disguises.DisguisePlayer; import nautilus.game.arcade.game.Game; import org.bukkit.ChatColor; -import org.bukkit.EntityEffect; -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.entity.Skeleton; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitMachineGun.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitMachineGun.java index 04a62d950..591abb677 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitMachineGun.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitMachineGun.java @@ -1,21 +1,22 @@ package nautilus.game.arcade.game.games.paintball.kits; -import org.bukkit.Color; -import org.bukkit.Material; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.LeatherArmorMeta; -import org.bukkit.inventory.meta.PotionMeta; - import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilInv; +import mineplex.core.itemstack.ItemBuilder; import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballMachineGun; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; -import nautilus.game.arcade.kit.perks.*; + +import org.bukkit.Color; +import org.bukkit.Material; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.PotionMeta; public class KitMachineGun extends Kit { @@ -40,36 +41,17 @@ public class KitMachineGun extends Kit @Override public void GiveItems(Player player) { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.DIAMOND_BARDING, (byte)0, 1, "Paintball Machine Gun")); + UtilInv.insert(player, ItemStackFactory.Instance.CreateStack(Material.DIAMOND_BARDING, (byte)0, 1, F.item("Paintball Machine Gun"))); ItemStack potion = new ItemStack(Material.POTION, 3, (short)16429); // 16422 PotionMeta potionMeta = (PotionMeta)potion.getItemMeta(); - potionMeta.setDisplayName("Water Bomb"); + potionMeta.setDisplayName(F.item("Water Bomb")); potion.setItemMeta(potionMeta); - player.getInventory().addItem(potion); - - ItemStack helm = new ItemStack(Material.LEATHER_HELMET); - LeatherArmorMeta metaHelm = (LeatherArmorMeta)helm.getItemMeta(); - metaHelm.setColor(Color.WHITE); - helm.setItemMeta(metaHelm); - player.getInventory().setHelmet(helm); + UtilInv.insert(player, potion); - ItemStack armor = new ItemStack(Material.LEATHER_CHESTPLATE); - LeatherArmorMeta meta = (LeatherArmorMeta)armor.getItemMeta(); - meta.setColor(Color.WHITE); - armor.setItemMeta(meta); - player.getInventory().setChestplate(armor); - - ItemStack legs = new ItemStack(Material.LEATHER_LEGGINGS); - LeatherArmorMeta metaLegs = (LeatherArmorMeta)armor.getItemMeta(); - metaLegs.setColor(Color.WHITE); - legs.setItemMeta(metaLegs); - player.getInventory().setLeggings(legs); - - ItemStack boots = new ItemStack(Material.LEATHER_BOOTS); - LeatherArmorMeta metaBoots = (LeatherArmorMeta)armor.getItemMeta(); - metaBoots.setColor(Color.WHITE); - boots.setItemMeta(metaBoots); - player.getInventory().setBoots(boots); + player.getInventory().setHelmet(new ItemBuilder(Material.LEATHER_HELMET).setUnbreakable(true).setColor(Color.WHITE).build()); + player.getInventory().setChestplate(new ItemBuilder(Material.LEATHER_CHESTPLATE).setUnbreakable(true).setColor(Color.WHITE).build()); + player.getInventory().setLeggings(new ItemBuilder(Material.LEATHER_LEGGINGS).setUnbreakable(true).setColor(Color.WHITE).build()); + player.getInventory().setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setUnbreakable(true).setColor(Color.WHITE).build()); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitRifle.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitRifle.java index ac0f1b480..db88ea43c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitRifle.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitRifle.java @@ -1,22 +1,23 @@ package nautilus.game.arcade.game.games.paintball.kits; -import org.bukkit.Color; -import org.bukkit.Material; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.LeatherArmorMeta; -import org.bukkit.inventory.meta.PotionMeta; -import org.bukkit.potion.PotionEffectType; - import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilInv; +import mineplex.core.itemstack.ItemBuilder; import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballRifle; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; -import nautilus.game.arcade.kit.perks.*; +import nautilus.game.arcade.kit.perks.PerkSpeed; + +import org.bukkit.Color; +import org.bukkit.Material; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.PotionMeta; public class KitRifle extends Kit { @@ -42,37 +43,17 @@ public class KitRifle extends Kit @Override public void GiveItems(Player player) { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_BARDING, (byte)0, 1, "Paintball Rifle")); - - //Potion + UtilInv.insert(player, ItemStackFactory.Instance.CreateStack(Material.IRON_BARDING, (byte)0, 1, F.item("Paintball Rifle"))); + ItemStack potion = new ItemStack(Material.POTION, 3, (short)16429); // 16422 PotionMeta potionMeta = (PotionMeta)potion.getItemMeta(); - potionMeta.setDisplayName("Water Bomb"); + potionMeta.setDisplayName(F.item("Water Bomb")); potion.setItemMeta(potionMeta); - player.getInventory().addItem(potion); - - ItemStack helm = new ItemStack(Material.LEATHER_HELMET); - LeatherArmorMeta metaHelm = (LeatherArmorMeta)helm.getItemMeta(); - metaHelm.setColor(Color.WHITE); - helm.setItemMeta(metaHelm); - player.getInventory().setHelmet(helm); + UtilInv.insert(player, potion); - ItemStack armor = new ItemStack(Material.LEATHER_CHESTPLATE); - LeatherArmorMeta meta = (LeatherArmorMeta)armor.getItemMeta(); - meta.setColor(Color.WHITE); - armor.setItemMeta(meta); - player.getInventory().setChestplate(armor); - - ItemStack legs = new ItemStack(Material.LEATHER_LEGGINGS); - LeatherArmorMeta metaLegs = (LeatherArmorMeta)armor.getItemMeta(); - metaLegs.setColor(Color.WHITE); - legs.setItemMeta(metaLegs); - player.getInventory().setLeggings(legs); - - ItemStack boots = new ItemStack(Material.LEATHER_BOOTS); - LeatherArmorMeta metaBoots = (LeatherArmorMeta)armor.getItemMeta(); - metaBoots.setColor(Color.WHITE); - boots.setItemMeta(metaBoots); - player.getInventory().setBoots(boots); + player.getInventory().setHelmet(new ItemBuilder(Material.LEATHER_HELMET).setUnbreakable(true).setColor(Color.WHITE).build()); + player.getInventory().setChestplate(new ItemBuilder(Material.LEATHER_CHESTPLATE).setUnbreakable(true).setColor(Color.WHITE).build()); + player.getInventory().setLeggings(new ItemBuilder(Material.LEATHER_LEGGINGS).setUnbreakable(true).setColor(Color.WHITE).build()); + player.getInventory().setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setUnbreakable(true).setColor(Color.WHITE).build()); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitShotgun.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitShotgun.java index ce2e2db69..65275c0a8 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitShotgun.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitShotgun.java @@ -1,21 +1,23 @@ package nautilus.game.arcade.game.games.paintball.kits; -import org.bukkit.Color; -import org.bukkit.Material; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.LeatherArmorMeta; -import org.bukkit.inventory.meta.PotionMeta; - import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilInv; +import mineplex.core.itemstack.ItemBuilder; import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballShotgun; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; -import nautilus.game.arcade.kit.perks.*; +import nautilus.game.arcade.kit.perks.PerkSpeed; + +import org.bukkit.Color; +import org.bukkit.Material; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.PotionMeta; public class KitShotgun extends Kit { @@ -41,36 +43,17 @@ public class KitShotgun extends Kit @Override public void GiveItems(Player player) { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.GOLD_BARDING, (byte)0, 1, "Paintball Shotgun")); + UtilInv.insert(player, ItemStackFactory.Instance.CreateStack(Material.GOLD_BARDING, (byte)0, 1, F.item("Paintball Shotgun"))); ItemStack potion = new ItemStack(Material.POTION, 3, (short)16429); // 16422 PotionMeta potionMeta = (PotionMeta)potion.getItemMeta(); - potionMeta.setDisplayName("Water Bomb"); + potionMeta.setDisplayName(F.item("Water Bomb")); potion.setItemMeta(potionMeta); - player.getInventory().addItem(potion); + UtilInv.insert(player, potion); - ItemStack helm = new ItemStack(Material.LEATHER_HELMET); - LeatherArmorMeta metaHelm = (LeatherArmorMeta)helm.getItemMeta(); - metaHelm.setColor(Color.WHITE); - helm.setItemMeta(metaHelm); - player.getInventory().setHelmet(helm); - - ItemStack armor = new ItemStack(Material.LEATHER_CHESTPLATE); - LeatherArmorMeta meta = (LeatherArmorMeta)armor.getItemMeta(); - meta.setColor(Color.WHITE); - armor.setItemMeta(meta); - player.getInventory().setChestplate(armor); - - ItemStack legs = new ItemStack(Material.LEATHER_LEGGINGS); - LeatherArmorMeta metaLegs = (LeatherArmorMeta)armor.getItemMeta(); - metaLegs.setColor(Color.WHITE); - legs.setItemMeta(metaLegs); - player.getInventory().setLeggings(legs); - - ItemStack boots = new ItemStack(Material.LEATHER_BOOTS); - LeatherArmorMeta metaBoots = (LeatherArmorMeta)armor.getItemMeta(); - metaBoots.setColor(Color.WHITE); - boots.setItemMeta(metaBoots); - player.getInventory().setBoots(boots); + player.getInventory().setHelmet(new ItemBuilder(Material.LEATHER_HELMET).setUnbreakable(true).setColor(Color.WHITE).build()); + player.getInventory().setChestplate(new ItemBuilder(Material.LEATHER_CHESTPLATE).setUnbreakable(true).setColor(Color.WHITE).build()); + player.getInventory().setLeggings(new ItemBuilder(Material.LEATHER_LEGGINGS).setUnbreakable(true).setColor(Color.WHITE).build()); + player.getInventory().setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setUnbreakable(true).setColor(Color.WHITE).build()); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java index 8075cd4ee..4604ddd0e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java @@ -2,22 +2,23 @@ package nautilus.game.arcade.game.games.paintball.kits; import mineplex.core.achievement.Achievement; import mineplex.core.common.util.C; +import mineplex.core.common.util.F; import mineplex.core.common.util.UtilInv; import mineplex.core.itemstack.ItemBuilder; import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballShotgun; import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballSniper; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; -import nautilus.game.arcade.kit.perks.PerkSlow; import org.bukkit.Color; import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; +import org.bukkit.entity.Projectile; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.PotionMeta; public class KitSniper extends Kit { @@ -33,8 +34,7 @@ public class KitSniper extends Kit new Perk[] { - new PerkPaintballShotgun(), - new PerkSlow(0) + new PerkPaintballSniper(), }, EntityType.ZOMBIE, new ItemStack(Material.STONE_HOE)); @@ -51,27 +51,31 @@ public class KitSniper extends Kit } @Override - public void GiveItems(Player player) + public void GiveItems(Player player) { player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.STONE_HOE, (byte)0, 1, C.cWhite + "Paintball Sniper Rifle")); - UtilInv.insert(player, ItemStackFactory.Instance.CreateStack(Material.POTION, (byte) 16429, 1, "Water Bomb")); + ItemStack potion = new ItemStack(Material.POTION, 2, (short)16429); // 16422 + PotionMeta potionMeta = (PotionMeta)potion.getItemMeta(); + potionMeta.setDisplayName(F.item("Water Bomb")); + potion.setItemMeta(potionMeta); + UtilInv.insert(player, potion); - player.getInventory().setHelmet(new ItemBuilder(Material.LEATHER_HELMET).setColor(Color.WHITE).build()); - player.getInventory().setChestplate(new ItemBuilder(Material.LEATHER_CHESTPLATE).setColor(Color.WHITE).build()); - player.getInventory().setLeggings(new ItemBuilder(Material.LEATHER_LEGGINGS).setColor(Color.WHITE).build()); - player.getInventory().setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setColor(Color.WHITE).build()); + player.getInventory().setHelmet(new ItemBuilder(Material.LEATHER_HELMET).setUnbreakable(true).setColor(Color.WHITE).build()); + player.getInventory().setChestplate(new ItemBuilder(Material.LEATHER_CHESTPLATE).setUnbreakable(true).setColor(Color.WHITE).build()); + player.getInventory().setLeggings(new ItemBuilder(Material.LEATHER_LEGGINGS).setUnbreakable(true).setColor(Color.WHITE).build()); + player.getInventory().setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setUnbreakable(true).setColor(Color.WHITE).build()); } - public int getPaintDamage(Player player) + public int getPaintDamage(Projectile proj) { - for (Perk perk : this.GetPerks()) + for (Perk perk : GetPerks()) { if (perk instanceof PerkPaintballSniper) { - return ((PerkPaintballSniper) perk).getPaintDamage(player); + return ((PerkPaintballSniper) perk).getPaintDamage(proj); } } - return 0; + return -1; } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java index fd2d18031..71b9bf2b9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java @@ -1,8 +1,10 @@ package nautilus.game.arcade.game.games.paintball.kits.perks; import java.util.HashMap; +import java.util.HashSet; import mineplex.core.common.util.C; +import mineplex.core.common.util.NautHashMap; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilEvent; import mineplex.core.common.util.UtilEvent.ActionType; @@ -10,8 +12,11 @@ import mineplex.core.common.util.UtilGear; import mineplex.core.common.util.UtilPlayer; import mineplex.core.recharge.Recharge; import mineplex.core.recharge.RechargedEvent; +import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.condition.Condition.ConditionType; +import nautilus.game.arcade.events.GameStateChangeEvent; +import nautilus.game.arcade.game.Game.GameState; import nautilus.game.arcade.kit.Perk; import org.bukkit.ChatColor; @@ -22,18 +27,25 @@ import org.bukkit.entity.Player; import org.bukkit.entity.Projectile; import org.bukkit.entity.Snowball; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.util.Vector; public class PerkPaintballSniper extends Perk { private HashMap _crouching = new HashMap(); + private HashMap _fired = new HashMap(); + private NautHashMap _damage = new NautHashMap(); + + private double _velocity = 8; public PerkPaintballSniper() { super("Sniper Rifle", new String[] { C.cYellow + "Crouch" + C.cGray + " to use " + C.cGreen + "Scope", - C.cYellow + "Right-Click" + C.cGray + " to use " + C.cGreen + "Shotgun" + C.cYellow + "Right-Click" + C.cGray + " to use " + C.cGreen + "Sniper Rifle", + "Experience Bar represents damage." }); } @@ -75,45 +87,63 @@ public class PerkPaintballSniper extends Perk event.setCancelled(true); - if (!Recharge.Instance.use(player, GetName(), 1400, true, false)) + if (!Recharge.Instance.use(player, GetName(), 1000, true, true)) return; - Projectile proj = player.launchProjectile(Manager.GetGame().GetTeam(player).GetColor() == ChatColor.AQUA ? Snowball.class : EnderPearl.class); - - proj.setVelocity(proj.getVelocity().normalize().multiply(4)); + Projectile proj = player.launchProjectile(Manager.GetGame().GetTeam(player).GetColor() == ChatColor.AQUA ? Snowball.class : EnderPearl.class, player.getEyeLocation().getDirection().clone().multiply(_velocity)); + + _fired.put(proj, proj.getVelocity()); + _damage.put(proj, getPaintDamage(player)); //Sound player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 0.8f, 1f); + + player.setSneaking(false); + + //Effects + removeEffects(player); } @EventHandler public void onUpdate(UpdateEvent event) { - if (!Manager.GetGame().IsLive()) + if (event.getType() != UpdateType.TICK) return; + if (!Manager.GetGame().IsLive()) + return; + //Cleanup check HashMap copyMap = new HashMap(); copyMap.putAll(_crouching); for (Player player : copyMap.keySet()) { boolean remove = false; + if (!player.isOnline()) + remove = true; + if (!Manager.GetGame().IsAlive(player)) remove = true; - + if (UtilPlayer.isSpectator(player)) remove = true; - + if (!player.isSneaking()) remove = true; + if (!Recharge.Instance.usable(player, GetName())) + remove = true; + if (remove) { - _crouching.remove(player); + if (_crouching.containsKey(player)) + _crouching.remove(player); + + player.setExp(0F); + player.setSneaking(false); // Zoom - if (Manager.GetCondition().HasCondition(player, ConditionType.SLOW, GetName())) - Manager.GetCondition().EndCondition(player, ConditionType.SLOW, GetName()); + removeEffects(player); } } @@ -123,6 +153,9 @@ public class PerkPaintballSniper extends Perk if (UtilPlayer.isSpectator(player)) continue; + if (!Kit.HasKit(player)) + continue; + if (!player.isSneaking()) continue; @@ -132,12 +165,95 @@ public class PerkPaintballSniper extends Perk _crouching.put(player, System.currentTimeMillis()); // Zoom - if (!Manager.GetCondition().HasCondition(player, ConditionType.SLOW, GetName())) - Manager.GetCondition().Factory().Slow(GetName(), player, null, Double.MAX_VALUE, 5, false, false, false, false); - } + addEffects(player); + } + + // Exp check + + for (Player player : Manager.GetGame().GetPlayers(true)) + { + if (UtilPlayer.isSpectator(player)) + continue; + + if (!Kit.HasKit(player)) + continue; + + if (!_crouching.containsKey(player)) + continue; + + player.setExp((float) Math.min(.999F, player.getExp() + .0125)); + } } - public int getPaintDamage(Player player) + @EventHandler + public void updateProjectiles(UpdateEvent event) + { + if (event.getType() != UpdateType.TICK) + return; + + if (!Manager.GetGame().IsLive()) + return; + + HashSet copySet = new HashSet(_fired.keySet()); + for (Projectile proj : copySet) + { + if (!proj.isValid()) + { + _fired.remove(proj); + + if (_damage.containsKey(proj)) + _damage.remove(proj); + + continue; + } + + proj.setVelocity(_fired.get(proj).clone().normalize().multiply(_velocity)); + } + } + + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void removeEffects(GameStateChangeEvent event) + { + if (event.GetState() != GameState.End) + return; + + for (Player player : _crouching.keySet()) + { + removeEffects(player); + } + + _crouching.clear(); + } + + private void removeEffects(Player player) + { + // Zoom + if (Manager.GetCondition().HasCondition(player, ConditionType.SLOW, GetName())) + Manager.GetCondition().EndCondition(player, ConditionType.SLOW, GetName()); + + if (Manager.GetCondition().HasCondition(player, ConditionType.JUMP, GetName())) + Manager.GetCondition().EndCondition(player, ConditionType.JUMP, GetName()); + } + + private void addEffects(Player player) + { + // Zoom + if (!Manager.GetCondition().HasCondition(player, ConditionType.SLOW, GetName())) + Manager.GetCondition().Factory().Slow(GetName(), player, null, Double.MAX_VALUE, 8, false, false, false, false); + +// if (!Manager.GetCondition().HasCondition(player, ConditionType.JUMP, GetName())) +// Manager.GetCondition().Factory().Jump(GetName(), player, null, 9999999, 250, true, false, false); + } + + public int getPaintDamage(Projectile proj) + { + if (!_damage.containsKey(proj)) + return 1; + + return _damage.remove(proj); + } + + private int getPaintDamage(Player player) { if (!_crouching.containsKey(player)) return 1; From 399edbab2940762ad38a8fc38dd97aa604051609 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Sun, 15 Nov 2015 12:47:45 -0500 Subject: [PATCH 03/22] Sniper work --- .../game/games/paintball/Paintball.java | 81 ++++----- .../game/games/paintball/kits/KitSniper.java | 18 +- .../kits/perks/PerkPaintballSniper.java | 158 ++++++++++++++---- 3 files changed, 175 insertions(+), 82 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java index 468316016..2384386ef 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java @@ -4,6 +4,40 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Color; +import org.bukkit.Effect; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.Block; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; +import org.bukkit.entity.Arrow; +import org.bukkit.entity.EnderPearl; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Snowball; +import org.bukkit.entity.ThrownPotion; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityDamageEvent.DamageCause; +import org.bukkit.event.entity.EntityRegainHealthEvent; +import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; +import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.player.PlayerEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.LeatherArmorMeta; +import org.bukkit.potion.PotionEffectType; +import org.bukkit.util.Vector; + import mineplex.core.common.util.F; import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilBlock; @@ -36,39 +70,6 @@ import nautilus.game.arcade.stats.MedicStatTracker; import nautilus.game.arcade.stats.WinFastStatTracker; import nautilus.game.arcade.stats.WinWithoutLosingTeammateStatTracker; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Effect; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; -import org.bukkit.entity.EnderPearl; -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.entity.Snowball; -import org.bukkit.entity.ThrownPotion; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.HandlerList; -import org.bukkit.event.entity.EntityDamageEvent.DamageCause; -import org.bukkit.event.entity.EntityRegainHealthEvent; -import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; -import org.bukkit.event.entity.ProjectileHitEvent; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.player.PlayerEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerTeleportEvent; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.LeatherArmorMeta; -import org.bukkit.potion.PotionEffectType; -import org.bukkit.util.Vector; - public class Paintball extends TeamGame { public static class ReviveEvent extends PlayerEvent @@ -181,10 +182,13 @@ public class Paintball extends TeamGame return; byte color = 3; - if (event.getEntity() instanceof EnderPearl) + if (event.getEntity() instanceof EnderPearl || (event.getEntity() instanceof Arrow && event.getEntity().hasMetadata("color") && ChatColor.values()[event.getEntity().getMetadata("color").get(0).asInt()] == ChatColor.RED)) color = 14; + + Location loc = event.getEntity().getLocation(); - Location loc = event.getEntity().getLocation().add(event.getEntity().getVelocity()); + if (!(event.getEntity() instanceof Arrow)) + loc.add(event.getEntity().getVelocity()); for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet()) { @@ -197,6 +201,7 @@ public class Paintball extends TeamGame if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8); else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10); + event.getEntity().remove(); } } @@ -234,7 +239,7 @@ public class Paintball extends TeamGame if (event.GetProjectile() == null) return; - if (!(event.GetProjectile() instanceof Snowball) && !(event.GetProjectile() instanceof EnderPearl)) + if (!(event.GetProjectile() instanceof Snowball) && !(event.GetProjectile() instanceof EnderPearl) && !(event.GetProjectile() instanceof Arrow)) return; //Negate @@ -271,9 +276,9 @@ public class Paintball extends TeamGame { count = 3; } - if (GetKit(damager) instanceof KitSniper) + if (GetKit(damager) instanceof KitSniper && event.GetProjectile() instanceof Arrow) { - count = ((KitSniper) GetKit(damager)).getPaintDamage(event.GetProjectile()); + count = ((KitSniper) GetKit(damager)).getPaintDamage((Arrow) event.GetProjectile()); if (count == -1) count = 1; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java index 4604ddd0e..e7d41949a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java @@ -1,5 +1,13 @@ package nautilus.game.arcade.game.games.paintball.kits; +import org.bukkit.Color; +import org.bukkit.Material; +import org.bukkit.entity.Arrow; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.PotionMeta; + import mineplex.core.achievement.Achievement; import mineplex.core.common.util.C; import mineplex.core.common.util.F; @@ -12,14 +20,6 @@ import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; -import org.bukkit.Color; -import org.bukkit.Material; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.entity.Projectile; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.PotionMeta; - public class KitSniper extends Kit { public KitSniper(ArcadeManager manager) @@ -67,7 +67,7 @@ public class KitSniper extends Kit player.getInventory().setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setUnbreakable(true).setColor(Color.WHITE).build()); } - public int getPaintDamage(Projectile proj) + public int getPaintDamage(Arrow proj) { for (Perk perk : GetPerks()) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java index 71b9bf2b9..61ce1e918 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java @@ -1,15 +1,33 @@ package nautilus.game.arcade.game.games.paintball.kits.perks; +import java.util.ArrayList; import java.util.HashMap; -import java.util.HashSet; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Arrow; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.metadata.FixedMetadataValue; import mineplex.core.common.util.C; import mineplex.core.common.util.NautHashMap; +import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilEvent; import mineplex.core.common.util.UtilEvent.ActionType; import mineplex.core.common.util.UtilGear; +import mineplex.core.common.util.UtilInv; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; +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.recharge.Recharge; import mineplex.core.recharge.RechargedEvent; import mineplex.core.updater.UpdateType; @@ -18,26 +36,22 @@ import mineplex.minecraft.game.core.condition.Condition.ConditionType; import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.game.Game.GameState; import nautilus.game.arcade.kit.Perk; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.entity.EnderPearl; -import org.bukkit.entity.Player; -import org.bukkit.entity.Projectile; -import org.bukkit.entity.Snowball; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.util.Vector; +import net.md_5.bungee.api.ChatColor; +import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; public class PerkPaintballSniper extends Perk { - private HashMap _crouching = new HashMap(); - private HashMap _fired = new HashMap(); - private NautHashMap _damage = new NautHashMap(); + private static class Bullet + { + public int Damage; + public Location LastSeen; + } - private double _velocity = 8; + private HashMap _crouching = new HashMap(); +// private HashMap _fired = new HashMap(); + private NautHashMap _fired = new NautHashMap(); + + private double _velocity = 15; public PerkPaintballSniper() { @@ -90,10 +104,21 @@ public class PerkPaintballSniper extends Perk if (!Recharge.Instance.use(player, GetName(), 1000, true, true)) return; - Projectile proj = player.launchProjectile(Manager.GetGame().GetTeam(player).GetColor() == ChatColor.AQUA ? Snowball.class : EnderPearl.class, player.getEyeLocation().getDirection().clone().multiply(_velocity)); + Arrow proj = player.launchProjectile(Arrow.class, player.getEyeLocation().getDirection().clone().multiply(_velocity)); - _fired.put(proj, proj.getVelocity()); - _damage.put(proj, getPaintDamage(player)); + PacketPlayOutEntityDestroy packet = new PacketPlayOutEntityDestroy(); + packet.a = new int[]{proj.getEntityId()}; + + for (Player viewer : UtilServer.getPlayers()) + UtilPlayer.sendPacket(viewer, packet); + + proj.setMetadata("color", new FixedMetadataValue(Manager.getPlugin(), Manager.GetGame().GetTeam(player).GetColor().ordinal())); + + Bullet bullet = new Bullet(); + bullet.Damage = getPaintDamage(player); + bullet.LastSeen = proj.getLocation(); + + _fired.put(proj, bullet); //Sound player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 0.8f, 1f); @@ -131,6 +156,9 @@ public class PerkPaintballSniper extends Perk if (!player.isSneaking()) remove = true; + if (!UtilInv.IsItem(player.getItemInHand(), Material.STONE_HOE, (byte) -1)) + remove = true; + if (!Recharge.Instance.usable(player, GetName())) remove = true; @@ -159,6 +187,9 @@ public class PerkPaintballSniper extends Perk if (!player.isSneaking()) continue; + if (!UtilInv.IsItem(player.getItemInHand(), Material.STONE_HOE, (byte) -1)) + continue; + if (_crouching.containsKey(player)) continue; @@ -186,7 +217,7 @@ public class PerkPaintballSniper extends Perk } @EventHandler - public void updateProjectiles(UpdateEvent event) + public void doArrowEffects(UpdateEvent event) { if (event.getType() != UpdateType.TICK) return; @@ -194,20 +225,80 @@ public class PerkPaintballSniper extends Perk if (!Manager.GetGame().IsLive()) return; - HashSet copySet = new HashSet(_fired.keySet()); - for (Projectile proj : copySet) + for (Arrow proj : new ArrayList(_fired.keySet())) { if (!proj.isValid()) { _fired.remove(proj); - - if (_damage.containsKey(proj)) - _damage.remove(proj); - continue; } - proj.setVelocity(_fired.get(proj).clone().normalize().multiply(_velocity)); + Bullet bullet = _fired.get(proj); + + double curRange = 0; + double distance = Math.abs(UtilMath.offset(proj.getLocation(), bullet.LastSeen)); + + while (curRange <= distance) + { + Location newTarget = bullet.LastSeen.add(UtilAlg.getTrajectory(bullet.LastSeen, proj.getLocation()).multiply(curRange)); + + //Progress Forwards + curRange += 0.8; + + ChatColor color = ChatColor.values()[proj.getMetadata("color").get(0).asInt()]; + if (color == ChatColor.BLUE || color == ChatColor.AQUA) + { + UtilParticle.PlayParticle(ParticleType.RED_DUST, newTarget, -1, 1, 1, 1, 0, + ViewDist.NORMAL, UtilServer.getPlayers()); + } + else + { + UtilParticle.PlayParticle(ParticleType.RED_DUST, newTarget, 0, 0, 0, 0, 1, + ViewDist.NORMAL, UtilServer.getPlayers()); + } + } + + bullet.LastSeen = proj.getLocation(); + } + } + + @EventHandler(priority = EventPriority.HIGH) + public void doArrowEffects(ProjectileHitEvent event) + { + if (!Manager.GetGame().IsLive()) + return; + + if (!(event.getEntity() instanceof Arrow)) + return; + + Arrow proj = (Arrow) event.getEntity(); + + if (!_fired.containsKey(proj)) + return; + + Bullet bullet = _fired.get(proj); + + double curRange = 0; + double distance = Math.abs(UtilMath.offset(proj.getLocation(), bullet.LastSeen)); + + while (curRange <= distance) + { + Location newTarget = bullet.LastSeen.add(UtilAlg.getTrajectory(bullet.LastSeen, proj.getLocation()).multiply(curRange)); + + //Progress Forwards + curRange += 0.8; + + ChatColor color = ChatColor.values()[proj.getMetadata("color").get(0).asInt()]; + if (color == ChatColor.BLUE || color == ChatColor.AQUA) + { + UtilParticle.PlayParticle(ParticleType.RED_DUST, newTarget, -1, 1, 1, 1, 0, + ViewDist.NORMAL, UtilServer.getPlayers()); + } + else + { + UtilParticle.PlayParticle(ParticleType.RED_DUST, newTarget, 0, 0, 0, 0, 1, + ViewDist.NORMAL, UtilServer.getPlayers()); + } } } @@ -240,17 +331,14 @@ public class PerkPaintballSniper extends Perk // Zoom if (!Manager.GetCondition().HasCondition(player, ConditionType.SLOW, GetName())) Manager.GetCondition().Factory().Slow(GetName(), player, null, Double.MAX_VALUE, 8, false, false, false, false); - -// if (!Manager.GetCondition().HasCondition(player, ConditionType.JUMP, GetName())) -// Manager.GetCondition().Factory().Jump(GetName(), player, null, 9999999, 250, true, false, false); } - public int getPaintDamage(Projectile proj) + public int getPaintDamage(Arrow proj) { - if (!_damage.containsKey(proj)) + if (!_fired.containsKey(proj)) return 1; - return _damage.remove(proj); + return _fired.get(proj).Damage; } private int getPaintDamage(Player player) @@ -258,6 +346,6 @@ public class PerkPaintballSniper extends Perk if (!_crouching.containsKey(player)) return 1; - return (int) Math.max(1, Math.floor((System.currentTimeMillis() - _crouching.get(player)) / 1000)); + return (int) Math.max(1, Math.min(4, Math.floor((System.currentTimeMillis() - _crouching.get(player)) / 1000))); } } \ No newline at end of file From 448dd33c1a370a1972984d3676aab856499e6dca Mon Sep 17 00:00:00 2001 From: Mysticate Date: Tue, 17 Nov 2015 11:38:02 -0500 Subject: [PATCH 04/22] Switching branches c: --- .../core/achievement/AchievementCategory.java | 4 +- .../game/games/baconbrawl/BaconBrawl.java | 11 ++- .../games/baconbrawl/kits/KitMamaPig.java | 1 - .../game/games/baconbrawl/kits/KitPig.java | 1 - .../games/baconbrawl/kits/KitSheepPig.java | 1 - .../arcade/game/games/bridge/BridgePart.java | 1 + .../game/games/paintball/Paintball.java | 53 +++++++--- .../kits/perks/PerkPaintballSniper.java | 97 +++++++++---------- .../game/arcade/kit/perks/PerkBaconBlast.java | 6 +- .../game/arcade/kit/perks/PerkBodySlam.java | 1 - .../game/arcade/kit/perks/PerkPigCloak.java | 7 +- 11 files changed, 101 insertions(+), 82 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java b/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java index 8eb4305a2..b7a4af7f5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java @@ -109,7 +109,7 @@ public enum AchievementCategory SUPER_PAINTBALL("Super Paintball", null, new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED }, - Material.ENDER_PEARL, 0, GameCategory.ARCADE, null), + Material.ENDER_PEARL, 0, GameCategory.ARCADE, "Sniper Kit"), TURF_WARS("Turf Wars", null, new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED }, @@ -137,7 +137,7 @@ public enum AchievementCategory MICRO_BATTLE("Micro Battle", null, new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED }, - Material.LAVA, 0, GameCategory.ARCADE, null), + Material.LAVA_BUCKET, 0, GameCategory.ARCADE, null), BOMB_LOBBERS("Bomb Lobbers", null, new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED }, diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/BaconBrawl.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/BaconBrawl.java index e66165d86..0ee17ce94 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/BaconBrawl.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/BaconBrawl.java @@ -5,14 +5,15 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import mineplex.core.common.util.UtilPlayer; -import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import nautilus.game.arcade.game.SoloGame; -import nautilus.game.arcade.game.games.baconbrawl.kits.*; +import nautilus.game.arcade.game.games.baconbrawl.kits.KitMamaPig; +import nautilus.game.arcade.game.games.baconbrawl.kits.KitPig; +import nautilus.game.arcade.game.games.baconbrawl.kits.KitSheepPig; import nautilus.game.arcade.kit.Kit; public class BaconBrawl extends SoloGame @@ -34,9 +35,9 @@ public class BaconBrawl extends SoloGame "Last pig in the arena wins!" }); - this.DamageTeamSelf = true; - this.HungerSet = 20; - this.PrepareFreeze = false; + DamageTeamSelf = true; + HungerSet = 20; + PrepareFreeze = false; } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/kits/KitMamaPig.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/kits/KitMamaPig.java index 7ab4b7812..c285f9c53 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/kits/KitMamaPig.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/kits/KitMamaPig.java @@ -11,7 +11,6 @@ import org.bukkit.event.EventPriority; import org.bukkit.inventory.ItemStack; import mineplex.core.common.util.C; -import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilPlayer; import mineplex.core.disguise.disguises.DisguisePig; import mineplex.core.itemstack.ItemStackFactory; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/kits/KitPig.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/kits/KitPig.java index db9071a12..1f54d2eec 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/kits/KitPig.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/kits/KitPig.java @@ -13,7 +13,6 @@ import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.perks.PerkBodySlam; -import nautilus.game.arcade.kit.perks.PerkJump; public class KitPig extends Kit { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/kits/KitSheepPig.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/kits/KitSheepPig.java index 3a63d31ff..5607d41ba 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/kits/KitSheepPig.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/kits/KitSheepPig.java @@ -1,6 +1,5 @@ package nautilus.game.arcade.game.games.baconbrawl.kits; -import org.bukkit.ChatColor; import org.bukkit.DyeColor; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BridgePart.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BridgePart.java index 86765e9a1..3d810c506 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BridgePart.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BridgePart.java @@ -26,6 +26,7 @@ public class BridgePart Velocity = velocity; } + @SuppressWarnings("deprecation") public boolean Update() { if (!Entity.isValid()) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java index 2384386ef..22b6a06d5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java @@ -172,7 +172,7 @@ public class Paintball extends TeamGame @SuppressWarnings("deprecation") @EventHandler - public void Paint(ProjectileHitEvent event) + public void Paint(final ProjectileHitEvent event) { // Fixed projectile wool painting in waiting lobby. @@ -181,27 +181,48 @@ public class Paintball extends TeamGame if (event.getEntity() instanceof ThrownPotion) return; - byte color = 3; - if (event.getEntity() instanceof EnderPearl || (event.getEntity() instanceof Arrow && event.getEntity().hasMetadata("color") && ChatColor.values()[event.getEntity().getMetadata("color").get(0).asInt()] == ChatColor.RED)) - color = 14; + final byte color = (byte) (event.getEntity() instanceof EnderPearl || (event.getEntity() instanceof Arrow && event.getEntity().hasMetadata("color") && ChatColor.values()[event.getEntity().getMetadata("color").get(0).asInt()] == ChatColor.RED) ? 14 : 3); - Location loc = event.getEntity().getLocation(); + if (event.getEntity() instanceof Arrow) + { + Manager.runSyncLater(new Runnable() + { + @Override + public void run() + { + Location loc = event.getEntity().getLocation(); + + for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet()) + { + if (block.getType() != Material.WOOL && block.getType() != Material.STAINED_CLAY) + continue; - if (!(event.getEntity() instanceof Arrow)) + block.setData(color); + } + + if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8); + else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10); + } + }, 1); + } + else + { + Location loc = event.getEntity().getLocation(); loc.add(event.getEntity().getVelocity()); - for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet()) - { - if (block.getType() != Material.WOOL && block.getType() != Material.STAINED_CLAY) - continue; + for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet()) + { + if (block.getType() != Material.WOOL && block.getType() != Material.STAINED_CLAY) + continue; - block.setData(color); + block.setData(color); + } + + if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8); + else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10); + + event.getEntity().remove(); } - - if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8); - else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10); - - event.getEntity().remove(); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java index 61ce1e918..c8bad2b0a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java @@ -10,7 +10,6 @@ import org.bukkit.entity.Arrow; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.metadata.FixedMetadataValue; @@ -111,7 +110,7 @@ public class PerkPaintballSniper extends Perk for (Player viewer : UtilServer.getPlayers()) UtilPlayer.sendPacket(viewer, packet); - + proj.setMetadata("color", new FixedMetadataValue(Manager.getPlugin(), Manager.GetGame().GetTeam(player).GetColor().ordinal())); Bullet bullet = new Bullet(); @@ -226,13 +225,7 @@ public class PerkPaintballSniper extends Perk return; for (Arrow proj : new ArrayList(_fired.keySet())) - { - if (!proj.isValid()) - { - _fired.remove(proj); - continue; - } - + { Bullet bullet = _fired.get(proj); double curRange = 0; @@ -258,49 +251,55 @@ public class PerkPaintballSniper extends Perk } } + if (!proj.isValid()) + { + _fired.remove(proj); + continue; + } + bullet.LastSeen = proj.getLocation(); } } - - @EventHandler(priority = EventPriority.HIGH) - public void doArrowEffects(ProjectileHitEvent event) - { - if (!Manager.GetGame().IsLive()) - return; - - if (!(event.getEntity() instanceof Arrow)) - return; - - Arrow proj = (Arrow) event.getEntity(); - - if (!_fired.containsKey(proj)) - return; - - Bullet bullet = _fired.get(proj); - - double curRange = 0; - double distance = Math.abs(UtilMath.offset(proj.getLocation(), bullet.LastSeen)); - - while (curRange <= distance) - { - Location newTarget = bullet.LastSeen.add(UtilAlg.getTrajectory(bullet.LastSeen, proj.getLocation()).multiply(curRange)); - - //Progress Forwards - curRange += 0.8; - - ChatColor color = ChatColor.values()[proj.getMetadata("color").get(0).asInt()]; - if (color == ChatColor.BLUE || color == ChatColor.AQUA) - { - UtilParticle.PlayParticle(ParticleType.RED_DUST, newTarget, -1, 1, 1, 1, 0, - ViewDist.NORMAL, UtilServer.getPlayers()); - } - else - { - UtilParticle.PlayParticle(ParticleType.RED_DUST, newTarget, 0, 0, 0, 0, 1, - ViewDist.NORMAL, UtilServer.getPlayers()); - } - } - } +// +// @EventHandler(priority = EventPriority.HIGH) +// public void doArrowEffects(ProjectileHitEvent event) +// { +// if (!Manager.GetGame().IsLive()) +// return; +// +// if (!(event.getEntity() instanceof Arrow)) +// return; +// +// Arrow proj = (Arrow) event.getEntity(); +// +// if (!_fired.containsKey(proj)) +// return; +// +// Bullet bullet = _fired.get(proj); +// +// double curRange = 0; +// double distance = Math.abs(UtilMath.offset(proj.getLocation(), bullet.LastSeen)); +// +// while (curRange <= distance) +// { +// Location newTarget = bullet.LastSeen.add(UtilAlg.getTrajectory(bullet.LastSeen, proj.getLocation()).multiply(curRange)); +// +// //Progress Forwards +// curRange += 0.8; +// +// ChatColor color = ChatColor.values()[proj.getMetadata("color").get(0).asInt()]; +// if (color == ChatColor.BLUE || color == ChatColor.AQUA) +// { +// UtilParticle.PlayParticle(ParticleType.RED_DUST, newTarget, -1, 1, 1, 1, 0, +// ViewDist.NORMAL, UtilServer.getPlayers()); +// } +// else +// { +// UtilParticle.PlayParticle(ParticleType.RED_DUST, newTarget, 0, 0, 0, 0, 1, +// ViewDist.NORMAL, UtilServer.getPlayers()); +// } +// } +// } @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public void removeEffects(GameStateChangeEvent event) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBaconBlast.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBaconBlast.java index d69147917..b3869a7cf 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBaconBlast.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBaconBlast.java @@ -15,6 +15,7 @@ import mineplex.core.common.util.F; import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilEnt; +import mineplex.core.common.util.UtilGear; import mineplex.core.common.util.UtilInv; import mineplex.core.common.util.UtilPlayer; import mineplex.core.itemstack.ItemStackFactory; @@ -47,10 +48,7 @@ public class PerkBaconBlast extends Perk implements IThrown if (UtilBlock.usable(event.getClickedBlock())) return; - if (event.getPlayer().getItemInHand() == null) - return; - - if (!event.getPlayer().getItemInHand().getType().toString().contains("_AXE")) + if (!UtilGear.isAxe(event.getItem())) return; Player player = event.getPlayer(); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBodySlam.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBodySlam.java index f4e0aaf0f..b438a7440 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBodySlam.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBodySlam.java @@ -2,7 +2,6 @@ package nautilus.game.arcade.kit.perks; import java.util.HashMap; -import org.bukkit.GameMode; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPigCloak.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPigCloak.java index 4b01f97e5..163695218 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPigCloak.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPigCloak.java @@ -11,7 +11,10 @@ import org.bukkit.event.player.PlayerInteractEvent; import mineplex.core.common.util.C; import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilEvent; +import mineplex.core.common.util.UtilGear; import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilEvent.ActionType; import mineplex.core.recharge.Recharge; import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.kit.Perk; @@ -31,10 +34,10 @@ public class PerkPigCloak extends Perk { Player player = event.getPlayer(); - if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK) + if (!UtilEvent.isAction(event, ActionType.R)) return; - if (!event.getPlayer().getItemInHand().getType().toString().contains("_AXE")) + if (!UtilGear.isAxe(event.getItem())) return; if (!Kit.HasKit(player)) From 1342a8ac9f44da62574ec667867bc77081f0e9fb Mon Sep 17 00:00:00 2001 From: Mysticate Date: Tue, 17 Nov 2015 11:38:15 -0500 Subject: [PATCH 05/22] Class --- .../game/arcade/game/games/bridge/BattleCryManager.java | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BattleCryManager.java diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BattleCryManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BattleCryManager.java new file mode 100644 index 000000000..7c7e71ba0 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BattleCryManager.java @@ -0,0 +1,6 @@ +package nautilus.game.arcade.game.games.bridge; + +public class BattleCryManager +{ + +} From 502f12f00fca6a7790b001254e00e8b88c613baf Mon Sep 17 00:00:00 2001 From: Mysticate Date: Thu, 19 Nov 2015 17:46:07 -0500 Subject: [PATCH 06/22] Fixed paintball to the max. :>> --- .../game/games/paintball/Paintball.java | 78 ++++++------------- .../paintball/events/PaintballEvent.java | 35 +++++++++ .../games/paintball/events/ReviveEvent.java | 35 +++++++++ .../trackers/KillingSpreeTracker.java | 56 +++++++++++++ .../trackers/LastStandStatTracker.java | 42 ++++++++++ .../paintball/trackers}/MedicStatTracker.java | 7 +- .../arcade/stats/LastStandStatTracker.java | 63 --------------- 7 files changed, 195 insertions(+), 121 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/PaintballEvent.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/ReviveEvent.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/KillingSpreeTracker.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/LastStandStatTracker.java rename Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/{stats => game/games/paintball/trackers}/MedicStatTracker.java (66%) delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/LastStandStatTracker.java diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java index 22b6a06d5..8a0854330 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java @@ -22,13 +22,11 @@ import org.bukkit.entity.Snowball; import org.bukkit.entity.ThrownPotion; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.HandlerList; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityRegainHealthEvent; import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerTeleportEvent; @@ -59,82 +57,50 @@ import nautilus.game.arcade.events.PlayerPrepareTeleportEvent; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.GameTeam.PlayerState; import nautilus.game.arcade.game.TeamGame; +import nautilus.game.arcade.game.games.paintball.events.PaintballEvent; +import nautilus.game.arcade.game.games.paintball.events.ReviveEvent; import nautilus.game.arcade.game.games.paintball.kits.KitMachineGun; import nautilus.game.arcade.game.games.paintball.kits.KitRifle; import nautilus.game.arcade.game.games.paintball.kits.KitShotgun; import nautilus.game.arcade.game.games.paintball.kits.KitSniper; +import nautilus.game.arcade.game.games.paintball.trackers.KillingSpreeTracker; +import nautilus.game.arcade.game.games.paintball.trackers.LastStandStatTracker; +import nautilus.game.arcade.game.games.paintball.trackers.MedicStatTracker; import nautilus.game.arcade.kit.Kit; -import nautilus.game.arcade.stats.KillFastStatTracker; -import nautilus.game.arcade.stats.LastStandStatTracker; -import nautilus.game.arcade.stats.MedicStatTracker; import nautilus.game.arcade.stats.WinFastStatTracker; import nautilus.game.arcade.stats.WinWithoutLosingTeammateStatTracker; public class Paintball extends TeamGame { - public static class ReviveEvent extends PlayerEvent - { - private static final HandlerList handlers = new HandlerList(); - - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public HandlerList getHandlers() - { - return getHandlerList(); - } - - private final Player _revivedPlayer; - - public ReviveEvent(Player who, Player revivedPlayer) - { - super(who); - - _revivedPlayer = revivedPlayer; - } - - public Player getRevivedPlayer() - { - return _revivedPlayer; - } - } - private HashMap _doubles = new HashMap(); @SuppressWarnings("unchecked") public Paintball(ArcadeManager manager) { - super(manager, GameType.Paintball, + super(manager, GameType.Paintball, new Kit[] + { + new KitRifle(manager), + new KitShotgun(manager), + new KitMachineGun(manager), + new KitSniper(manager), + }, new String[] + { + "Shoot enemies to paint them", + "Revive/heal with Water Bombs", + "Last team alive wins!" + }); - new Kit[] - { - new KitRifle(manager), - new KitShotgun(manager), - new KitMachineGun(manager), - new KitSniper(manager), - }, + StrictAntiHack = true; - new String[] - { - "Shoot enemies to paint them", - "Revive/heal with Water Bombs", - "Last team alive wins!" - }); - - this.StrictAntiHack = true; - - this.HungerSet = 20; + HungerSet = 20; registerStatTrackers( - new KillFastStatTracker(this, 4, 5, "KillingSpree"), + new KillingSpreeTracker(this), new WinWithoutLosingTeammateStatTracker(this, "FlawlessVictory"), new MedicStatTracker(this), new WinFastStatTracker(this, 30, "Speedrunner"), new LastStandStatTracker(this) - ); + ); } @EventHandler @@ -319,6 +285,8 @@ public class Paintball extends TeamGame AddStat(damager, "Kills", 1, false, false); AddStat(damagee, "Deaths", 1, false, false); + + Bukkit.getPluginManager().callEvent(new PaintballEvent(damagee, damager)); } //Hit Sound diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/PaintballEvent.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/PaintballEvent.java new file mode 100644 index 000000000..1805e641e --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/PaintballEvent.java @@ -0,0 +1,35 @@ +package nautilus.game.arcade.game.games.paintball.events; + +import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; +import org.bukkit.event.player.PlayerEvent; + +public class PaintballEvent extends PlayerEvent +{ + private static final HandlerList handlers = new HandlerList(); + + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public HandlerList getHandlers() + { + return getHandlerList(); + } + + private Player _revivedPlayer; + + public PaintballEvent(Player who, Player revivedPlayer) + { + super(who); + + _revivedPlayer = revivedPlayer; + } + + public Player getKiller() + { + return _revivedPlayer; + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/ReviveEvent.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/ReviveEvent.java new file mode 100644 index 000000000..53cb01acc --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/ReviveEvent.java @@ -0,0 +1,35 @@ +package nautilus.game.arcade.game.games.paintball.events; + +import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; +import org.bukkit.event.player.PlayerEvent; + +public class ReviveEvent extends PlayerEvent +{ + private static final HandlerList handlers = new HandlerList(); + + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public HandlerList getHandlers() + { + return getHandlerList(); + } + + private Player _revivedPlayer; + + public ReviveEvent(Player who, Player revivedPlayer) + { + super(who); + + _revivedPlayer = revivedPlayer; + } + + public Player getRevivedPlayer() + { + return _revivedPlayer; + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/KillingSpreeTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/KillingSpreeTracker.java new file mode 100644 index 000000000..354d64ea9 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/KillingSpreeTracker.java @@ -0,0 +1,56 @@ +package nautilus.game.arcade.game.games.paintball.trackers; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; + +import nautilus.game.arcade.game.Game; +import nautilus.game.arcade.game.games.paintball.Paintball; +import nautilus.game.arcade.game.games.paintball.events.PaintballEvent; +import nautilus.game.arcade.stats.StatTracker; + +public class KillingSpreeTracker extends StatTracker +{ + private final Map _killCount = new HashMap<>(); + private final Map _lastKillTime = new HashMap<>(); + + public KillingSpreeTracker(Paintball game) + { + super(game); + } + + @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) + public void onCombatDeath(PaintballEvent event) + { + if (getGame().GetState() != Game.GameState.Live) + return; + + Long lastTime = _lastKillTime.get(event.getKiller().getUniqueId()); + + long now = System.currentTimeMillis(); + + Integer killCount; + if (lastTime == null || now - lastTime > 5000) + killCount = 0; + else + { + killCount = _killCount.get(event.getKiller().getUniqueId()); + if (killCount == null) + killCount = 0; + } + + killCount++; + + _killCount.put(event.getKiller().getUniqueId(), killCount); + _lastKillTime.put(event.getKiller().getUniqueId(), now); + + _killCount.remove(event.getPlayer().getUniqueId()); + _lastKillTime.remove(event.getPlayer().getUniqueId()); + + if (killCount >= 4) + addStat(event.getKiller(), "KillingSpree", 1, true, false); + } +} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/LastStandStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/LastStandStatTracker.java new file mode 100644 index 000000000..6d983b81a --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/LastStandStatTracker.java @@ -0,0 +1,42 @@ +package nautilus.game.arcade.game.games.paintball.trackers; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; + +import nautilus.game.arcade.game.Game; +import nautilus.game.arcade.game.games.paintball.Paintball; +import nautilus.game.arcade.game.games.paintball.events.PaintballEvent; +import nautilus.game.arcade.stats.StatTracker; + +public class LastStandStatTracker extends StatTracker +{ + private final Map _kills = new HashMap<>(); + + public LastStandStatTracker(Paintball game) + { + super(game); + } + + @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) + public void onPaintball(PaintballEvent event) + { + if (getGame().GetState() != Game.GameState.Live) + return; + + if (getGame().GetTeam(event.getKiller()).GetPlayers(true).size() == 1) + { + Integer kills = _kills.get(event.getKiller().getUniqueId()); + + kills = (kills == null ? 0 : kills) + 1; + + _kills.put(event.getKiller().getUniqueId(), kills); + + if (kills >= 3) + addStat(event.getKiller(), "LastStand", 1, true, false); + } + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/MedicStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/MedicStatTracker.java similarity index 66% rename from Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/MedicStatTracker.java rename to Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/MedicStatTracker.java index 7b3e65e02..ee5b7bf63 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/MedicStatTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/MedicStatTracker.java @@ -1,10 +1,11 @@ -package nautilus.game.arcade.stats; +package nautilus.game.arcade.game.games.paintball.trackers; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import nautilus.game.arcade.game.Game; -import nautilus.game.arcade.game.games.paintball.Paintball; +import nautilus.game.arcade.game.games.paintball.events.ReviveEvent; +import nautilus.game.arcade.stats.StatTracker; public class MedicStatTracker extends StatTracker { @@ -14,7 +15,7 @@ public class MedicStatTracker extends StatTracker } @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) - public void onCombatDeath(Paintball.ReviveEvent event) + public void onCombatDeath(ReviveEvent event) { if (getGame().GetState() != Game.GameState.Live) return; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/LastStandStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/LastStandStatTracker.java deleted file mode 100644 index d1df0b6f5..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/LastStandStatTracker.java +++ /dev/null @@ -1,63 +0,0 @@ -package nautilus.game.arcade.stats; - -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import mineplex.core.common.util.UtilPlayer; -import mineplex.minecraft.game.core.combat.event.CombatDeathEvent; -import nautilus.game.arcade.game.Game; -import nautilus.game.arcade.game.TeamGame; - -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; - -public class LastStandStatTracker extends StatTracker -{ - private final Map _kills = new HashMap<>(); - - public LastStandStatTracker(TeamGame game) - { - super(game); - } - - @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) - public void onCombatDeath(CombatDeathEvent event) - { - if (getGame().GetState() != Game.GameState.Live) - return; - - if (event.GetLog().GetKiller() == null) - return; - - if (!event.GetLog().GetKiller().IsPlayer()) - return; - - Player killer = UtilPlayer.searchExact(event.GetLog().GetKiller().GetName()); - if (killer == null) - return; - - if (event.GetLog().GetPlayer() == null) - return; - - if (!event.GetLog().GetPlayer().IsPlayer()) - return; - - Player player = UtilPlayer.searchExact(event.GetLog().GetPlayer().GetName()); - if (player == null) - return; - - if (getGame().GetTeam(killer).GetPlayers(true).size() == 1) - { - Integer kills = _kills.get(killer.getUniqueId()); - - kills = (kills == null ? 0 : kills) + 1; - - _kills.put(killer.getUniqueId(), kills); - - if (kills >= 3) - addStat(killer, "LastStand", 1, true, false); - } - } -} From e816a79f37825ae577d6dd2226c8448f4fbbbfc8 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Thu, 19 Nov 2015 17:51:25 -0500 Subject: [PATCH 07/22] Reformatted --- .../trackers/LastStandStatTracker.java | 22 +++++++++---------- .../paintball/trackers/MedicStatTracker.java | 2 +- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/LastStandStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/LastStandStatTracker.java index 6d983b81a..523201a16 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/LastStandStatTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/LastStandStatTracker.java @@ -1,42 +1,40 @@ package nautilus.game.arcade.game.games.paintball.trackers; -import java.util.HashMap; -import java.util.Map; import java.util.UUID; import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import nautilus.game.arcade.game.Game; +import mineplex.core.common.util.NautHashMap; import nautilus.game.arcade.game.games.paintball.Paintball; import nautilus.game.arcade.game.games.paintball.events.PaintballEvent; import nautilus.game.arcade.stats.StatTracker; public class LastStandStatTracker extends StatTracker { - private final Map _kills = new HashMap<>(); + private final NautHashMap _kills = new NautHashMap(); public LastStandStatTracker(Paintball game) { super(game); } - @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) + @EventHandler public void onPaintball(PaintballEvent event) { - if (getGame().GetState() != Game.GameState.Live) + if (!getGame().IsLive()) return; if (getGame().GetTeam(event.getKiller()).GetPlayers(true).size() == 1) { - Integer kills = _kills.get(event.getKiller().getUniqueId()); - - kills = (kills == null ? 0 : kills) + 1; - - _kills.put(event.getKiller().getUniqueId(), kills); + if (!_kills.containsKey(event.getKiller().getUniqueId())) + _kills.put(event.getKiller().getUniqueId(), 0); + + int kills = _kills.get(event.getKiller().getUniqueId()) + 1; if (kills >= 3) addStat(event.getKiller(), "LastStand", 1, true, false); + + _kills.put(event.getKiller().getUniqueId(), kills); } } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/MedicStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/MedicStatTracker.java index ee5b7bf63..052412c13 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/MedicStatTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/MedicStatTracker.java @@ -17,7 +17,7 @@ public class MedicStatTracker extends StatTracker @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onCombatDeath(ReviveEvent event) { - if (getGame().GetState() != Game.GameState.Live) + if (!getGame().IsLive()) return; addStat(event.getPlayer(), "Medic", 1, false, false); From f02e2b2e72094427a30bfa989ebd5fffac3c6353 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Thu, 19 Nov 2015 18:02:07 -0500 Subject: [PATCH 08/22] Formatting --- .../game/games/paintball/Paintball.java | 9 ++-- .../paintball/events/PaintballEvent.java | 5 ++ .../games/paintball/events/ReviveEvent.java | 5 ++ .../kits/perks/PerkPaintballSniper.java | 46 ++----------------- .../paintball/trackers/MedicStatTracker.java | 6 +-- 5 files changed, 22 insertions(+), 49 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java index 8a0854330..aac5c3853 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java @@ -151,12 +151,13 @@ public class Paintball extends TeamGame if (event.getEntity() instanceof Arrow) { - Manager.runSyncLater(new Runnable() - { + Manager.runSyncLater(new Runnable() // Stupid thing I have to do to make sure the arrow's location is accounted for. Stupid mojang. - Myst + { @Override public void run() { Location loc = event.getEntity().getLocation(); + loc.add(event.getEntity().getVelocity().clone().normalize().multiply(.5)); for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet()) { @@ -174,7 +175,7 @@ public class Paintball extends TeamGame else { Location loc = event.getEntity().getLocation(); - loc.add(event.getEntity().getVelocity()); + loc.add(event.getEntity().getVelocity().clone().normalize().multiply(.5)); for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet()) { @@ -186,8 +187,6 @@ public class Paintball extends TeamGame if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8); else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10); - - event.getEntity().remove(); } } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/PaintballEvent.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/PaintballEvent.java index 1805e641e..6de498547 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/PaintballEvent.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/PaintballEvent.java @@ -6,6 +6,11 @@ import org.bukkit.event.player.PlayerEvent; public class PaintballEvent extends PlayerEvent { + /** + * Created by: Mysticate + * Timestamp: November 19, 2015 + */ + private static final HandlerList handlers = new HandlerList(); public static HandlerList getHandlerList() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/ReviveEvent.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/ReviveEvent.java index 53cb01acc..1fb253675 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/ReviveEvent.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/events/ReviveEvent.java @@ -6,6 +6,11 @@ import org.bukkit.event.player.PlayerEvent; public class ReviveEvent extends PlayerEvent { + /** + * Created by: Mysticate + * Timestamp: November 19, 2015 + */ + private static final HandlerList handlers = new HandlerList(); public static HandlerList getHandlerList() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java index c8bad2b0a..80ecdec5c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java @@ -40,6 +40,11 @@ import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; public class PerkPaintballSniper extends Perk { + /** + * Created by: Mysticate + * Timestamp: October 27, 2015 + */ + private static class Bullet { public int Damage; @@ -47,7 +52,6 @@ public class PerkPaintballSniper extends Perk } private HashMap _crouching = new HashMap(); -// private HashMap _fired = new HashMap(); private NautHashMap _fired = new NautHashMap(); private double _velocity = 15; @@ -260,46 +264,6 @@ public class PerkPaintballSniper extends Perk bullet.LastSeen = proj.getLocation(); } } -// -// @EventHandler(priority = EventPriority.HIGH) -// public void doArrowEffects(ProjectileHitEvent event) -// { -// if (!Manager.GetGame().IsLive()) -// return; -// -// if (!(event.getEntity() instanceof Arrow)) -// return; -// -// Arrow proj = (Arrow) event.getEntity(); -// -// if (!_fired.containsKey(proj)) -// return; -// -// Bullet bullet = _fired.get(proj); -// -// double curRange = 0; -// double distance = Math.abs(UtilMath.offset(proj.getLocation(), bullet.LastSeen)); -// -// while (curRange <= distance) -// { -// Location newTarget = bullet.LastSeen.add(UtilAlg.getTrajectory(bullet.LastSeen, proj.getLocation()).multiply(curRange)); -// -// //Progress Forwards -// curRange += 0.8; -// -// ChatColor color = ChatColor.values()[proj.getMetadata("color").get(0).asInt()]; -// if (color == ChatColor.BLUE || color == ChatColor.AQUA) -// { -// UtilParticle.PlayParticle(ParticleType.RED_DUST, newTarget, -1, 1, 1, 1, 0, -// ViewDist.NORMAL, UtilServer.getPlayers()); -// } -// else -// { -// UtilParticle.PlayParticle(ParticleType.RED_DUST, newTarget, 0, 0, 0, 0, 1, -// ViewDist.NORMAL, UtilServer.getPlayers()); -// } -// } -// } @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public void removeEffects(GameStateChangeEvent event) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/MedicStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/MedicStatTracker.java index 052412c13..cedccaba6 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/MedicStatTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/trackers/MedicStatTracker.java @@ -3,13 +3,13 @@ package nautilus.game.arcade.game.games.paintball.trackers; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import nautilus.game.arcade.game.Game; +import nautilus.game.arcade.game.games.paintball.Paintball; import nautilus.game.arcade.game.games.paintball.events.ReviveEvent; import nautilus.game.arcade.stats.StatTracker; -public class MedicStatTracker extends StatTracker +public class MedicStatTracker extends StatTracker { - public MedicStatTracker(Game game) + public MedicStatTracker(Paintball game) { super(game); } From f7011032bc121989fa2656893b3134aae04918a1 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Thu, 19 Nov 2015 19:49:46 -0500 Subject: [PATCH 09/22] Switching branches --- .../game/games/paintball/Paintball.java | 28 +++++++---- .../game/games/paintball/PlayerCopy.java | 48 ++++++++++++++----- 2 files changed, 55 insertions(+), 21 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java index aac5c3853..3eabf69b5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java @@ -16,7 +16,6 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; import org.bukkit.entity.Arrow; import org.bukkit.entity.EnderPearl; import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.entity.Snowball; import org.bukkit.entity.ThrownPotion; @@ -27,6 +26,7 @@ import org.bukkit.event.entity.EntityRegainHealthEvent; import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.player.PlayerInteractAtEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerTeleportEvent; @@ -278,7 +278,7 @@ public class Paintball extends TeamGame UtilPlayer.message(player, damageeTeam.GetColor() + damagee.getName() + ChatColor.RESET + " was painted by " + damagerTeam.GetColor() + damager.getName() + ChatColor.RESET + "!"); - PlayerOut(damagee); + PlayerOut(damagee, damager); AddGems(damager, 2, "Kills", true, true); @@ -340,7 +340,7 @@ public class Paintball extends TeamGame return nonColored.isEmpty(); } - public void PlayerOut(Player player) + public void PlayerOut(Player player, Player killer) { //State SetPlayerState(player, PlayerState.OUT); @@ -358,7 +358,7 @@ public class Paintball extends TeamGame UtilAction.velocity(player, new Vector(0,1.2,0)); - _doubles.put(player, new PlayerCopy(this, player, GetTeam(player).GetColor())); + _doubles.put(player, new PlayerCopy(this, player, killer, GetTeam(player).GetColor())); } // @EventHandler @@ -423,7 +423,8 @@ public class Paintball extends TeamGame if (UtilMath.offset(copy.GetEntity().getLocation().add(0,1,0), event.getEntity().getLocation()) > 3) continue; - PlayerIn(copy.GetPlayer(), copy.GetEntity()); + PlayerIn(copy.GetPlayer(), copy); + copyIterator.remove(); AddGems(thrower, 3, "Revived Ally", true, true); @@ -445,7 +446,7 @@ public class Paintball extends TeamGame } } - public void PlayerIn(final Player player, final LivingEntity copy) + public void PlayerIn(final Player player, final PlayerCopy copy) { //State SetPlayerState(player, PlayerState.IN); @@ -455,9 +456,9 @@ public class Paintball extends TeamGame if (copy != null) { Location loc = player.getLocation(); - loc.setX(copy.getLocation().getX()); - loc.setY(copy.getLocation().getY()); - loc.setZ(copy.getLocation().getZ()); + loc.setX(copy.GetEntity().getLocation().getX()); + loc.setY(copy.GetEntity().getLocation().getY()); + loc.setZ(copy.GetEntity().getLocation().getZ()); player.teleport(loc); } @@ -489,7 +490,8 @@ public class Paintball extends TeamGame Manager.GetCondition().EndCondition(player, ConditionType.CLOAK, null); //Remove Copy - copy.remove(); + copy.GetEntity().remove(); + copy.GetHolo().stop(); } }, 4); } @@ -539,4 +541,10 @@ public class Paintball extends TeamGame UtilInv.Update(event.getPlayer()); } + + @EventHandler + public void onInteract(PlayerInteractAtEntityEvent event) + { + event.setCancelled(true); + } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopy.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopy.java index 620c891ea..8dec1c93b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopy.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopy.java @@ -1,44 +1,66 @@ package nautilus.game.arcade.game.games.paintball; import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.ArmorStand; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; -import org.bukkit.entity.Skeleton; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.SkullMeta; +import org.bukkit.util.EulerAngle; import mineplex.core.common.util.C; +import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilEnt; +import mineplex.core.hologram.Hologram; import nautilus.game.arcade.game.Game; public class PlayerCopy { private Game Host; - - private Skeleton _ent; + private Player _owner; - public PlayerCopy(Game host, Player owner, ChatColor nameColor) + private ArmorStand _ent; + private Hologram _holo; + + public PlayerCopy(Game host, Player owner, Player paintedBy, ChatColor nameColor) { Host = host; _owner = owner; Host.CreatureAllowOverride = true; - _ent = owner.getWorld().spawn(owner.getLocation(), Skeleton.class); + _ent = owner.getWorld().spawn(owner.getLocation(), ArmorStand.class); Host.CreatureAllowOverride = false; UtilEnt.ghost(_ent, true, false); UtilEnt.Vegetate(_ent); + _ent.setArms(true); + _ent.setBasePlate(false); + + Location loc = owner.getLocation(); + _ent.teleport(owner); + _ent.setHeadPose(new EulerAngle(UtilAlg.GetYaw(loc.getDirection()), UtilAlg.GetPitch(loc.getDirection()), 0)); + //Armor _ent.getEquipment().setArmorContents(owner.getInventory().getArmorContents()); + _ent.setItemInHand(owner.getItemInHand()); - _ent.setCustomName(C.cWhite + C.Bold + C.Scramble + "XX" + ChatColor.RESET + " " + nameColor + owner.getName() + " " + C.cWhite + C.Bold + C.Scramble + "XX"); - _ent.setCustomNameVisible(true); + //Player skull + ItemStack skull = new ItemStack(Material.SKULL_ITEM, 3); + SkullMeta meta = (SkullMeta) skull.getItemMeta(); + meta.setOwner(owner.getName()); + skull.setItemMeta(meta); + _ent.setHelmet(skull); - //Disguise -// DisguisePlayer disguise = new DisguisePlayer(_ent, ((CraftPlayer)owner).getProfile()); -// Host.Manager.GetDisguise().disguise(disguise); + //Name + _holo = new Hologram(host.Manager.getHologramManager(), _ent.getEyeLocation().clone().add(0, .5, 0)); + _holo.setText(C.cWhite + C.Bold + C.Scramble + "XX" + ChatColor.RESET + " " + nameColor + owner.getName() + " " + C.cWhite + C.Bold + C.Scramble + "XX", C.cWhite + "Painted by " + host.GetTeam(paintedBy).GetColor() + paintedBy.getName()); + _holo.start(); } public LivingEntity GetEntity() @@ -50,5 +72,9 @@ public class PlayerCopy { return _owner; } - + + public Hologram GetHolo() + { + return _holo; + } } From 3f37b893d3f54be9d59af345501ddf8764e169be Mon Sep 17 00:00:00 2001 From: Mysticate Date: Thu, 19 Nov 2015 20:29:20 -0500 Subject: [PATCH 10/22] Worked on double. --- .../game/games/paintball/PlayerCopy.java | 6 +- .../arcade/game/games/wither/PlayerCopy.java | 54 ++++++++++++ .../arcade/game/games/wither/WitherGame.java | 82 ++++++++----------- 3 files changed, 93 insertions(+), 49 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wither/PlayerCopy.java diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopy.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopy.java index 8dec1c93b..591e35e54 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopy.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopy.java @@ -14,6 +14,7 @@ import mineplex.core.common.util.C; import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilEnt; import mineplex.core.hologram.Hologram; +import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.game.Game; public class PlayerCopy @@ -41,17 +42,18 @@ public class PlayerCopy _ent.setArms(true); _ent.setBasePlate(false); + _ent.setVisible(false); Location loc = owner.getLocation(); _ent.teleport(owner); - _ent.setHeadPose(new EulerAngle(UtilAlg.GetYaw(loc.getDirection()), UtilAlg.GetPitch(loc.getDirection()), 0)); + _ent.setHeadPose(new EulerAngle(Math.toRadians(UtilAlg.GetPitch(loc.getDirection())), Math.toRadians(UtilAlg.GetYaw(loc.getDirection())), 0)); //Armor _ent.getEquipment().setArmorContents(owner.getInventory().getArmorContents()); _ent.setItemInHand(owner.getItemInHand()); //Player skull - ItemStack skull = new ItemStack(Material.SKULL_ITEM, 3); + ItemStack skull = ItemStackFactory.Instance.CreateStack(Material.SKULL_ITEM, (byte) 3, 1); SkullMeta meta = (SkullMeta) skull.getItemMeta(); meta.setOwner(owner.getName()); skull.setItemMeta(meta); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wither/PlayerCopy.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wither/PlayerCopy.java new file mode 100644 index 000000000..8101f2b13 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wither/PlayerCopy.java @@ -0,0 +1,54 @@ +package nautilus.game.arcade.game.games.wither; + +import org.bukkit.ChatColor; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Skeleton; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.UtilEnt; +import nautilus.game.arcade.game.Game; + +public class PlayerCopy +{ + private Game Host; + + private Skeleton _ent; + private Player _owner; + + public PlayerCopy(Game host, Player owner, ChatColor nameColor) + { + Host = host; + + _owner = owner; + + Host.CreatureAllowOverride = true; + _ent = owner.getWorld().spawn(owner.getLocation(), Skeleton.class); + Host.CreatureAllowOverride = false; + + UtilEnt.ghost(_ent, true, false); + + UtilEnt.Vegetate(_ent); + + //Armor + _ent.getEquipment().setArmorContents(owner.getInventory().getArmorContents()); + + _ent.setCustomName(C.cWhite + C.Bold + C.Scramble + "XX" + ChatColor.RESET + " " + nameColor + owner.getName() + " " + C.cWhite + C.Bold + C.Scramble + "XX"); + _ent.setCustomNameVisible(true); + + //Disguise +// DisguisePlayer disguise = new DisguisePlayer(_ent, ((CraftPlayer)owner).getProfile()); +// Host.Manager.GetDisguise().disguise(disguise); + } + + public LivingEntity GetEntity() + { + return _ent; + } + + public Player GetPlayer() + { + return _owner; + } + +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wither/WitherGame.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wither/WitherGame.java index ef4cab48f..a79e15922 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wither/WitherGame.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wither/WitherGame.java @@ -1,55 +1,11 @@ package nautilus.game.arcade.game.games.wither; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Set; -import mineplex.core.common.util.C; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilAction; -import mineplex.core.common.util.UtilAlg; -import mineplex.core.common.util.UtilBlock; -import mineplex.core.common.util.UtilParticle; -import mineplex.core.common.util.UtilEvent.ActionType; -import mineplex.core.common.util.UtilParticle.ParticleType; -import mineplex.core.common.util.UtilParticle.ViewDist; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.common.util.UtilServer; -import mineplex.core.common.util.UtilTextMiddle; -import mineplex.core.common.util.UtilTime; -import mineplex.core.data.BlockData; -import mineplex.core.itemstack.ItemBuilder; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; -import mineplex.minecraft.game.core.condition.Condition.ConditionType; -import mineplex.minecraft.game.core.damage.CustomDamageEvent; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.GameTeam; -import nautilus.game.arcade.game.GameTeam.PlayerState; -import nautilus.game.arcade.game.TeamGame; -import nautilus.game.arcade.game.games.paintball.PlayerCopy; -import nautilus.game.arcade.game.games.wither.events.HumanReviveEvent; -import nautilus.game.arcade.game.games.wither.kit.KitHumanArcher; -import nautilus.game.arcade.game.games.wither.kit.KitHumanMedic; -import nautilus.game.arcade.game.games.wither.kit.KitHumanEditor; -import nautilus.game.arcade.game.games.wither.kit.KitWitherMinion; -import nautilus.game.arcade.kit.Kit; -import nautilus.game.arcade.kit.NullKit; -import nautilus.game.arcade.kit.perks.data.IBlockRestorer; -import nautilus.game.arcade.stats.BloodThirstyStatTracker; -import nautilus.game.arcade.stats.KingDamageStatTracker; -import nautilus.game.arcade.stats.KingSlayerStatTracker; -import nautilus.game.arcade.stats.TeamDeathsStatTracker; -import nautilus.game.arcade.stats.TeamKillsStatTracker; -import nautilus.game.arcade.stats.WinAsTeamStatTracker; -import nautilus.game.arcade.stats.WitherAssaultReviveTracker; - import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.EntityEffect; @@ -74,13 +30,45 @@ import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.event.entity.ProjectileLaunchEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.potion.PotionEffectType; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilAction; +import mineplex.core.common.util.UtilAlg; +import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; +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.UtilTextMiddle; +import mineplex.core.common.util.UtilTime; +import mineplex.core.data.BlockData; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; +import mineplex.minecraft.game.core.condition.Condition.ConditionType; +import mineplex.minecraft.game.core.damage.CustomDamageEvent; +import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.GameType; +import nautilus.game.arcade.events.GameStateChangeEvent; +import nautilus.game.arcade.game.GameTeam; +import nautilus.game.arcade.game.GameTeam.PlayerState; +import nautilus.game.arcade.game.TeamGame; +import nautilus.game.arcade.game.games.wither.events.HumanReviveEvent; +import nautilus.game.arcade.game.games.wither.kit.KitHumanArcher; +import nautilus.game.arcade.game.games.wither.kit.KitHumanEditor; +import nautilus.game.arcade.game.games.wither.kit.KitHumanMedic; +import nautilus.game.arcade.game.games.wither.kit.KitWitherMinion; +import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.kit.NullKit; +import nautilus.game.arcade.kit.perks.data.IBlockRestorer; +import nautilus.game.arcade.stats.TeamDeathsStatTracker; +import nautilus.game.arcade.stats.TeamKillsStatTracker; + public class WitherGame extends TeamGame implements IBlockRestorer { private GameTeam _runners; From 11b2748a5a9a217bc9ac4f9e2bbfecf7b796613d Mon Sep 17 00:00:00 2001 From: Mysticate Date: Sun, 6 Dec 2015 11:45:10 -0500 Subject: [PATCH 11/22] Quick thing before merge --- .../arcade/game/games/paintball/Paintball.java | 17 ++++++----------- .../kits/perks/PerkPaintballSniper.java | 4 ++-- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java index 3eabf69b5..12f0e47f7 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java @@ -15,7 +15,6 @@ import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; import org.bukkit.entity.Arrow; import org.bukkit.entity.EnderPearl; -import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; import org.bukkit.entity.Snowball; import org.bukkit.entity.ThrownPotion; @@ -93,6 +92,8 @@ public class Paintball extends TeamGame StrictAntiHack = true; HungerSet = 20; + + InventoryClick = false; registerStatTrackers( new KillingSpreeTracker(this), @@ -135,7 +136,7 @@ public class Paintball extends TeamGame if (event.getCause() == TeleportCause.ENDER_PEARL) event.setCancelled(true); } - + @SuppressWarnings("deprecation") @EventHandler public void Paint(final ProjectileHitEvent event) @@ -198,9 +199,9 @@ public class Paintball extends TeamGame if (_doubles.containsKey(player)) { - PlayerCopy copy = _doubles.get(player); + PlayerCopy copy = _doubles.remove(player); copy.GetEntity().remove(); - _doubles.remove(player); + copy.GetHolo().stop(); } } @@ -297,14 +298,8 @@ public class Paintball extends TeamGame @EventHandler public void ArmorRemoveCancel(InventoryClickEvent event) { - HumanEntity player = event.getWhoClicked(); - - // Fixed armor being taken off while spectating after being painted. - - if (!IsAlive(player)) - { + if (!IsAlive(event.getWhoClicked())) event.setCancelled(true); - } } public boolean Color(Player player, int amount) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java index 80ecdec5c..657f2e3d7 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java @@ -285,8 +285,8 @@ public class PerkPaintballSniper extends Perk if (Manager.GetCondition().HasCondition(player, ConditionType.SLOW, GetName())) Manager.GetCondition().EndCondition(player, ConditionType.SLOW, GetName()); - if (Manager.GetCondition().HasCondition(player, ConditionType.JUMP, GetName())) - Manager.GetCondition().EndCondition(player, ConditionType.JUMP, GetName()); +// if (Manager.GetCondition().HasCondition(player, ConditionType.JUMP, GetName())) +// Manager.GetCondition().EndCondition(player, ConditionType.JUMP, GetName()); } private void addEffects(Player player) From 5e57caa94db2ae55b1c4ef6d3d010c9749813a03 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Sun, 6 Dec 2015 17:09:33 -0500 Subject: [PATCH 12/22] Final tweaks to random armorstand --- .../games/paintball/PlayerCopyPaintball.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopyPaintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopyPaintball.java index 84e8336c9..595aa9889 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopyPaintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopyPaintball.java @@ -11,8 +11,8 @@ import org.bukkit.inventory.meta.SkullMeta; import org.bukkit.util.EulerAngle; import mineplex.core.common.util.C; -import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilEnt; +import mineplex.core.common.util.UtilMath; import mineplex.core.hologram.Hologram; import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.game.Game; @@ -32,6 +32,9 @@ public class PlayerCopyPaintball _owner = owner; + Location entLoc = owner.getLocation(); + entLoc.setPitch(0F); + Host.CreatureAllowOverride = true; _ent = owner.getWorld().spawn(owner.getLocation(), ArmorStand.class); Host.CreatureAllowOverride = false; @@ -44,9 +47,15 @@ public class PlayerCopyPaintball _ent.setBasePlate(false); _ent.setVisible(false); - Location loc = owner.getLocation(); - _ent.teleport(owner); - _ent.setHeadPose(new EulerAngle(Math.toRadians(UtilAlg.GetPitch(loc.getDirection())), Math.toRadians(UtilAlg.GetYaw(loc.getDirection())), 0)); + //Rand pose + int rA = UtilMath.r(20) - 3; + int lA = UtilMath.r(20) - 3; + int rL = UtilMath.r(20) - 3; + int lL = UtilMath.r(20) - 3; + _ent.setRightArmPose(new EulerAngle(Math.toRadians(rA < 0 ? 360 - rA : rA), 0, Math.toRadians(Math.abs(rA)))); + _ent.setRightLegPose(new EulerAngle(Math.toRadians(rL < 0 ? 360 - rL : rL), 0, Math.toRadians(Math.abs(rL)))); + _ent.setLeftArmPose(new EulerAngle(Math.toRadians(lA < 0 ? 360 - lA : lA), 0, Math.toRadians(360 - Math.abs(lA)))); + _ent.setLeftLegPose(new EulerAngle(Math.toRadians(lL < 0 ? 360 - lL : rA), 0, Math.toRadians(360 - Math.abs(lL)))); //Armor _ent.getEquipment().setArmorContents(owner.getInventory().getArmorContents()); From b5967a12059ccd3cf3bbaba796152e8758937125 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Sun, 6 Dec 2015 17:14:51 -0500 Subject: [PATCH 13/22] Uncommented bouncy balls --- .../src/nautilus/game/arcade/GameType.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameType.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameType.java index bbde4499e..5eedb306e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameType.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameType.java @@ -8,6 +8,7 @@ import nautilus.game.arcade.game.Game; import nautilus.game.arcade.game.games.baconbrawl.BaconBrawl; import nautilus.game.arcade.game.games.barbarians.Barbarians; import nautilus.game.arcade.game.games.bossbattles.BossBattles; +import nautilus.game.arcade.game.games.bouncyballs.BouncyBalls; import nautilus.game.arcade.game.games.bridge.Bridge; import nautilus.game.arcade.game.games.build.Build; import nautilus.game.arcade.game.games.cards.Cards; @@ -128,7 +129,7 @@ public enum GameType MonsterMaze(MonsterMaze.class, GameDisplay.MonsterMaze), MonsterLeague(MonsterLeague.class, GameDisplay.MonsterLeague), -// BouncyBalls(BouncyBalls.class, GameDisplay.BouncyBalls), + BouncyBalls(BouncyBalls.class, GameDisplay.BouncyBalls), Event(EventGame.class, GameDisplay.Event, new GameType[]{ GameType.BaconBrawl, GameType.Barbarians, GameType.Bridge, GameType.Build, GameType.Build, From 09f7a03444e903467e83e966efb8233785a9c849 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Sun, 6 Dec 2015 20:00:22 -0500 Subject: [PATCH 14/22] Quick changes to improve things. --- .../src/mineplex/core/hologram/Hologram.java | 7 +- .../game/core/damage/CustomDamageEvent.java | 15 +++- .../game/core/damage/DamageManager.java | 2 +- .../game/games/paintball/Paintball.java | 86 ++++++++++++++++++ .../games/paintball/PlayerCopyPaintball.java | 28 +++++- .../kits/perks/PerkPaintballSniper.java | 88 +++++++++++++------ 6 files changed, 193 insertions(+), 33 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/hologram/Hologram.java b/Plugins/Mineplex.Core/src/mineplex/core/hologram/Hologram.java index e772427cc..a569b9612 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/hologram/Hologram.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/hologram/Hologram.java @@ -4,11 +4,14 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; + import org.bukkit.Location; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.util.Vector; +import mineplex.core.common.util.UtilEnt; +import mineplex.core.common.util.UtilPlayer; import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.PacketPlayOutEntity; @@ -16,8 +19,6 @@ import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityMetadata; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving; -import mineplex.core.common.util.UtilEnt; -import mineplex.core.common.util.UtilPlayer; public class Hologram { @@ -313,7 +314,7 @@ public class Hologram */ public Hologram removePlayer(Player player) { - return addPlayer(player.getName()); + return removePlayer(player.getName()); } /** diff --git a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/CustomDamageEvent.java b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/CustomDamageEvent.java index ef2f17d9b..8f2788e66 100644 --- a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/CustomDamageEvent.java +++ b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/CustomDamageEvent.java @@ -3,8 +3,6 @@ package mineplex.minecraft.game.core.damage; import java.util.ArrayList; import java.util.HashMap; -import mineplex.core.common.util.C; - import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.entity.LivingEntity; @@ -15,6 +13,8 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; +import mineplex.core.common.util.C; + public class CustomDamageEvent extends Event implements Cancellable { private static final HandlerList handlers = new HandlerList(); @@ -43,6 +43,7 @@ public class CustomDamageEvent extends Event implements Cancellable private boolean _knockback = true; private boolean _damageeBrute = false; private boolean _damageToLevel = true; + private boolean _arrowShow = true; public CustomDamageEvent(LivingEntity damagee, LivingEntity damager, Projectile projectile, Location knockbackOrigin, DamageCause cause, double damage, boolean knockback, boolean ignoreRate, boolean ignoreArmor, String initialSource, @@ -167,6 +168,16 @@ public class CustomDamageEvent extends Event implements Cancellable { return _projectile; } + + public void setShowArrows(boolean show) + { + _arrowShow = show; + } + + public boolean getShowArrows() + { + return _arrowShow; + } public DamageCause GetCause() { diff --git a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/DamageManager.java b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/DamageManager.java index af1525e2a..8d3d35d16 100644 --- a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/DamageManager.java +++ b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/DamageManager.java @@ -378,7 +378,7 @@ public class DamageManager extends MiniPlugin event.GetDamageeEntity().playEffect(EntityEffect.HURT); //Sticky Arrow - if (event.GetCause() == DamageCause.PROJECTILE && event.GetProjectile() != null && event.GetProjectile() instanceof Arrow) + if (event.GetCause() == DamageCause.PROJECTILE && event.GetProjectile() != null && event.GetProjectile() instanceof Arrow && event.getShowArrows()) ((CraftLivingEntity)event.GetDamageeEntity()).getHandle().o(((CraftLivingEntity)event.GetDamageeEntity()).getHandle().bv() + 1); //Knockback diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java index ec8a80299..d345843d0 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java @@ -33,8 +33,11 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.LeatherArmorMeta; import org.bukkit.potion.PotionEffectType; +import org.bukkit.scoreboard.NameTagVisibility; +import org.bukkit.scoreboard.Team; import org.bukkit.util.Vector; +import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilBlock; @@ -45,6 +48,7 @@ import mineplex.core.common.util.UtilInv; import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; +import mineplex.core.hologram.Hologram.HologramTarget; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.condition.Condition.ConditionType; @@ -116,6 +120,14 @@ public class Paintball extends TeamGame this.GetTeamList().get(1).SetColor(ChatColor.RED); this.GetTeamList().get(1).SetName("Nether"); } + + @EventHandler + public void onNameTag(GameStateChangeEvent event) + { + if (event.GetState() == GameState.Prepare) + for (Team team : Scoreboard.GetScoreboard().getTeams()) + team.setNameTagVisibility(NameTagVisibility.HIDE_FOR_OTHER_TEAMS); + } @EventHandler(priority = EventPriority.HIGHEST) public void ColorArmor(PlayerPrepareTeleportEvent event) @@ -170,6 +182,8 @@ public class Paintball extends TeamGame if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8); else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10); + + event.getEntity().remove(); } }, 1); } @@ -188,7 +202,10 @@ public class Paintball extends TeamGame if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8); else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10); + + event.getEntity().remove(); } + } } @@ -202,6 +219,7 @@ public class Paintball extends TeamGame PlayerCopyPaintball copy = _doubles.remove(player); copy.GetEntity().remove(); copy.GetHolo().stop(); + copy.GetSaveMe().stop(); } } @@ -235,6 +253,8 @@ public class Paintball extends TeamGame event.AddMod("Paintball", "Paintball", 2, true); event.AddKnockback("Paintball", 2); + + event.setShowArrows(false); Player damagee = event.GetDamageePlayer(); if (damagee == null) @@ -487,6 +507,7 @@ public class Paintball extends TeamGame //Remove Copy copy.GetEntity().remove(); copy.GetHolo().stop(); + copy.GetSaveMe().stop(); } }, 4); } @@ -542,4 +563,69 @@ public class Paintball extends TeamGame { event.setCancelled(true); } + + @EventHandler + public void updateCloneHolograms(UpdateEvent event) + { + if (event.getType() != UpdateType.FAST) + return; + + for (PlayerCopyPaintball clone : _doubles.values()) + { + if (clone.GetHolo().getHologramTarget() == HologramTarget.WHITELIST) + { + //Other team blacklist + clone.GetHolo().setHologramTarget(HologramTarget.BLACKLIST); + + for (Player cur : GetPlayers(false)) + { + if (!IsAlive(cur)) + { + if (clone.GetHolo().containsPlayer(cur)) + clone.GetHolo().removePlayer(cur); + } + else + { + if (GetTeam(cur) != GetTeam(clone.GetPlayer())) + { + if (!clone.GetHolo().containsPlayer(cur)) + clone.GetHolo().addPlayer(cur); + } + else if (clone.GetHolo().containsPlayer(cur)) + { + clone.GetHolo().removePlayer(cur); + } + } + } + clone.GetHolo().start(); + } + + clone.setSaveMeFlop(!clone.getSaveMeFlop()); + clone.GetSaveMe().setText((clone.getSaveMeFlop() ? C.cRedB : C.cWhiteB) + "SAVE ME!"); + + for (Player player : GetTeam(clone.GetPlayer()).GetPlayers(false)) + { + if (!IsAlive(player)) // Remove if it's not alive + { + if (clone.GetSaveMe().containsPlayer(player)) + clone.GetSaveMe().removePlayer(player); + } + else + { + boolean hasPotion = UtilInv.contains(player, Material.POTION, (byte) -1, 1); + if (clone.GetSaveMe().containsPlayer(player)) + { + if (!hasPotion) // No potions left + { + clone.GetSaveMe().removePlayer(player); + } + } + else if (hasPotion) + { + clone.GetSaveMe().addPlayer(player); + } + } + } + } + } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopyPaintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopyPaintball.java index 595aa9889..f89e0c66d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopyPaintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopyPaintball.java @@ -14,6 +14,7 @@ import mineplex.core.common.util.C; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilMath; import mineplex.core.hologram.Hologram; +import mineplex.core.hologram.Hologram.HologramTarget; import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.game.Game; @@ -25,6 +26,9 @@ public class PlayerCopyPaintball private ArmorStand _ent; private Hologram _holo; + private Hologram _saveMe; + + private boolean _saveMeFlop = false; public PlayerCopyPaintball(Game host, Player owner, Player paintedBy, ChatColor nameColor) { @@ -69,9 +73,16 @@ public class PlayerCopyPaintball _ent.setHelmet(skull); //Name - _holo = new Hologram(host.Manager.getHologramManager(), _ent.getEyeLocation().clone().add(0, .5, 0)); + _holo = new Hologram(host.Manager.getHologramManager(), _ent.getLocation().clone().add(0, 2.2, 0)); _holo.setText(C.cWhite + C.Bold + C.Scramble + "XX" + ChatColor.RESET + " " + nameColor + owner.getName() + " " + C.cWhite + C.Bold + C.Scramble + "XX", C.cWhite + "Painted by " + host.GetTeam(paintedBy).GetColor() + paintedBy.getName()); + _holo.setHologramTarget(HologramTarget.WHITELIST); _holo.start(); + + //Save me + _saveMe = new Hologram(host.Manager.getHologramManager(), _ent.getLocation().clone().add(0, 2.8, 0)); + _saveMe.setText(C.cRedB + "SAVE ME!"); + _saveMe.setHologramTarget(HologramTarget.WHITELIST); + _saveMe.start(); } public LivingEntity GetEntity() @@ -88,4 +99,19 @@ public class PlayerCopyPaintball { return _holo; } + + public Hologram GetSaveMe() + { + return _saveMe; + } + + public boolean getSaveMeFlop() + { + return _saveMeFlop; + } + + public void setSaveMeFlop(boolean flop) + { + _saveMeFlop = flop; + } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java index 657f2e3d7..320a71a1c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java @@ -1,13 +1,16 @@ package nautilus.game.arcade.game.games.paintball.kits.perks; import java.util.ArrayList; -import java.util.HashMap; +import java.util.HashSet; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; +import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; import org.bukkit.entity.Arrow; import org.bukkit.entity.Player; +import org.bukkit.entity.Projectile; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerInteractEvent; @@ -27,6 +30,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.packethandler.IPacketHandler; +import mineplex.core.packethandler.PacketInfo; import mineplex.core.recharge.Recharge; import mineplex.core.recharge.RechargedEvent; import mineplex.core.updater.UpdateType; @@ -36,9 +41,10 @@ import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.game.Game.GameState; import nautilus.game.arcade.kit.Perk; import net.md_5.bungee.api.ChatColor; -import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_8_R3.EntityArrow; +import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntity; -public class PerkPaintballSniper extends Perk +public class PerkPaintballSniper extends Perk implements IPacketHandler { /** * Created by: Mysticate @@ -47,15 +53,18 @@ public class PerkPaintballSniper extends Perk private static class Bullet { + public Player Shooter; public int Damage; public Location LastSeen; } - private HashMap _crouching = new HashMap(); + private HashSet _crouching = new HashSet(); private NautHashMap _fired = new NautHashMap(); private double _velocity = 15; + private boolean _spawning = false; + public PerkPaintballSniper() { super("Sniper Rifle", new String[] @@ -63,7 +72,14 @@ public class PerkPaintballSniper extends Perk C.cYellow + "Crouch" + C.cGray + " to use " + C.cGreen + "Scope", C.cYellow + "Right-Click" + C.cGray + " to use " + C.cGreen + "Sniper Rifle", "Experience Bar represents damage." - }); + }); + } + + @SuppressWarnings("unchecked") + @Override + public void registeredEvents() + { + Manager.getPacketHandler().addPacketHandler(this, PacketPlayOutSpawnEntity.class); } @EventHandler @@ -107,17 +123,25 @@ public class PerkPaintballSniper extends Perk if (!Recharge.Instance.use(player, GetName(), 1000, true, true)) return; - Arrow proj = player.launchProjectile(Arrow.class, player.getEyeLocation().getDirection().clone().multiply(_velocity)); + net.minecraft.server.v1_8_R3.World world = ((CraftWorld) player.getWorld()).getHandle(); + EntityArrow launch = new EntityArrow(world, ((CraftPlayer) player).getHandle(), 0F); + Location location = player.getEyeLocation(); - PacketPlayOutEntityDestroy packet = new PacketPlayOutEntityDestroy(); - packet.a = new int[]{proj.getEntityId()}; + launch.projectileSource = player; + launch.setPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); - for (Player viewer : UtilServer.getPlayers()) - UtilPlayer.sendPacket(viewer, packet); - + ((Projectile) launch.getBukkitEntity()).setVelocity(player.getEyeLocation().getDirection().clone().multiply(_velocity)); + + _spawning = true; + world.addEntity(launch); + _spawning = false; + + Arrow proj = (Arrow) launch.getBukkitEntity(); + proj.setMetadata("color", new FixedMetadataValue(Manager.getPlugin(), Manager.GetGame().GetTeam(player).GetColor().ordinal())); Bullet bullet = new Bullet(); + bullet.Shooter = player; bullet.Damage = getPaintDamage(player); bullet.LastSeen = proj.getLocation(); @@ -140,11 +164,9 @@ public class PerkPaintballSniper extends Perk if (!Manager.GetGame().IsLive()) return; - + //Cleanup check - HashMap copyMap = new HashMap(); - copyMap.putAll(_crouching); - for (Player player : copyMap.keySet()) + for (Player player : new HashSet(_crouching)) { boolean remove = false; if (!player.isOnline()) @@ -167,7 +189,7 @@ public class PerkPaintballSniper extends Perk if (remove) { - if (_crouching.containsKey(player)) + if (_crouching.contains(player)) _crouching.remove(player); player.setExp(0F); @@ -193,10 +215,10 @@ public class PerkPaintballSniper extends Perk if (!UtilInv.IsItem(player.getItemInHand(), Material.STONE_HOE, (byte) -1)) continue; - if (_crouching.containsKey(player)) + if (_crouching.contains(player)) continue; - _crouching.put(player, System.currentTimeMillis()); + _crouching.add(player); // Zoom addEffects(player); @@ -212,10 +234,10 @@ public class PerkPaintballSniper extends Perk if (!Kit.HasKit(player)) continue; - if (!_crouching.containsKey(player)) + if (!_crouching.contains(player)) continue; - player.setExp((float) Math.min(.999F, player.getExp() + .0125)); + player.setExp((float) Math.min(.999F, player.getExp() + .01666)); } } @@ -238,10 +260,13 @@ public class PerkPaintballSniper extends Perk while (curRange <= distance) { Location newTarget = bullet.LastSeen.add(UtilAlg.getTrajectory(bullet.LastSeen, proj.getLocation()).multiply(curRange)); - + //Progress Forwards curRange += 0.8; + if (UtilMath.offset(bullet.Shooter.getLocation(), newTarget) < 2) + continue; + ChatColor color = ChatColor.values()[proj.getMetadata("color").get(0).asInt()]; if (color == ChatColor.BLUE || color == ChatColor.AQUA) { @@ -266,17 +291,19 @@ public class PerkPaintballSniper extends Perk } @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) - public void removeEffects(GameStateChangeEvent event) + public void clean(GameStateChangeEvent event) { if (event.GetState() != GameState.End) return; - for (Player player : _crouching.keySet()) + for (Player player : _crouching) { removeEffects(player); } _crouching.clear(); + + Manager.getPacketHandler().removePacketHandler(this); } private void removeEffects(Player player) @@ -293,7 +320,7 @@ public class PerkPaintballSniper extends Perk { // Zoom if (!Manager.GetCondition().HasCondition(player, ConditionType.SLOW, GetName())) - Manager.GetCondition().Factory().Slow(GetName(), player, null, Double.MAX_VALUE, 8, false, false, false, false); + Manager.GetCondition().Factory().Slow(GetName(), player, null, Double.MAX_VALUE, 8, false, false, false, true); } public int getPaintDamage(Arrow proj) @@ -306,9 +333,18 @@ public class PerkPaintballSniper extends Perk private int getPaintDamage(Player player) { - if (!_crouching.containsKey(player)) + if (!_crouching.contains(player)) return 1; - return (int) Math.max(1, Math.min(4, Math.floor((System.currentTimeMillis() - _crouching.get(player)) / 1000))); + return 1 + (int) Math.floor(player.getExp() * 10 / 3); + } + + @Override + public void handle(PacketInfo packetInfo) + { + if (!_spawning) + return; + + packetInfo.setCancelled(true); } } \ No newline at end of file From 4566577c6837520f59c22af6bcfc566563dfe8a4 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Tue, 15 Dec 2015 19:26:09 -0500 Subject: [PATCH 15/22] Die player cache --- Plugins/Mineplex.PlayerCache/.project | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 Plugins/Mineplex.PlayerCache/.project diff --git a/Plugins/Mineplex.PlayerCache/.project b/Plugins/Mineplex.PlayerCache/.project deleted file mode 100644 index 5321c2157..000000000 --- a/Plugins/Mineplex.PlayerCache/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - Mineplex.Cache - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - From d28c2be1c338726287a52ed8aeab5f88ede1f7b2 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Wed, 16 Dec 2015 20:26:04 -0500 Subject: [PATCH 16/22] Epic chnage that saved the day omg --- .../nautilus/game/arcade/game/games/paintball/Paintball.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java index d345843d0..b432d2361 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java @@ -86,6 +86,7 @@ public class Paintball extends TeamGame new KitShotgun(manager), new KitMachineGun(manager), new KitSniper(manager), + }, new String[] { "Shoot enemies to paint them", @@ -98,6 +99,8 @@ public class Paintball extends TeamGame HungerSet = 20; InventoryClick = false; + + TeamArmorHotbar = true; registerStatTrackers( new KillingSpreeTracker(this), @@ -210,7 +213,7 @@ public class Paintball extends TeamGame } @EventHandler - public void PlayerQuit(PlayerQuitEvent event) + public void onQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); From 2953fe395fb3650b3e058b506c74d53af72f56e2 Mon Sep 17 00:00:00 2001 From: Jonathan Williams Date: Thu, 17 Dec 2015 18:33:49 -0500 Subject: [PATCH 17/22] Changed dns api key to new key. Prevent server monitor redis calls to cause restarts. Added winter chests to customer support. --- .../bungee/api/DnsMadeEasyApiCallBase.java | 4 +- Plugins/Mineplex.Core/.classpath | 2 +- .../mineplex/servermonitor/ServerMonitor.java | 52 +++++++++++-------- .../customerSupport/CustomerSupport.java | 13 +++++ 4 files changed, 47 insertions(+), 24 deletions(-) diff --git a/Plugins/Mineplex.BungeeRotator/src/mineplex/bungee/api/DnsMadeEasyApiCallBase.java b/Plugins/Mineplex.BungeeRotator/src/mineplex/bungee/api/DnsMadeEasyApiCallBase.java index f4e7aac72..57dc55496 100644 --- a/Plugins/Mineplex.BungeeRotator/src/mineplex/bungee/api/DnsMadeEasyApiCallBase.java +++ b/Plugins/Mineplex.BungeeRotator/src/mineplex/bungee/api/DnsMadeEasyApiCallBase.java @@ -51,13 +51,13 @@ public abstract class DnsMadeEasyApiCallBase try { String timeStamp = getServerTime(); - SecretKeySpec keySpec = new SecretKeySpec("35bb3b97-3815-4b63-b60b-eb1882c07b40".getBytes(), "HmacSHA1"); + SecretKeySpec keySpec = new SecretKeySpec("9041bc01-5cbc-49cf-ae09-a23b98350c62".getBytes(), "HmacSHA1"); Mac mac = Mac.getInstance("HmacSHA1"); mac.init(keySpec); byte[] hashBytes = mac.doFinal((timeStamp + "").getBytes()); Hex.encodeHexString(hashBytes); - request.addHeader("x-dnsme-apiKey", "a9750980-b7df-4a7e-a047-2ade43628f0d"); + request.addHeader("x-dnsme-apiKey", "2039c697-6ca9-412f-abda-0aef659a382a"); request.addHeader("x-dnsme-requestDate", timeStamp + ""); request.addHeader("x-dnsme-hmac", Hex.encodeHexString(hashBytes)); request.addHeader("Content-Type", "application/json"); diff --git a/Plugins/Mineplex.Core/.classpath b/Plugins/Mineplex.Core/.classpath index ea3a54132..4213d7778 100644 --- a/Plugins/Mineplex.Core/.classpath +++ b/Plugins/Mineplex.Core/.classpath @@ -13,7 +13,7 @@ - + diff --git a/Plugins/Mineplex.ServerMonitor/src/mineplex/servermonitor/ServerMonitor.java b/Plugins/Mineplex.ServerMonitor/src/mineplex/servermonitor/ServerMonitor.java index 8056b8d2a..cb57dc313 100644 --- a/Plugins/Mineplex.ServerMonitor/src/mineplex/servermonitor/ServerMonitor.java +++ b/Plugins/Mineplex.ServerMonitor/src/mineplex/servermonitor/ServerMonitor.java @@ -406,30 +406,40 @@ public class ServerMonitor if (deadServer.getUptime() <= 10 || ignoreServer(deadServer.getGroup())) continue; - if (_count == 0 || deadServers.contains(deadServer.getName())) + try { - copyServerLog(deadServer); - killServer(deadServer.getName(), deadServer.getPublicAddress(), deadServer.getPlayerCount(), "[KILLED] [DEAD] " + deadServer.getName() + ":" + deadServer.getPublicAddress(), true); - - handleUserServerGroup(_serverGroupMap.get(deadServer.getGroup())); - } - else if (!_delayedKill.contains(deadServer.getName())) - { - startTimingReport(deadServer); - - _timer.schedule(new TimerTask() + if (_count == 0 || deadServers.contains(deadServer.getName())) { - public void run() + if (_count != 0) + copyServerLog(deadServer); + + killServer(deadServer.getName(), deadServer.getPublicAddress(), deadServer.getPlayerCount(), "[KILLED] [DEAD] " + deadServer.getName() + ":" + deadServer.getPublicAddress(), true); + + handleUserServerGroup(_serverGroupMap.get(deadServer.getGroup())); + } + else if (!_delayedKill.contains(deadServer.getName())) + { + startTimingReport(deadServer); + + _timer.schedule(new TimerTask() { - _deadServers.add(deadServer.getName()); - _delayedKill.remove(deadServer.getName()); - - stopTimingReport(deadServer); - log("[IMPENDING DEATH] : " + deadServer.getName() + ":" + deadServer.getPublicAddress()); - } - }, 20 * 1000); - - _delayedKill.add(deadServer.getName()); + public void run() + { + _deadServers.add(deadServer.getName()); + _delayedKill.remove(deadServer.getName()); + + stopTimingReport(deadServer); + log("[IMPENDING DEATH] : " + deadServer.getName() + ":" + deadServer.getPublicAddress()); + } + }, 20 * 1000); + + _delayedKill.add(deadServer.getName()); + } + } + catch (Exception exception) + { + log("[ERROR] : Trying to delete " + deadServer.getName() + ":" + deadServer.getPublicAddress()); + exception.printStackTrace(); } } } diff --git a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupport.java b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupport.java index 99fd02eb4..1f12a4982 100644 --- a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupport.java +++ b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupport.java @@ -105,6 +105,7 @@ public class CustomerSupport extends MiniPlugin int oldChestsReceived = 0; int ancientChestsReceived = 0; int mythicalChestsReceived = 0; + int winterChestsReceived = 0; for (CoinTransactionToken transaction : donor.getCoinTransactions()) { @@ -150,12 +151,24 @@ public class CustomerSupport extends MiniPlugin } } + if (transaction.SalesPackageName.startsWith("Winter Chest")) + { + if (transaction.Coins == 0 && transaction.Gems == 0) + { + if (transaction.SalesPackageName.split(" ").length == 3) + winterChestsReceived += Integer.parseInt(transaction.SalesPackageName.split(" ")[2]); + else if (transaction.SalesPackageName.split(" ").length == 2) + winterChestsReceived += 1; + } + + } } caller.sendMessage(C.cBlue + "Enjin Coin Total Received : " + C.cYellow + enjinCoinsReceived); caller.sendMessage(C.cBlue + "Old Chests Received : " + C.cYellow + oldChestsReceived); caller.sendMessage(C.cBlue + "Ancient Chests Received : " + C.cYellow + ancientChestsReceived); caller.sendMessage(C.cBlue + "Mythical Chests Received : " + C.cYellow + mythicalChestsReceived); + caller.sendMessage(C.cBlue + "Winter Chests Received : " + C.cYellow + winterChestsReceived); caller.sendMessage(C.cDGreen + C.Strike + "============================================="); _salesPackageManager.displaySalesPackages(caller, playerName); From 53f9a051c585ae4fc5d46c8ce9b1a460d9420ca4 Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Thu, 17 Dec 2015 21:52:34 -0500 Subject: [PATCH 18/22] Fix spectator page sorting team list --- .../game/arcade/gui/spectatorMenu/page/SpectatorPage.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/spectatorMenu/page/SpectatorPage.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/spectatorMenu/page/SpectatorPage.java index a5e801770..9e4c453b3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/spectatorMenu/page/SpectatorPage.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/spectatorMenu/page/SpectatorPage.java @@ -4,10 +4,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; -import java.util.HashMap; import java.util.List; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -57,7 +55,7 @@ public class SpectatorPage extends _buttons = new IButton[54]; _items = new ItemStack[54]; - List teamList = _arcadeManager.GetGame().GetTeamList(); + List teamList = new ArrayList(_arcadeManager.GetGame().GetTeamList()); int playerCount = _arcadeManager.GetGame().GetPlayers(true).size(); From 2c09fd969ba997b4c585b42b1e6377a67b7508af Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Thu, 17 Dec 2015 22:24:44 -0500 Subject: [PATCH 19/22] Attempt at fixing spectator page --- .../game/arcade/gui/spectatorMenu/page/SpectatorPage.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/spectatorMenu/page/SpectatorPage.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/spectatorMenu/page/SpectatorPage.java index 9e4c453b3..1b687bb71 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/spectatorMenu/page/SpectatorPage.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/spectatorMenu/page/SpectatorPage.java @@ -151,9 +151,8 @@ public class SpectatorPage extends int rowsNeeded = (int) Math.ceil(teamPlayers.size() / 8.0); - _buttons = Arrays.copyOf(_buttons, _buttons.length - + (rowsNeeded * 9)); - _items = Arrays.copyOf(_items, _items.length + (rowsNeeded * 9) + rowsNeeded); + _buttons = Arrays.copyOf(_buttons, _buttons.length + (rowsNeeded * 9)); + _items = Arrays.copyOf(_items, _items.length + (rowsNeeded * 9)); for (int row = 0; row < rowsNeeded; row++) { @@ -176,6 +175,9 @@ public class SpectatorPage extends if (rowsNeeded == 1 && teamList.size() < 4 && playerCount <= 26) { currentRow += 2; + + _buttons = Arrays.copyOf(_buttons, _buttons.length + 9); + _items = Arrays.copyOf(_items, _items.length + 9); } else { From 2bf734a15ca073bcb911baf8644ce0d517e71fa2 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Thu, 17 Dec 2015 23:08:07 -0500 Subject: [PATCH 20/22] DONEONDONFA;SDJF;LADSF;OCAJEFOJ;FJAD;FAJSMLDFAH D --- .../core/achievement/AchievementCategory.java | 8 +- .../nautilus/game/arcade/ArcadeManager.java | 69 +++-- .../game/games/paintball/Paintball.java | 131 ++++---- .../games/paintball/PlayerCopyPaintball.java | 2 + .../game/games/paintball/kits/KitSniper.java | 2 +- .../kits/perks/PerkPaintballMachineGun.java | 6 +- .../kits/perks/PerkPaintballRifle.java | 3 + .../kits/perks/PerkPaintballShotgun.java | 3 + .../kits/perks/PerkPaintballSniper.java | 2 +- .../arcade/managers/GameTestingManager.java | 293 ++++++++++++++++++ 10 files changed, 425 insertions(+), 94 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameTestingManager.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java b/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java index 16e65af63..7813b1e09 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java @@ -2,6 +2,10 @@ package mineplex.core.achievement; import java.util.List; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.entity.Player; + import mineplex.core.account.CoreClientManager; import mineplex.core.common.Rank; import mineplex.core.common.util.C; @@ -10,10 +14,6 @@ import mineplex.core.game.GameDisplay; import mineplex.core.stats.PlayerStats; import mineplex.core.stats.StatsManager; -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - public enum AchievementCategory { GLOBAL("Global", null, diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java index 7e9d4a156..01ea9b8cf 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java @@ -6,6 +6,39 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Map.Entry; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.OfflinePlayer; +import org.bukkit.Sound; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.HandlerList; +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.CreatureSpawnEvent; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerLoginEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerResourcePackStatusEvent; +import org.bukkit.event.player.PlayerResourcePackStatusEvent.Status; +import org.bukkit.event.server.ServerListPingEvent; +import org.bukkit.potion.PotionEffect; +import org.bukkit.util.Vector; + +import com.google.common.base.Objects; + import mineplex.core.MiniPlugin; import mineplex.core.account.CoreClientManager; import mineplex.core.achievement.AchievementManager; @@ -39,7 +72,6 @@ import mineplex.core.hologram.HologramManager; import mineplex.core.inventory.InventoryManager; import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.movement.Movement; -import mineplex.core.notifier.NotificationManager; import mineplex.core.npc.NpcManager; import mineplex.core.packethandler.PacketHandler; import mineplex.core.party.PartyManager; @@ -100,45 +132,13 @@ import nautilus.game.arcade.managers.GameManager; import nautilus.game.arcade.managers.GamePlayerManager; import nautilus.game.arcade.managers.GameSpectatorManager; import nautilus.game.arcade.managers.GameStatManager; +import nautilus.game.arcade.managers.GameTestingManager; import nautilus.game.arcade.managers.GameTournamentManager; import nautilus.game.arcade.managers.GameWorldManager; import nautilus.game.arcade.managers.HolidayManager; import nautilus.game.arcade.managers.IdleManager; import nautilus.game.arcade.managers.MiscManager; import nautilus.game.arcade.shop.ArcadeShop; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.GameMode; -import org.bukkit.Material; -import org.bukkit.OfflinePlayer; -import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.HandlerList; -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.CreatureSpawnEvent; -import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.inventory.InventoryType; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerLoginEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerResourcePackStatusEvent; -import org.bukkit.event.player.PlayerResourcePackStatusEvent.Status; -import org.bukkit.event.server.ServerListPingEvent; -import org.bukkit.potion.PotionEffect; -import org.bukkit.util.Vector; - -import com.google.common.base.Objects; public class ArcadeManager extends MiniPlugin implements IRelation { @@ -302,6 +302,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation _idleManager = new IdleManager(this); TitanGiveawayManager titanGiveaway = new TitanGiveawayManager(getPlugin(), clientManager, serverStatusManager); new HolidayManager(this, titanGiveaway); + new GameTestingManager(this); // Game Addons new CompassAddon(plugin, this); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java index b432d2361..f509b43dd 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java @@ -18,6 +18,7 @@ import org.bukkit.entity.EnderPearl; import org.bukkit.entity.Player; import org.bukkit.entity.Snowball; import org.bukkit.entity.ThrownPotion; +import org.bukkit.event.Cancellable; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; @@ -26,12 +27,14 @@ import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerInteractAtEntityEvent; +import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.LeatherArmorMeta; +import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.scoreboard.NameTagVisibility; import org.bukkit.scoreboard.Team; @@ -49,6 +52,7 @@ import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; import mineplex.core.hologram.Hologram.HologramTarget; +import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.condition.Condition.ConditionType; @@ -72,6 +76,7 @@ import nautilus.game.arcade.game.games.paintball.trackers.MedicStatTracker; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.stats.WinFastStatTracker; import nautilus.game.arcade.stats.WinWithoutLosingTeammateStatTracker; +import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; public class Paintball extends TeamGame { @@ -156,59 +161,44 @@ public class Paintball extends TeamGame @EventHandler public void Paint(final ProjectileHitEvent event) { - // Fixed projectile wool painting in waiting lobby. - if (IsLive() || GetState() == GameState.End) { if (event.getEntity() instanceof ThrownPotion) return; final byte color = (byte) (event.getEntity() instanceof EnderPearl || (event.getEntity() instanceof Arrow && event.getEntity().hasMetadata("color") && ChatColor.values()[event.getEntity().getMetadata("color").get(0).asInt()] == ChatColor.RED) ? 14 : 3); - - if (event.getEntity() instanceof Arrow) - { - Manager.runSyncLater(new Runnable() // Stupid thing I have to do to make sure the arrow's location is accounted for. Stupid mojang. - Myst - { - @Override - public void run() + + event.getEntity().setVelocity(event.getEntity().getVelocity().normalize().multiply(1.2)); + + PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(new int[]{event.getEntity().getEntityId()}); + for (Player player : UtilServer.getPlayers()) + UtilPlayer.sendPacket(player, destroy); + + Manager.runSyncLater(new Runnable() // Stupid thing I have to do to make sure the arrow's location is accounted for. Stupid mojang. - Myst { - Location loc = event.getEntity().getLocation(); - loc.add(event.getEntity().getVelocity().clone().normalize().multiply(.5)); - - for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet()) - { - if (block.getType() != Material.WOOL && block.getType() != Material.STAINED_CLAY) - continue; - - block.setData(color); - } - - if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8); - else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10); - - event.getEntity().remove(); - } - }, 1); - } - else - { - Location loc = event.getEntity().getLocation(); - loc.add(event.getEntity().getVelocity().clone().normalize().multiply(.5)); - - for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet()) + @Override + public void run() { - if (block.getType() != Material.WOOL && block.getType() != Material.STAINED_CLAY) - continue; + Location loc = event.getEntity().getLocation(); + // loc.add(event.getEntity().getVelocity().clone().normalize().multiply(.5)); - block.setData(color); + for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet()) + { + if (block.getType() != Material.WOOL && block.getType() != Material.STAINED_CLAY && block.getType() != Material.HARD_CLAY) + continue; + + if (block.getType() == Material.HARD_CLAY) + block.setType(Material.STAINED_CLAY); + + block.setData(color); + } + + if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8); + else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10); + + event.getEntity().remove(); } - - if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8); - else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10); - - event.getEntity().remove(); - } - + }, 0); } } @@ -238,7 +228,7 @@ public class Paintball extends TeamGame event.SetCancelled("No Projectile"); } - @EventHandler + @EventHandler(priority = EventPriority.LOW) public void PaintballDamage(CustomDamageEvent event) { if (!IsLive()) @@ -359,7 +349,7 @@ public class Paintball extends TeamGame } public void PlayerOut(Player player, Player killer) - { + { //State SetPlayerState(player, PlayerState.OUT); player.setHealth(20); @@ -368,15 +358,15 @@ public class Paintball extends TeamGame Manager.GetCondition().Factory().Blind("Hit", player, player, 1.5, 0, false, false, false); Manager.GetCondition().Factory().Cloak("Hit", player, player, 9999, false, false); + _doubles.put(player, new PlayerCopyPaintball(this, player, killer, GetTeam(player).GetColor())); + //Settings player.setAllowFlight(true); player.setFlying(true); ((CraftPlayer)player).getHandle().spectating = true; ((CraftPlayer)player).getHandle().k = false; - + UtilAction.velocity(player, new Vector(0,1.2,0)); - - _doubles.put(player, new PlayerCopyPaintball(this, player, killer, GetTeam(player).GetColor())); } // @EventHandler @@ -545,20 +535,55 @@ public class Paintball extends TeamGame @EventHandler public void onHeal(PlayerInteractEvent event) + { + if (!UtilEvent.isAction(event, ActionType.R)) + return; + + LaunchPotion(event.getPlayer(), event); + } + + @EventHandler + public void onHeal(PlayerInteractEntityEvent event) + { + LaunchPotion(event.getPlayer(), event); + } + + @EventHandler(ignoreCancelled = false) + public void onHeal(PlayerInteractAtEntityEvent event) + { + LaunchPotion(event.getPlayer(), event); + } + + public void LaunchPotion(Player player, Cancellable event) { if (!IsLive()) return; - if (!UtilEvent.isAction(event, ActionType.R)) + if (!UtilGear.isMat(player.getItemInHand(), Material.POTION)) return; - if (!UtilGear.isMat(event.getItem(), Material.POTION)) + event.setCancelled(true); + + if (!IsAlive(player) || UtilPlayer.isSpectator(player)) + return; + + if (!Recharge.Instance.use(player, "Water Potion", 250, false, false)) return; + + UtilInv.UseItemInHand(player); - if (!IsAlive(event.getPlayer()) || UtilPlayer.isSpectator(event.getPlayer())) - event.setCancelled(true); + ThrownPotion potion = player.launchProjectile(ThrownPotion.class); + potion.getEffects().clear(); + potion.getEffects().add(new PotionEffect(PotionEffectType.WATER_BREATHING, 100, 100)); - UtilInv.Update(event.getPlayer()); + Manager.runAsync(new Runnable() + { + @Override + public void run() + { + UtilInv.Update(player); + } + }); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopyPaintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopyPaintball.java index f89e0c66d..a42d2592b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopyPaintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/PlayerCopyPaintball.java @@ -76,12 +76,14 @@ public class PlayerCopyPaintball _holo = new Hologram(host.Manager.getHologramManager(), _ent.getLocation().clone().add(0, 2.2, 0)); _holo.setText(C.cWhite + C.Bold + C.Scramble + "XX" + ChatColor.RESET + " " + nameColor + owner.getName() + " " + C.cWhite + C.Bold + C.Scramble + "XX", C.cWhite + "Painted by " + host.GetTeam(paintedBy).GetColor() + paintedBy.getName()); _holo.setHologramTarget(HologramTarget.WHITELIST); + _holo.setFollowEntity(_ent); _holo.start(); //Save me _saveMe = new Hologram(host.Manager.getHologramManager(), _ent.getLocation().clone().add(0, 2.8, 0)); _saveMe.setText(C.cRedB + "SAVE ME!"); _saveMe.setHologramTarget(HologramTarget.WHITELIST); + _saveMe.setFollowEntity(_ent); _saveMe.start(); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java index e7d41949a..ac49ab365 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java @@ -29,7 +29,7 @@ public class KitSniper extends Kit new String[] { "Long range sniper rifle", - C.cGold + "Higher damage every second scoped" + C.cGold + "Higher damage the longer scoped" }, new Perk[] diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballMachineGun.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballMachineGun.java index 9cc331b61..081fef3e3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballMachineGun.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballMachineGun.java @@ -51,6 +51,9 @@ public class PerkPaintballMachineGun extends Perk @EventHandler public void Shoot(PlayerInteractEvent event) { + if (!Manager.GetGame().IsLive()) + return; + if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK) return; @@ -95,7 +98,8 @@ public class PerkPaintballMachineGun extends Perk //Energy if (player.getExp() >= 0.97) return; - player.setExp((float) (player.getExp() + 0.025)); + + player.setExp((float) Math.min(.999, player.getExp() + 0.025)); //Shoot Vector rand = new Vector(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballRifle.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballRifle.java index 963da3e0c..944d6ae7a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballRifle.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballRifle.java @@ -39,6 +39,9 @@ public class PerkPaintballRifle extends Perk @EventHandler public void Shoot(PlayerInteractEvent event) { + if (!Manager.GetGame().IsLive()) + return; + if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK) return; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballShotgun.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballShotgun.java index 6c14682f9..7e6f6646f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballShotgun.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballShotgun.java @@ -42,6 +42,9 @@ public class PerkPaintballShotgun extends Perk @EventHandler public void Shoot(PlayerInteractEvent event) { + if (!Manager.GetGame().IsLive()) + return; + if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK) return; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java index 320a71a1c..f863678e3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/perks/PerkPaintballSniper.java @@ -237,7 +237,7 @@ public class PerkPaintballSniper extends Perk implements IPacketHandler if (!_crouching.contains(player)) continue; - player.setExp((float) Math.min(.999F, player.getExp() + .01666)); + player.setExp((float) Math.min(.999F, player.getExp() + .03332)); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameTestingManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameTestingManager.java new file mode 100644 index 000000000..ce554376b --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameTestingManager.java @@ -0,0 +1,293 @@ +package nautilus.game.arcade.managers; + +import java.util.HashSet; +import java.util.Set; + +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerLoginEvent; +import org.bukkit.event.player.PlayerLoginEvent.Result; + +import mineplex.core.common.Rank; +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilServer; +import nautilus.game.arcade.ArcadeManager; + +public class GameTestingManager implements Listener +{ + /** + * Created by: Mysticate + * Timestamp: November 25, 2015 + */ + + private ArcadeManager _manager; + + private boolean _enabled; + + private boolean _capped = false; + private int _cap = 16; + private String _capMessage = ""; + + private boolean _whitelisted = false; + private Set _whitelistAdded = new HashSet(); + private String _whitelistMessage = ""; + + public GameTestingManager(ArcadeManager manager) + { + _manager = manager; + + _manager.getPluginManager().registerEvents(this, _manager.getPlugin()); + + _enabled = _manager.getPlugin().getConfig().getString("serverstatus.group").equalsIgnoreCase("Testing"); + } + + public ArcadeManager getManager() + { + return _manager; + } + + public void setCapped(boolean cap) + { + _capped = cap; + } + + public boolean isCapped() + { + return _capped; + } + + public void setCap(int cap) + { + _cap = cap; + } + + public int getCap() + { + return _cap; + } + + public boolean isWhitelisted(String name) + { + return _whitelistAdded.contains(new String(name).toLowerCase()); + } + + public void setWhitelisted(String name, boolean whitelist) + { + if (isWhitelisted(name)) + { + _whitelistAdded.remove(name.toLowerCase()); + } + else + { + _whitelistAdded.add(new String(name).toLowerCase()); + } + } + + @EventHandler + public void onLogin(PlayerLoginEvent event) + { + if (!_enabled) + return; + + if (_capped) + { + if (UtilServer.getPlayers().length >= _cap) + { + if (!isWhitelisted(event.getPlayer().getName())) + { + event.disallow(Result.KICK_FULL, C.cGray + "That server has a set cap!\n" + + C.cGray + "Current players " + C.cYellow + UtilServer.getPlayers().length + "/" + _cap + "\n" + + C.cGreen + _capMessage); + } + return; + } + } + + if (_whitelisted) + { + if (!isWhitelisted(event.getPlayer().getName())) + { + event.disallow(Result.KICK_FULL, C.cGray + "That server has a testing whitelist!\n" + + C.cGray + "Current players " + C.cYellow + UtilServer.getPlayers().length + "/" + _cap + "\n" + + C.cGreen + _capMessage); + } + return; + } + } + + @EventHandler + public void onCommandTesting(PlayerCommandPreprocessEvent event) + { + if (!_enabled) + return; + + String[] args = event.getMessage().split(" "); + String cmd = args[0]; + + if (!cmd.equalsIgnoreCase("/testing")) + return; + + event.setCancelled(true); + + if (!_manager.GetClients().Get(event.getPlayer()).GetRank().has(event.getPlayer(), Rank.JNR_DEV, true)) + return; + + if (args.length == 1) // Help + { + sendGlobalHelp(event.getPlayer()); + return; + } + else if (args[1].equalsIgnoreCase("cap")) + { + if (args.length == 2) + { + sendCapHelp(event.getPlayer()); + return; + } + + if (args.length == 3) // No cap arguments + { + if (args[2].equalsIgnoreCase("toggle")) + { + _capped = !_capped; + UtilPlayer.message(event.getPlayer(), F.main("Testing", "Testing cap enabled " + F.tf(_capped) + ".")); + return; + } + + try + { + _cap = Integer.valueOf(args[2]); + UtilPlayer.message(event.getPlayer(), F.main("Testing", "Testing cap set to " + F.elem("" + _cap) + ".")); + } + catch (Exception ex) + { + sendCapHelp(event.getPlayer()); + } + return; + } + + if (args.length >= 4) + { + if (args[2].equalsIgnoreCase("message")) + { + String message = ""; + for (int i = 3 ; i < args.length ; i++) + message += (args[i] + " "); + + _capMessage = message.trim(); + UtilPlayer.message(event.getPlayer(), F.main("Testing", "Testing cap message set to " + F.elem(_capMessage) + ".")); + return; + } + + sendCapHelp(event.getPlayer()); + return; + } + + sendCapHelp(event.getPlayer()); + return; + } + else if (args[1].equalsIgnoreCase("whitelist")) + { + if (args.length == 2) + { + sendWhitelistHelp(event.getPlayer()); + return; + } + + if (args.length == 3) // No cap arguments + { + if (args[2].equalsIgnoreCase("toggle")) + { + _whitelisted = !_whitelisted; + UtilPlayer.message(event.getPlayer(), F.main("Testing", "Testing whitelist enabled " + F.tf(_whitelisted) + ".")); + return; + } + + sendWhitelistHelp(event.getPlayer()); + return; + } + + if (args.length == 4) + { + if (args[2].equalsIgnoreCase("add")) + { + String playerName = args[3]; + + if (isWhitelisted(playerName)) + { + UtilPlayer.message(event.getPlayer(), F.main("Testing", "That player is already whitelisted!")); + } + else + { + setWhitelisted(playerName, true); + UtilPlayer.message(event.getPlayer(), F.main("Testing", "You have whitelisted " + F.name(playerName) + ".")); + } + return; + } + else if (args[2].equalsIgnoreCase("remove")) + { + String playerName = args[3]; + + if (!isWhitelisted(playerName)) + { + UtilPlayer.message(event.getPlayer(), F.main("Testing", "That player is not whitelisted!")); + } + else + { + setWhitelisted(playerName, false); + UtilPlayer.message(event.getPlayer(), F.main("Testing", "You have removed " + F.name(playerName) + " from the whitelist.")); + } + return; + } + } + + if (args.length >= 4) + { + if (args[2].equalsIgnoreCase("message")) + { + String message = ""; + for (int i = 3 ; i < args.length ; i++) + message += (args[i] + " "); + + _whitelistMessage = message.trim(); + UtilPlayer.message(event.getPlayer(), F.main("Testing", "Testing whitelist message set to " + F.elem(_whitelistMessage) + ".")); + return; + } + + sendWhitelistHelp(event.getPlayer()); + return; + } + + sendWhitelistHelp(event.getPlayer()); + return; + } + } + + private void sendGlobalHelp(Player player) + { + UtilPlayer.message(player, ""); + UtilPlayer.message(player, F.main("Testing", "/testing cap")); + UtilPlayer.message(player, F.main("Testing", "/testing whitelist")); + } + + private void sendCapHelp(Player player) + { + UtilPlayer.message(player, ""); + UtilPlayer.message(player, F.main("Testing", "/testing cap toggle")); + UtilPlayer.message(player, F.main("Testing", "/testing cap ")); + UtilPlayer.message(player, F.main("Testing", "/testing cap message ")); + } + + private void sendWhitelistHelp(Player player) + { + UtilPlayer.message(player, ""); + UtilPlayer.message(player, F.main("Testing", "/testing whitelist toggle")); + UtilPlayer.message(player, F.main("Testing", "/testing whitelist add ")); + UtilPlayer.message(player, F.main("Testing", "/testing whitelist remove ")); + UtilPlayer.message(player, F.main("Testing", "/testing whitelist message ")); + } +} \ No newline at end of file From d561915fd32885036b55cc6a05899934a544e131 Mon Sep 17 00:00:00 2001 From: Mysticate Date: Thu, 17 Dec 2015 23:16:57 -0500 Subject: [PATCH 21/22] FORMATTING CHANG EI'M GOING TO CRY UGH --- .../game/arcade/game/games/paintball/kits/KitSniper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java index ac49ab365..3baa4479e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/kits/KitSniper.java @@ -53,7 +53,7 @@ public class KitSniper extends Kit @Override public void GiveItems(Player player) { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.STONE_HOE, (byte)0, 1, C.cWhite + "Paintball Sniper Rifle")); + player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.STONE_HOE, (byte)0, 1, F.item("Paintball Sniper Rifle"))); ItemStack potion = new ItemStack(Material.POTION, 2, (short)16429); // 16422 PotionMeta potionMeta = (PotionMeta)potion.getItemMeta(); From f80648bfbc25db91b295dcbbc917e192b1693f28 Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Fri, 18 Dec 2015 00:32:07 -0500 Subject: [PATCH 22/22] Update DBPool to load from file --- .../account/repository/AccountRepository.java | 2 +- .../core/antihack/AntiHackRepository.java | 2 +- .../benefit/BenefitManagerRepository.java | 2 +- .../mineplex/core/bonuses/BonusManager.java | 2 +- .../core/bonuses/BonusRepository.java | 4 +- .../botspam/repository/BotSpamRepository.java | 2 +- .../repository/CustomDataRepository.java | 2 +- .../src/mineplex/core/database/DBPool.java | 98 ++++++++++++++++++- .../core/database/RepositoryBase.java | 2 +- .../repository/DonationRepository.java | 2 +- .../src/mineplex/core/elo/EloRepository.java | 2 +- .../core/friend/data/FriendRepository.java | 2 +- .../core/giveaway/GiveawayRepository.java | 2 +- .../core/ignore/data/IgnoreRepository.java | 2 +- .../inventory/data/InventoryRepository.java | 2 +- .../leaderboard/StatEventsRepository.java | 2 +- .../src/mineplex/core/npc/NpcManager.java | 8 +- .../core/pet/repository/PetRepository.java | 2 +- .../mineplex/core/poll/PollRepository.java | 2 +- .../preferences/PreferencesRepository.java | 2 +- .../core/report/ReportRepository.java | 2 +- .../mineplex/core/spawn/SpawnRepository.java | 2 +- .../mineplex/core/stats/StatsRepository.java | 2 +- .../core/task/repository/TaskRepository.java | 2 +- .../TitanGiveawayRepository.java | 2 +- .../clans/core/repository/ClanRepository.java | 2 +- .../fields/repository/FieldRepository.java | 2 +- .../src/mineplex/hub/HubRepository.java | 10 +- .../src/mineplex/hub/mail/MailRepository.java | 2 +- .../mineplex/hub/queue/QueueRepository.java | 10 +- .../mineplex/votifier/VotifierManager.java | 2 +- .../TitanGiveawayRepository.java | 2 +- 32 files changed, 136 insertions(+), 48 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java index d8362e33b..d11b9a081 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java @@ -46,7 +46,7 @@ public class AccountRepository extends RepositoryBase public AccountRepository(JavaPlugin plugin, String webAddress) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); _webAddress = webAddress; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/antihack/AntiHackRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/antihack/AntiHackRepository.java index 1b7fb4b65..23a0694b0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/antihack/AntiHackRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/antihack/AntiHackRepository.java @@ -33,7 +33,7 @@ public class AntiHackRepository { PreparedStatement preparedStatement = null; - try (Connection connection = DBPool.STATS_MINEPLEX.getConnection()) + try (Connection connection = DBPool.getStats().getConnection()) { preparedStatement = connection.prepareStatement(UPDATE_PLAYER_OFFENSES); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/benefit/BenefitManagerRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/benefit/BenefitManagerRepository.java index 39fbfa530..eb5628130 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/benefit/BenefitManagerRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/benefit/BenefitManagerRepository.java @@ -19,7 +19,7 @@ public class BenefitManagerRepository extends RepositoryBase public BenefitManagerRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java index e5076f9b0..6c01d3719 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java @@ -789,7 +789,7 @@ public class BonusManager extends MiniClientPlugin implements I { try { - final int newTickets = DSL.using(DBPool.ACCOUNT, SQLDialect.MYSQL).update(Tables.bonus).set(Tables.bonus.tickets, Tables.bonus.tickets.add(tickets)). + final int newTickets = DSL.using(DBPool.getAccount(), SQLDialect.MYSQL).update(Tables.bonus).set(Tables.bonus.tickets, Tables.bonus.tickets.add(tickets)). where(Tables.bonus.accountId.eq(accountId)).returning(Tables.bonus.tickets).fetchOne().getTickets(); runSync(new Runnable() { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusRepository.java index 0c4a1c6f5..2ce772e8c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusRepository.java @@ -36,7 +36,7 @@ public class BonusRepository extends RepositoryBase public BonusRepository(JavaPlugin plugin, BonusManager bonusManager, DonationManager donationManager) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); _manager = bonusManager; _donationManager = donationManager; } @@ -145,7 +145,7 @@ public class BonusRepository extends RepositoryBase { try { - DSLContext create = DSL.using(DBPool.ACCOUNT, SQLDialect.MYSQL); + DSLContext create = DSL.using(DBPool.getAccount(), SQLDialect.MYSQL); create.update(Tables.bonus).set(Tables.bonus.tickets, Tables.bonus.tickets.add(tickets)). where(Tables.bonus.accountId.eq(accountId)).execute(); final int newTickets = create.select(Tables.bonus.tickets).from(Tables.bonus).where(Tables.bonus.accountId.eq(accountId)).fetchOne().value1(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/botspam/repository/BotSpamRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/botspam/repository/BotSpamRepository.java index d1460fb4a..3af3d0d4f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/botspam/repository/BotSpamRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/botspam/repository/BotSpamRepository.java @@ -24,7 +24,7 @@ public class BotSpamRepository extends RepositoryBase public BotSpamRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); } public ArrayList getSpamText() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/customdata/repository/CustomDataRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/customdata/repository/CustomDataRepository.java index c57e2a03f..51866e26f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/customdata/repository/CustomDataRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/customdata/repository/CustomDataRepository.java @@ -35,7 +35,7 @@ public class CustomDataRepository extends RepositoryBase public CustomDataRepository(JavaPlugin plugin, CoreClientManager clientManager, CustomDataManager customDataManager) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); _clientManager = clientManager; _customDataManager = customDataManager; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/database/DBPool.java b/Plugins/Mineplex.Core/src/mineplex/core/database/DBPool.java index 8400fa954..06495ff54 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/database/DBPool.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/database/DBPool.java @@ -1,16 +1,26 @@ package mineplex.core.database; import javax.sql.DataSource; + +import java.io.File; +import java.nio.charset.Charset; +import java.nio.file.Files; import java.sql.Connection; +import java.util.ArrayList; +import java.util.List; import org.apache.commons.dbcp2.BasicDataSource; +import mineplex.serverdata.redis.RedisConfig; +import mineplex.serverdata.servers.ConnectionData; +import mineplex.serverdata.servers.ConnectionData.ConnectionType; + public final class DBPool { - public static final DataSource ACCOUNT = openDataSource("jdbc:mysql://db.mineplex.com/Account", "MilitaryPolice", "CUPr6Wuw2Rus$qap"); - public static final DataSource QUEUE = openDataSource("jdbc:mysql://db.mineplex.com/Queue", "MilitaryPolice", "CUPr6Wuw2Rus$qap"); - public static final DataSource MINEPLEX = openDataSource("jdbc:mysql://db.mineplex.com:3306/Mineplex", "MilitaryPolice", "CUPr6Wuw2Rus$qap"); - public static final DataSource STATS_MINEPLEX = openDataSource("jdbc:mysql://sqlstats.mineplex.com:3306/Mineplex", "root", "tAbechAk3wR7tuTh"); + private static DataSource ACCOUNT; + private static DataSource QUEUE; + private static DataSource MINEPLEX; + private static DataSource STATS_MINEPLEX; private static DataSource openDataSource(String url, String username, String password) { @@ -30,8 +40,86 @@ public final class DBPool return source; } - private DBPool() + public static DataSource getAccount() { + if (ACCOUNT == null) + loadDataSources(); + return ACCOUNT; + } + + public static DataSource getQueue() + { + if (QUEUE == null) + loadDataSources(); + + return QUEUE; + } + + public static DataSource getMineplex() + { + if (MINEPLEX == null) + loadDataSources(); + + return MINEPLEX; + } + + public static DataSource getStats() + { + if (STATS_MINEPLEX == null) + loadDataSources(); + + return STATS_MINEPLEX; + } + + private static void loadDataSources() + { + try + { + File configFile = new File("database-config.dat"); + + if (configFile.exists()) + { + List lines = Files.readAllLines(configFile.toPath(), Charset.defaultCharset()); + + for (String line : lines) + { + deserializeConnection(line); + } + } + else + { + System.out.println("database-config.dat not found at " + configFile.toPath().toString()); + } + } + catch (Exception exception) + { + exception.printStackTrace(); + System.out.println("---Unable To Parse DBPOOL Configuration File---"); + } + } + + private static void deserializeConnection(String line) + { + String[] args = line.split(" "); + + if (args.length == 4) + { + String dbSource = args[0]; + String dbHost = args[1]; + String userName = args[2]; + String password = args[3]; + + System.out.println(dbSource + " " + dbHost + " " + userName + " " + password); + + if (dbSource.toUpperCase().equalsIgnoreCase("ACCOUNT")) + ACCOUNT = openDataSource("jdbc:mysql://" + dbHost, userName, password); + else if (dbSource.toUpperCase().equalsIgnoreCase("QUEUE")) + QUEUE = openDataSource("jdbc:mysql://" + dbHost, userName, password); + else if (dbSource.toUpperCase().equalsIgnoreCase("MINEPLEX")) + MINEPLEX = openDataSource("jdbc:mysql://" + dbHost, userName, password); + else if (dbSource.toUpperCase().equalsIgnoreCase("STATS")) + STATS_MINEPLEX = openDataSource("jdbc:mysql://" + dbHost, userName, password); + } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/database/RepositoryBase.java b/Plugins/Mineplex.Core/src/mineplex/core/database/RepositoryBase.java index f96d1b04d..55acc83ed 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/database/RepositoryBase.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/database/RepositoryBase.java @@ -68,7 +68,7 @@ public abstract class RepositoryBase implements Listener protected DSLContext jooq() { - return DSL.using(DBPool.ACCOUNT, SQLDialect.MYSQL); + return DSL.using(DBPool.getAccount(), SQLDialect.MYSQL); } /** diff --git a/Plugins/Mineplex.Core/src/mineplex/core/donation/repository/DonationRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/donation/repository/DonationRepository.java index 910f03c63..98999dbf3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/donation/repository/DonationRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/donation/repository/DonationRepository.java @@ -37,7 +37,7 @@ public class DonationRepository extends RepositoryBase public DonationRepository(JavaPlugin plugin, String webAddress) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); _webAddress = webAddress; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/elo/EloRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/elo/EloRepository.java index 54503474f..2304a75c0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/elo/EloRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/elo/EloRepository.java @@ -17,7 +17,7 @@ public class EloRepository extends RepositoryBase public EloRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); initialize(); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/friend/data/FriendRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/friend/data/FriendRepository.java index c7ab1ae90..c09fe1703 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/friend/data/FriendRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/friend/data/FriendRepository.java @@ -37,7 +37,7 @@ public class FriendRepository extends RepositoryBase public FriendRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); _repository = new RedisDataRepository(ServerManager.getMasterConnection(), ServerManager.getSlaveConnection(), Region.currentRegion(), PlayerStatus.class, "playerStatus"); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/giveaway/GiveawayRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/giveaway/GiveawayRepository.java index c8cac2179..46844bd07 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/giveaway/GiveawayRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/giveaway/GiveawayRepository.java @@ -26,7 +26,7 @@ public class GiveawayRepository extends RepositoryBase public GiveawayRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); } public boolean canGiveaway(int accountId, String giveawayName, String cooldownName) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/ignore/data/IgnoreRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/ignore/data/IgnoreRepository.java index aad60e65c..14e1918c4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/ignore/data/IgnoreRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/ignore/data/IgnoreRepository.java @@ -17,7 +17,7 @@ public class IgnoreRepository extends RepositoryBase public IgnoreRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/inventory/data/InventoryRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/inventory/data/InventoryRepository.java index a21d6c9ec..018eb41e9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/inventory/data/InventoryRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/inventory/data/InventoryRepository.java @@ -29,7 +29,7 @@ public class InventoryRepository extends RepositoryBase public InventoryRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/leaderboard/StatEventsRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/leaderboard/StatEventsRepository.java index 1679bc36d..5f0659c03 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/leaderboard/StatEventsRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/leaderboard/StatEventsRepository.java @@ -36,7 +36,7 @@ public class StatEventsRepository extends RepositoryBase */ public StatEventsRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java b/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java index 5e971bf50..1235a6301 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java @@ -268,7 +268,7 @@ public class NpcManager extends MiniPlugin public Entity addNpc(Player player, EntityType entityType, double radius, boolean adult, String name, String entityMeta) throws SQLException { - try (Connection connection = DBPool.ACCOUNT.getConnection()) + try (Connection connection = DBPool.getAccount().getConnection()) { String helmet = itemStackToYaml(player.getInventory().getHelmet()); String chestplate = itemStackToYaml(player.getInventory().getChestplate()); @@ -386,7 +386,7 @@ public class NpcManager extends MiniPlugin if (npc != null) { - try (Connection connection = DBPool.ACCOUNT.getConnection()) + try (Connection connection = DBPool.getAccount().getConnection()) { npc.getDatabaseRecord().attach(DSL.using(connection).configuration()); npc.getDatabaseRecord().delete(); @@ -493,7 +493,7 @@ public class NpcManager extends MiniPlugin { String serverType = getServerName(); - try (Connection connection = DBPool.ACCOUNT.getConnection()) + try (Connection connection = DBPool.getAccount().getConnection()) { Result result = DSL.using(connection) .selectFrom(Tables.npcs) @@ -519,7 +519,7 @@ public class NpcManager extends MiniPlugin { String serverType = getServerName(); - try (Connection connection = DBPool.ACCOUNT.getConnection()) + try (Connection connection = DBPool.getAccount().getConnection()) { DSL.using(connection) .delete(Tables.npcs) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/repository/PetRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/repository/PetRepository.java index a79065f4c..40c2d2e1c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/repository/PetRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/repository/PetRepository.java @@ -22,7 +22,7 @@ public class PetRepository extends RepositoryBase public PetRepository(JavaPlugin plugin, String webAddress) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); _webAddress = webAddress; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/poll/PollRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/poll/PollRepository.java index 588d3d549..9628a5c93 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/poll/PollRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/poll/PollRepository.java @@ -29,7 +29,7 @@ public class PollRepository extends RepositoryBase public PollRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/preferences/PreferencesRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/preferences/PreferencesRepository.java index eca4dd35f..3c90a2cce 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/preferences/PreferencesRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/preferences/PreferencesRepository.java @@ -28,7 +28,7 @@ public class PreferencesRepository extends RepositoryBase public PreferencesRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/report/ReportRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/report/ReportRepository.java index cbae2678c..7b550e058 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/report/ReportRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/report/ReportRepository.java @@ -41,7 +41,7 @@ This will be used to determine if staff are handling public ReportRepository(JavaPlugin plugin, String connectionString) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/spawn/SpawnRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/spawn/SpawnRepository.java index eb85bae9d..c6f4191a5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/spawn/SpawnRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/spawn/SpawnRepository.java @@ -23,7 +23,7 @@ public class SpawnRepository extends RepositoryBase public SpawnRepository(JavaPlugin plugin, String serverName) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); _serverName = serverName; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/stats/StatsRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/stats/StatsRepository.java index d32b5fee3..12deca990 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/stats/StatsRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/stats/StatsRepository.java @@ -32,7 +32,7 @@ public class StatsRepository extends RepositoryBase public StatsRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/task/repository/TaskRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/task/repository/TaskRepository.java index 95a427d11..51dfe5726 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/task/repository/TaskRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/task/repository/TaskRepository.java @@ -24,7 +24,7 @@ public class TaskRepository extends RepositoryBase public TaskRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/TitanGiveawayRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/TitanGiveawayRepository.java index 4eb95a46d..b6d29c68b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/TitanGiveawayRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/TitanGiveawayRepository.java @@ -20,7 +20,7 @@ public class TitanGiveawayRepository extends RepositoryBase public TitanGiveawayRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); _titanCount = 0; } diff --git a/Plugins/Mineplex.Game.Clans.Core/src/mineplex/game/clans/core/repository/ClanRepository.java b/Plugins/Mineplex.Game.Clans.Core/src/mineplex/game/clans/core/repository/ClanRepository.java index 037593a54..70f9d082b 100644 --- a/Plugins/Mineplex.Game.Clans.Core/src/mineplex/game/clans/core/repository/ClanRepository.java +++ b/Plugins/Mineplex.Game.Clans.Core/src/mineplex/game/clans/core/repository/ClanRepository.java @@ -86,7 +86,7 @@ public class ClanRepository extends RepositoryBase public ClanRepository(JavaPlugin plugin, String serverName, boolean isClansServer) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); _serverName = serverName; _serverId = -1; diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/fields/repository/FieldRepository.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/fields/repository/FieldRepository.java index cd45b22bc..2f36fd067 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/fields/repository/FieldRepository.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/fields/repository/FieldRepository.java @@ -34,7 +34,7 @@ public class FieldRepository extends RepositoryBase public FieldRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); } public List getFieldBlocks(String server) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/HubRepository.java b/Plugins/Mineplex.Hub/src/mineplex/hub/HubRepository.java index 5c09e8423..cf07e0012 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/HubRepository.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/HubRepository.java @@ -41,7 +41,7 @@ public class HubRepository PreparedStatement preparedStatement = null; HashMap newsEntries = new HashMap(); - try (Connection connection = DBPool.MINEPLEX.getConnection()) + try (Connection connection = DBPool.getMineplex().getConnection()) { preparedStatement = connection.prepareStatement(RETRIEVE_NEWS_ENTRIES); @@ -91,7 +91,7 @@ public class HubRepository int result = 0; PreparedStatement preparedStatement = null; - try (Connection connection = DBPool.MINEPLEX.getConnection()) + try (Connection connection = DBPool.getMineplex().getConnection()) { preparedStatement = connection.prepareStatement(SET_NEWS_ENTRY); preparedStatement.setString(1, newsEntry); @@ -127,7 +127,7 @@ public class HubRepository ResultSet resultSet = null; PreparedStatement preparedStatement = null; - try (Connection connection = DBPool.MINEPLEX.getConnection()) + try (Connection connection = DBPool.getMineplex().getConnection()) { preparedStatement = connection.prepareStatement(RETRIEVE_MAX_NEWS_POSITION); resultSet = preparedStatement.executeQuery(); @@ -165,7 +165,7 @@ public class HubRepository int maxPos = retrieveMaxNewsPosition(); PreparedStatement preparedStatement = null; - try (Connection connection = DBPool.MINEPLEX.getConnection()) + try (Connection connection = DBPool.getMineplex().getConnection()) { preparedStatement = connection.prepareStatement(ADD_NEWS_ENTRY); preparedStatement.setString(1, newsEntry); @@ -201,7 +201,7 @@ public class HubRepository int maxPos = retrieveMaxNewsPosition(); PreparedStatement preparedStatement = null; - try (Connection connection = DBPool.MINEPLEX.getConnection()) + try (Connection connection = DBPool.getMineplex().getConnection()) { //preparedStatement = connection.prepareStatement(DELETE_RECALC_NEWS_ENTRY); preparedStatement = connection.prepareStatement(DELETE_NEWS_ENTRY); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/mail/MailRepository.java b/Plugins/Mineplex.Hub/src/mineplex/hub/mail/MailRepository.java index af43ab9f5..ae09e592f 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/mail/MailRepository.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/mail/MailRepository.java @@ -21,7 +21,7 @@ public class MailRepository extends RepositoryBase public MailRepository(JavaPlugin plugin, MailManager manager) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); _manager = manager; } diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/queue/QueueRepository.java b/Plugins/Mineplex.Hub/src/mineplex/hub/queue/QueueRepository.java index 0dfdf8640..d0b0d0a91 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/queue/QueueRepository.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/queue/QueueRepository.java @@ -36,7 +36,7 @@ public class QueueRepository { PreparedStatement preparedStatement = null; - try (Connection connection = DBPool.QUEUE.getConnection()) + try (Connection connection = DBPool.getQueue().getConnection()) { preparedStatement = connection.prepareStatement(DELETE_QUEUE_RECORD); @@ -71,7 +71,7 @@ public class QueueRepository { PreparedStatement preparedStatement = null; - try (Connection connection = DBPool.QUEUE.getConnection()) + try (Connection connection = DBPool.getQueue().getConnection()) { preparedStatement = connection.prepareStatement(SAVE_STATE_VALUE); preparedStatement.setString(1, matchStatus.State); @@ -108,7 +108,7 @@ public class QueueRepository PreparedStatement preparedStatement = null; PlayerMatchStatus matchStatus = new PlayerMatchStatus(); - try (Connection connection = DBPool.QUEUE.getConnection()) + try (Connection connection = DBPool.getQueue().getConnection()) { preparedStatement = connection.prepareStatement(INSERT_ACCOUNT, Statement.RETURN_GENERATED_KEYS); preparedStatement.setString(1, playerList); @@ -165,7 +165,7 @@ public class QueueRepository PreparedStatement preparedStatement = null; PlayerMatchStatus matchStatus = null; - try (Connection connection = DBPool.QUEUE.getConnection()) + try (Connection connection = DBPool.getQueue().getConnection()) { preparedStatement = connection.prepareStatement(RETRIEVE_MATCH_STATUS); preparedStatement.setInt(1, id); @@ -220,7 +220,7 @@ public class QueueRepository ResultSet resultSet = null; PreparedStatement preparedStatement = null; - try (Connection connection = DBPool.QUEUE.getConnection()) + try (Connection connection = DBPool.getQueue().getConnection()) { preparedStatement = connection.prepareStatement(RETRIEVE_OTHER_MATCH_STATUS); preparedStatement.setInt(1, matchStatus.AssignedMatch); diff --git a/Plugins/Mineplex.Votifier/src/mineplex/votifier/VotifierManager.java b/Plugins/Mineplex.Votifier/src/mineplex/votifier/VotifierManager.java index 19a3c37b3..4817371cb 100644 --- a/Plugins/Mineplex.Votifier/src/mineplex/votifier/VotifierManager.java +++ b/Plugins/Mineplex.Votifier/src/mineplex/votifier/VotifierManager.java @@ -179,7 +179,7 @@ public class VotifierManager extends MiniPlugin private void awardBonus(final String playerName, final UUID uuid, final Callback onComplete) { - DSLContext create = DSL.using(DBPool.ACCOUNT, SQLDialect.MYSQL); + DSLContext create = DSL.using(DBPool.getAccount(), SQLDialect.MYSQL); Record1 idRecord = create.select(Tables.accounts.id).from(Tables.accounts).where(Tables.accounts.uuid.eq(uuid.toString())).fetchOne(); if (idRecord != null) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/titangiveaway/TitanGiveawayRepository.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/titangiveaway/TitanGiveawayRepository.java index 0ace10a33..3585b3586 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/titangiveaway/TitanGiveawayRepository.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/titangiveaway/TitanGiveawayRepository.java @@ -15,7 +15,7 @@ public class TitanGiveawayRepository extends RepositoryBase public TitanGiveawayRepository(JavaPlugin plugin) { - super(plugin, DBPool.ACCOUNT); + super(plugin, DBPool.getAccount()); _titanGiveawayCount = 0; }