From 05e7183b65b1cb889196501aa5f5667260828868 Mon Sep 17 00:00:00 2001 From: Cheese Date: Fri, 27 Nov 2015 15:55:00 +1100 Subject: [PATCH 1/4] titan stuff update --- .../disguise/disguises/DisguiseGuardian.java | 2 +- .../core/gadget/gadgets/MorphTitan.java | 75 ++++++++++++++++++- .../src/mineplex/core/pet/PetFactory.java | 2 +- .../src/mineplex/core/pet/PetManager.java | 20 ++++- 4 files changed, 92 insertions(+), 7 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseGuardian.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseGuardian.java index 6a5f016f0..bd2ced0fd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseGuardian.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseGuardian.java @@ -13,7 +13,7 @@ public class DisguiseGuardian extends DisguiseCreature public void setTarget(int target) { - DataWatcher.watch(17, 0); + DataWatcher.watch(17, target); } public void setElder(boolean elder) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java index 9d19f5eca..9e550d110 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java @@ -3,18 +3,28 @@ package mineplex.core.gadget.gadgets; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; +import org.bukkit.entity.Zombie; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.util.Vector; import mineplex.core.common.Rank; import mineplex.core.common.util.C; +import mineplex.core.common.util.UtilAction; +import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilEvent; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilEvent.ActionType; +import mineplex.core.disguise.disguises.DisguiseBase; import mineplex.core.disguise.disguises.DisguiseGuardian; import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.types.MorphGadget; import mineplex.core.recharge.Recharge; +import mineplex.core.recharge.RechargedEvent; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; public class MorphTitan extends MorphGadget { @@ -38,6 +48,7 @@ public class MorphTitan extends MorphGadget DisguiseGuardian disguise = new DisguiseGuardian(player); disguise.setName(player.getName(), Manager.getClientManager().Get(player).GetRank()); disguise.setCustomNameVisible(true); + disguise.setElder(true); Manager.getDisguiseManager().disguise(disguise); } @@ -46,10 +57,13 @@ public class MorphTitan extends MorphGadget { this.RemoveArmor(player); Manager.getDisguiseManager().undisguise(player); + + player.setAllowFlight(false); + player.setFlying(false); } @EventHandler - public void Snort(PlayerInteractEvent event) + public void lazer(PlayerInteractEvent event) { Player player = event.getPlayer(); @@ -59,10 +73,65 @@ public class MorphTitan extends MorphGadget if (!UtilEvent.isAction(event, ActionType.L)) return; - if (!Recharge.Instance.use(player, GetName(), 2000, false, false)) + if (!Recharge.Instance.use(player, "Guarians Laser", 4000, true, false)) return; - player.getWorld().playSound(player.getLocation(), Sound.ZOMBIE_UNFECT, 1f, 0.25f); + DisguiseBase base = Manager.getDisguiseManager().getDisguise(player); + if (base == null || !(base instanceof DisguiseGuardian)) + return; + + DisguiseGuardian disguise = (DisguiseGuardian)base; + + for (Player other : UtilServer.getPlayers()) + if (!player.equals(other)) + { + System.out.println("set target to " + other.getEntityId()); + disguise.setTarget(other.getEntityId()); + break; + } + + Manager.getDisguiseManager().updateDisguise(disguise); + + //Fake Head + UtilEnt.setFakeHead(player, true); + Recharge.Instance.useForce(player, GetName() + " FakeHead", 2000); + } + + @EventHandler + public void lazerEnd(RechargedEvent event) + { + if (event.GetAbility().equals(GetName() + " FakeHead")) + { + UtilEnt.setFakeHead(event.GetPlayer(), false); + + DisguiseBase base = Manager.getDisguiseManager().getDisguise(event.GetPlayer()); + if (base == null || !(base instanceof DisguiseGuardian)) + return; + + DisguiseGuardian disguise = (DisguiseGuardian)base; + disguise.setTarget(0); + + Manager.getDisguiseManager().updateDisguise(disguise); + } + } + + @EventHandler + public void flight(UpdateEvent event) + { + if (event.getType() != UpdateType.TICK) + return; + + for (Player player : GetActive()) + { + if (UtilPlayer.isSpectator(player)) + continue; + + player.setAllowFlight(true); + player.setFlying(true); + + if (UtilEnt.isGrounded(player)) + UtilAction.velocity(player, new Vector(0,1,0)); + } } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetFactory.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetFactory.java index 6aa8d232b..56cab2079 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetFactory.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetFactory.java @@ -42,7 +42,7 @@ public class PetFactory _pets.put(EntityType.OCELOT, new Pet("Cat", EntityType.OCELOT, 6000)); _pets.put(EntityType.MUSHROOM_COW, new Pet("Mooshroom", EntityType.MUSHROOM_COW, 5000)); _pets.put(EntityType.WITHER, new Pet("Widder", EntityType.WITHER, -1)); - _pets.put(EntityType.GUARDIAN, new Pet("Guardian", EntityType.GUARDIAN, -1)); + _pets.put(EntityType.SKELETON, new Pet("Guardian", EntityType.SKELETON, -1)); } private void CreatePetExtras() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java index 65e182620..5b1c801ed 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java @@ -17,6 +17,7 @@ import mineplex.core.common.util.NautHashMap; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilServer; import mineplex.core.disguise.DisguiseManager; +import mineplex.core.disguise.disguises.DisguiseGuardian; import mineplex.core.disguise.disguises.DisguiseWither; import mineplex.core.donation.DonationManager; import mineplex.core.inventory.InventoryManager; @@ -164,8 +165,8 @@ public class PetManager extends MiniClientPlugin if (rank.has(Rank.TITAN)) { - if (!Get(p).GetPets().containsKey(EntityType.GUARDIAN)) - Get(p).GetPets().put(EntityType.GUARDIAN, "Guardian"); + if (!Get(p).GetPets().containsKey(EntityType.SKELETON)) + Get(p).GetPets().put(EntityType.SKELETON, "Guardian"); } } @@ -183,6 +184,7 @@ public class PetManager extends MiniClientPlugin Creature pet; + //Wither Spawn if (entityType == EntityType.WITHER) { _creatureModule.SetForce(true); @@ -204,6 +206,7 @@ public class PetManager extends MiniClientPlugin _creatureModule.SetForce(false); } + //Default Spawn else { pet = (Creature)_creatureModule.SpawnEntity(location, entityType); @@ -228,6 +231,19 @@ public class PetManager extends MiniClientPlugin ((Villager) pet).setBaby(); ((Villager) pet).setAgeLock(true); } + else if (pet instanceof Skeleton) + { + pet.getEquipment().setHelmet(new ItemStack(Material.PUMPKIN)); + + DisguiseGuardian disguise = new DisguiseGuardian(pet); + + if (Get(player).GetPets().get(entityType) != null && Get(player).GetPets().get(entityType).length() > 0) + { + disguise.setName(Get(player).GetPets().get(entityType)); + } + + _disguiseManager.disguise(disguise); + } _activePetOwners.put(player.getName(), pet); _failedAttempts.put(player.getName(), 0); From 2b047cdde8990f4526b88c610c48525bb3d4400a Mon Sep 17 00:00:00 2001 From: Cheese Date: Fri, 27 Nov 2015 16:46:48 +1100 Subject: [PATCH 2/4] more titan stuff --- .../mineplex/core/gadget/gadgets/ItemTNT.java | 2 +- .../core/gadget/gadgets/MorphTitan.java | 89 +++++++++++++++++-- .../src/mineplex/core/pet/PetManager.java | 8 ++ 3 files changed, 89 insertions(+), 10 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ItemTNT.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ItemTNT.java index 91ac32a93..863e9d79b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ItemTNT.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ItemTNT.java @@ -61,7 +61,7 @@ public class ItemTNT extends ItemGadget if (!_tnt.remove(event.getEntity())) return; - HashMap players = UtilPlayer.getInRadius(event.getLocation(), 10); + HashMap players = UtilPlayer.getInRadius(event.getLocation(), 8); for (Player player : players.keySet()) { if (Manager.collideEvent(this, player)) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java index 9e550d110..a28618db5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java @@ -1,7 +1,14 @@ package mineplex.core.gadget.gadgets; +import java.util.HashMap; +import java.util.HashSet; + +import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; +import org.bukkit.entity.ArmorStand; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.entity.Zombie; import org.bukkit.event.EventHandler; @@ -11,9 +18,14 @@ import org.bukkit.util.Vector; import mineplex.core.common.Rank; import mineplex.core.common.util.C; +import mineplex.core.common.util.MapUtil; import mineplex.core.common.util.UtilAction; +import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilEvent; +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.UtilEvent.ActionType; @@ -28,6 +40,8 @@ import mineplex.core.updater.event.UpdateEvent; public class MorphTitan extends MorphGadget { + private HashMap _targets = new HashMap(); + public MorphTitan(GadgetManager manager) { super(manager, "Elder Guardian Morph", new String[] @@ -60,6 +74,10 @@ public class MorphTitan extends MorphGadget player.setAllowFlight(false); player.setFlying(false); + + Entity ent = _targets.remove(player); + if (ent != null) + ent.remove(); } @EventHandler @@ -73,7 +91,7 @@ public class MorphTitan extends MorphGadget if (!UtilEvent.isAction(event, ActionType.L)) return; - if (!Recharge.Instance.use(player, "Guarians Laser", 4000, true, false)) + if (!Recharge.Instance.use(player, "Guardians Laser", 4000, true, false)) return; DisguiseBase base = Manager.getDisguiseManager().getDisguise(player); @@ -82,13 +100,20 @@ public class MorphTitan extends MorphGadget DisguiseGuardian disguise = (DisguiseGuardian)base; - for (Player other : UtilServer.getPlayers()) - if (!player.equals(other)) - { - System.out.println("set target to " + other.getEntityId()); - disguise.setTarget(other.getEntityId()); - break; - } + HashSet ignore = new HashSet(); + ignore.add(Material.AIR); + + Location loc = player.getTargetBlock(ignore, 64).getLocation().add(0.5, 0.5, 0.5); + + ArmorStand stand = loc.getWorld().spawn(loc, ArmorStand.class); + + stand.setVisible(false); + stand.setGhost(true); + stand.setGravity(false); + + _targets.put(player, stand); + + disguise.setTarget(stand.getEntityId()); Manager.getDisguiseManager().updateDisguise(disguise); @@ -104,6 +129,30 @@ public class MorphTitan extends MorphGadget { UtilEnt.setFakeHead(event.GetPlayer(), false); + //Explode + ArmorStand stand = _targets.remove(event.GetPlayer()); + if (stand != null) + { + UtilParticle.PlayParticle(ParticleType.HUGE_EXPLOSION, stand.getLocation(), 3f, 3f, 3f, 0, 32, ViewDist.MAX, UtilServer.getPlayers()); + + HashMap players = UtilEnt.getInRadius(stand.getLocation(), 12); + for (Entity ent : players.keySet()) + { + if (ent instanceof Player) + if (Manager.collideEvent(this, (Player)ent)) + continue; + + double mult = players.get(ent); + + //Knockback + UtilAction.velocity(ent, UtilAlg.getTrajectory(stand.getLocation(), ent.getLocation()), 4 * mult, false, 0, 1 + 3 * mult, 10, true); + } + + //Sound + stand.getWorld().playSound(stand.getLocation(), Sound.ZOMBIE_REMEDY, 6f, 0.75f); + } + + //Disguise DisguiseBase base = Manager.getDisguiseManager().getDisguise(event.GetPlayer()); if (base == null || !(base instanceof DisguiseGuardian)) return; @@ -111,10 +160,32 @@ public class MorphTitan extends MorphGadget DisguiseGuardian disguise = (DisguiseGuardian)base; disguise.setTarget(0); - Manager.getDisguiseManager().updateDisguise(disguise); + Manager.getDisguiseManager().updateDisguise(disguise); } } + @EventHandler + public void selfParticles(UpdateEvent event) + { + if (event.getType() != UpdateType.TICK) + return; + + for (Player player : _targets.keySet()) + { + Vector dir = UtilAlg.getTrajectory( player.getLocation().add(0, 1.5, 0), _targets.get(player).getLocation()); + dir.multiply(8); + + UtilParticle.PlayParticle(ParticleType.MAGIC_CRIT, + player.getLocation().add(0, 1.5, 0), + (float)dir.getX(), + (float)dir.getY(), + (float)dir.getZ(), + 1, 0, ViewDist.LONG, UtilServer.getPlayers()); + + player.playSound(player.getLocation(), Sound.FIREWORK_TWINKLE2, 2f, 2f); + } + } + @EventHandler public void flight(UpdateEvent event) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java index 5b1c801ed..5ddf55c63 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java @@ -14,6 +14,8 @@ import mineplex.core.account.event.ClientWebResponseEvent; import mineplex.core.blockrestore.BlockRestore; import mineplex.core.common.Rank; import mineplex.core.common.util.NautHashMap; +import mineplex.core.common.util.UtilAction; +import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilServer; import mineplex.core.disguise.DisguiseManager; @@ -359,6 +361,12 @@ public class PetManager extends MiniClientPlugin xDiff = Math.abs(petSpot.getBlockX() - ownerSpot.getBlockX()); yDiff = Math.abs(petSpot.getBlockY() - ownerSpot.getBlockY()); zDiff = Math.abs(petSpot.getBlockZ() - ownerSpot.getBlockZ()); + + //Guardian + if (pet instanceof Skeleton && Math.random() > 0.66 && UtilEnt.isGrounded(pet)) + { + UtilAction.velocity(pet, UtilAlg.getTrajectory(pet, owner), Math.random() * 0.3 + 0.3, false, 0, 0.3, 1, true); + } if ((xDiff + yDiff + zDiff) > 4) { From 77be81c216a820dc6b3fd10617e5263be1033466 Mon Sep 17 00:00:00 2001 From: Cheese Date: Fri, 27 Nov 2015 16:50:22 +1100 Subject: [PATCH 3/4] pet changes --- Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java index 5ddf55c63..d111bc6a7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java @@ -235,7 +235,8 @@ public class PetManager extends MiniClientPlugin } else if (pet instanceof Skeleton) { - pet.getEquipment().setHelmet(new ItemStack(Material.PUMPKIN)); + pet.getEquipment().setHelmet(new ItemStack(Material.PUMPKIN)); //stop burning + UtilEnt.silence(pet, true); DisguiseGuardian disguise = new DisguiseGuardian(pet); From f55b6761a89912161e90c4fb207f46318230bfff Mon Sep 17 00:00:00 2001 From: Cheese Date: Fri, 27 Nov 2015 19:14:35 +1100 Subject: [PATCH 4/4] disabled titan gadgets! --- .../src/mineplex/core/gadget/gadgets/MorphTitan.java | 8 ++++---- .../src/mineplex/core/mount/types/MountTitan.java | 8 ++++---- .../Mineplex.Core/src/mineplex/core/pet/PetManager.java | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java index a28618db5..eb50cc32e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java @@ -208,9 +208,9 @@ public class MorphTitan extends MorphGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) - { - Manager.getDonationManager().Get(event.getPlayer().getName()).AddUnknownSalesPackagesOwned(GetName()); - } +// if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) +// { +// Manager.getDonationManager().Get(event.getPlayer().getName()).AddUnknownSalesPackagesOwned(GetName()); +// } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitan.java index 186a5a3b4..4c95237c6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitan.java @@ -118,9 +118,9 @@ public class MountTitan extends Mount @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) - { - Manager.getDonationManager().Get(event.getPlayer().getName()).AddUnknownSalesPackagesOwned(GetName()); - } +// if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) +// { +// Manager.getDonationManager().Get(event.getPlayer().getName()).AddUnknownSalesPackagesOwned(GetName()); +// } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java index d111bc6a7..572919566 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java @@ -167,8 +167,8 @@ public class PetManager extends MiniClientPlugin if (rank.has(Rank.TITAN)) { - if (!Get(p).GetPets().containsKey(EntityType.SKELETON)) - Get(p).GetPets().put(EntityType.SKELETON, "Guardian"); +// if (!Get(p).GetPets().containsKey(EntityType.SKELETON)) +// Get(p).GetPets().put(EntityType.SKELETON, "Guardian"); } }