From c5818b1bb589c603b708002afae7e8a40aec82b8 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 6 Jul 2017 00:35:05 +0100 Subject: [PATCH] Update time! --- .../achievement/ui/page/AchievementPage.java | 2 +- .../playerdisguise/PlayerDisguiseManager.java | 32 +++++--- .../hub/server/ui/ServerGameMenu.java | 2 +- .../game/arcade/game/games/moba/Moba.java | 5 +- .../games/moba/general/MobaDamageManager.java | 28 +++++++ .../moba/kit/larissa/SkillAquaCannon.java | 4 +- .../arcade/game/games/moba/shop/MobaShop.java | 10 ++- .../moba/shop/warrior/MobaWarriorShop.java | 80 +++++++++---------- .../games/moba/structure/tower/Tower.java | 18 +++++ .../moba/structure/tower/TowerManager.java | 7 ++ .../games/moba/training/MobaTraining.java | 3 +- 11 files changed, 131 insertions(+), 60 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/achievement/ui/page/AchievementPage.java b/Plugins/Mineplex.Core/src/mineplex/core/achievement/ui/page/AchievementPage.java index 3915059e8..d68117cf7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/achievement/ui/page/AchievementPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/achievement/ui/page/AchievementPage.java @@ -31,7 +31,7 @@ import mineplex.core.stats.StatsManager; public class AchievementPage extends ShopPageBase { - private static int ACHIEVEMENT_MIDDLE_INDEX = 31; + private static final int ACHIEVEMENT_MIDDLE_INDEX = 31; private AchievementCategory _category; private StatsManager _statsManager; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseManager.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseManager.java index a650df7ec..06829a12d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseManager.java @@ -423,10 +423,26 @@ public class PlayerDisguiseManager extends MiniPlugin implements IPacketHandler DisguisePlayer disguise = _disguises.remove(caller.getUniqueId()); + undisguise(caller, disguise); + + _mapping.remove(disguise.getName().toLowerCase()); + + UtilPlayer.message(caller, F.main("Disguise", "You are no longer disguised!")); + getPluginManager().callEvent(new PlayerUndisguisedEvent(caller)); + removeDisguiseData(caller); + } + + public void undisguise(Player caller, DisguisePlayer disguise) + { GameProfile originalProfile = disguise.getOriginalProfile(); GameProfile currentProfile = ((CraftPlayer) caller).getProfile(); + boolean sameName = caller.getName().equals(currentProfile.getName()); + + if (!sameName) + { + require(ScoreboardManager.class).handlePlayerQuit(disguise.getName()); + } - require(ScoreboardManager.class).handlePlayerQuit(disguise.getName()); try { UtilGameProfile.changeName(currentProfile, originalProfile.getName()); @@ -447,7 +463,7 @@ public class PlayerDisguiseManager extends MiniPlugin implements IPacketHandler return; } - getDisguiseManager().undisguise(caller); + getDisguiseManager().undisguise(disguise); GameProfile disguisedProfile = disguise.getProfile(); @@ -458,14 +474,10 @@ public class PlayerDisguiseManager extends MiniPlugin implements IPacketHandler require(FriendManager.class).updatePlayerStatus(originalProfile.getId(), new PlayerStatus(originalProfile.getId(), originalProfile.getName(), _serverName)); getPreferencesManager().handlePlayerJoin(caller, true); - require(ScoreboardManager.class).handlePlayerJoin(disguise.getOriginalProfile().getName()); - - - _mapping.remove(disguise.getName().toLowerCase()); - - UtilPlayer.message(caller, F.main("Disguise", "You are no longer disguised!")); - getPluginManager().callEvent(new PlayerUndisguisedEvent(caller)); - removeDisguiseData(caller); + if (!sameName) + { + require(ScoreboardManager.class).handlePlayerJoin(disguise.getOriginalProfile().getName()); + } } public void disguise(Player caller, GameProfile requestedProfile) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java index 07e52532f..ea290f3c1 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java @@ -126,7 +126,7 @@ public class ServerGameMenu extends ShopPageBase add(13, Material.FEATHER, (byte) 0, C.cYellowB + "Skywars " + C.cGray + "Solo/Team Survival", new String[] { C.Reset + "", - C.Reset + "16 contenders fight to rule the skies!", + C.Reset + "12 contenders fight to rule the skies!", C.Reset + "Spawn on a sky island and build your path!", C.Reset + "Find weapons to take your enemies down!", C.Reset + "Up in the skies, death looming if you fall..", diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/Moba.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/Moba.java index f1db74bae..fad12392b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/Moba.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/Moba.java @@ -9,6 +9,7 @@ import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilServer; import mineplex.core.disguise.disguises.DisguiseBase; import mineplex.core.disguise.disguises.DisguisePlayer; +import mineplex.core.disguise.playerdisguise.PlayerDisguiseManager; import mineplex.core.leaderboard.Leaderboard; import mineplex.core.leaderboard.LeaderboardManager; import mineplex.core.leaderboard.LeaderboardRepository.LeaderboardSQLType; @@ -283,6 +284,8 @@ public class Moba extends TeamGame _listeners.clear(); _betaWhitelist.deregisterSelf(); + PlayerDisguiseManager playerDisguiseManager = Managers.require(PlayerDisguiseManager.class); + // Undisguise all players for (Player player : Bukkit.getOnlinePlayers()) { @@ -290,7 +293,7 @@ public class Moba extends TeamGame if (disguise != null && disguise instanceof DisguisePlayer) { - Manager.GetDisguise().undisguise(disguise); + playerDisguiseManager.undisguise(player, (DisguisePlayer) disguise); } } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/general/MobaDamageManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/general/MobaDamageManager.java index 7fa54255c..6a0cfccfc 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/general/MobaDamageManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/general/MobaDamageManager.java @@ -13,6 +13,8 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageEvent.DamageCause; +import org.bukkit.potion.PotionEffectType; public class MobaDamageManager implements Listener { @@ -97,4 +99,30 @@ public class MobaDamageManager implements Listener event.setKilledWord(word); } } + + @EventHandler + public void mageStrength(CustomDamageEvent event) + { + if (event.GetCause() != DamageCause.CUSTOM) + { + return; + } + + Player damager = event.GetDamagerPlayer(true); + + if (damager == null) + { + return; + } + + damager.getActivePotionEffects().forEach(effect -> + { + + if (effect.getType() == PotionEffectType.INCREASE_DAMAGE) + { + event.AddMod("Strength", effect.getAmplifier() * 2 + 1); + } + + }); + } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAquaCannon.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAquaCannon.java index e2f7b1c9f..c49d9fef5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAquaCannon.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAquaCannon.java @@ -29,7 +29,7 @@ public class SkillAquaCannon extends HeroSkill "Fires a beam of water that deals damage", "to the first enemy it comes in contact with." }; - private static final int DAMAGE = 6; + private static final int DAMAGE = 4; private static final ItemStack SKILL_ITEM = new ItemStack(Material.DIAMOND_HOE); public SkillAquaCannon(int slot) @@ -66,7 +66,7 @@ public class SkillAquaCannon extends HeroSkill continue; } - Manager.GetDamage().NewDamageEvent(entity, player, null, DamageCause.CUSTOM, DAMAGE, true, false, false, player.getName(), MobaConstants.BASIC_ATTACK); + Manager.GetDamage().NewDamageEvent(entity, player, null, DamageCause.CUSTOM, DAMAGE, false, false, false, player.getName(), MobaConstants.BASIC_ATTACK); break; } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/MobaShop.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/MobaShop.java index 55c40f2af..f0c15a324 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/MobaShop.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/MobaShop.java @@ -4,7 +4,6 @@ import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilEnt; -import mineplex.core.common.util.UtilInv; import mineplex.core.common.util.UtilPlayer; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; @@ -42,8 +41,6 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerInteractAtEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerItemConsumeEvent; -import org.bukkit.inventory.ItemStack; import java.util.ArrayList; import java.util.HashMap; @@ -95,6 +92,7 @@ public class MobaShop implements Listener villager.setCustomNameVisible(true); UtilEnt.vegetate(villager); UtilEnt.silence(villager, true); + UtilEnt.ghost(villager, true, false); UtilEnt.CreatureForceLook(villager, 0, UtilAlg.GetYaw(UtilAlg.getTrajectory(villager.getLocation(), _host.GetSpectatorLocation()))); ((CraftLivingEntity) villager).getHandle().k = false; @@ -226,6 +224,12 @@ public class MobaShop implements Listener } _host.GetKit(player).GiveItems(player); + + // If we aren't tracking purchases then after we give the item remove it. + if (!category.isTrackingPurchases()) + { + owned.remove(item); + } } public boolean ownsItem(Player player, MobaItem item) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/warrior/MobaWarriorShop.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/warrior/MobaWarriorShop.java index 2d0ca6f60..8c9118358 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/warrior/MobaWarriorShop.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/warrior/MobaWarriorShop.java @@ -44,21 +44,21 @@ public class MobaWarriorShop extends MobaShopMenu new MobaItem(new ItemBuilder(Material.IRON_HELMET) .setTitle(C.cGreenB + "Archer's Bane") .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1) - .build(), 400) + .build(), 100) .addEffects( new MobaHPRegenEffect(0.03) ), -// new MobaItem(new ItemBuilder(Material.IRON_HELMET) -// .setTitle(C.cYellowB + "Superior Archer's Bane") -// .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2) -// .build(), 750) -// .addEffects( -// new MobaHPRegenEffect(0.05) -// ), + new MobaItem(new ItemBuilder(Material.IRON_HELMET) + .setTitle(C.cYellowB + "Superior Archer's Bane") + .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2) + .build(), 300) + .addEffects( + new MobaHPRegenEffect(0.05) + ), new MobaItem(new ItemBuilder(Material.IRON_HELMET) .setTitle(C.cGreenB + "Brawler's Plate") .addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1) - .build(), 400) + .build(), 300) .addEffects( new MobaHPRegenEffect(0.03) ), @@ -71,7 +71,7 @@ public class MobaWarriorShop extends MobaShopMenu // ), new MobaItem(new ItemBuilder(Material.DIAMOND_HELMET) .setTitle(C.cDRedB + "Prince's Plate") - .build(), 2000) + .build(), 1200) .addEffects( new MobaHPRegenEffect(0.15) ) @@ -81,21 +81,21 @@ public class MobaWarriorShop extends MobaShopMenu new MobaItem(new ItemBuilder(Material.IRON_CHESTPLATE) .setTitle(C.cGreenB + "Archer's Bane") .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1) - .build(), 600) + .build(), 150) .addEffects( new MobaTotalHealthEffect(2) ), -// new MobaItem(new ItemBuilder(Material.IRON_CHESTPLATE) -// .setTitle(C.cYellowB + "Superior Archer's Bane") -// .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2) -// .build(), 1000) -// .addEffects( -// new MobaTotalHealthEffect(4) -// ), + new MobaItem(new ItemBuilder(Material.IRON_CHESTPLATE) + .setTitle(C.cYellowB + "Superior Archer's Bane") + .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2) + .build(), 400) + .addEffects( + new MobaTotalHealthEffect(4) + ), new MobaItem(new ItemBuilder(Material.IRON_CHESTPLATE) .setTitle(C.cGreenB + "Brawler's Plate") .addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1) - .build(), 600) + .build(), 400) .addEffects( new MobaTotalHealthEffect(2) ), @@ -108,7 +108,7 @@ public class MobaWarriorShop extends MobaShopMenu // ), new MobaItem(new ItemBuilder(Material.DIAMOND_CHESTPLATE) .setTitle(C.cDRedB + "Prince's Plate") - .build(), 2500) + .build(), 1500) .addEffects( new MobaTotalHealthEffect(4) ) @@ -118,21 +118,21 @@ public class MobaWarriorShop extends MobaShopMenu new MobaItem(new ItemBuilder(Material.IRON_LEGGINGS) .setTitle(C.cGreenB + "Archer's Bane") .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1) - .build(), 600) + .build(), 150) .addEffects( new MobaCDREffect(0.05) ), -// new MobaItem(new ItemBuilder(Material.IRON_LEGGINGS) -// .setTitle(C.cYellowB + "Superior Archer's Bane") -// .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2) -// .build(), 1000) -// .addEffects( -// new MobaCDREffect(0.07) -// ), + new MobaItem(new ItemBuilder(Material.IRON_LEGGINGS) + .setTitle(C.cYellowB + "Superior Archer's Bane") + .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2) + .build(), 400) + .addEffects( + new MobaCDREffect(0.07) + ), new MobaItem(new ItemBuilder(Material.IRON_LEGGINGS) .setTitle(C.cGreenB + "Brawler's Plate") .addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1) - .build(), 600) + .build(), 400) .addEffects( new MobaCDREffect(0.05) ), @@ -145,7 +145,7 @@ public class MobaWarriorShop extends MobaShopMenu // ), new MobaItem(new ItemBuilder(Material.DIAMOND_LEGGINGS) .setTitle(C.cDRedB + "Prince's Plate") - .build(), 2500) + .build(), 1500) .addEffects( new MobaCDREffect(0.1) ) @@ -155,21 +155,21 @@ public class MobaWarriorShop extends MobaShopMenu new MobaItem(new ItemBuilder(Material.IRON_BOOTS) .setTitle(C.cGreenB + "Archer's Bane") .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1) - .build(), 400) + .build(), 100) .addEffects( new MobaSpeedEffect(0.04) ), -// new MobaItem(new ItemBuilder(Material.IRON_BOOTS) -// .setTitle(C.cYellowB + "Superior Archer's Bane") -// .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2) -// .build(), 750) -// .addEffects( -// new MobaSpeedEffect(0.06) -// ), + new MobaItem(new ItemBuilder(Material.IRON_BOOTS) + .setTitle(C.cYellowB + "Superior Archer's Bane") + .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2) + .build(), 300) + .addEffects( + new MobaSpeedEffect(0.06) + ), new MobaItem(new ItemBuilder(Material.IRON_BOOTS) .setTitle(C.cGreenB + "Brawler's Plate") .addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1) - .build(), 400) + .build(), 300) .addEffects( new MobaSpeedEffect(0.04) ), @@ -182,7 +182,7 @@ public class MobaWarriorShop extends MobaShopMenu // ), new MobaItem(new ItemBuilder(Material.DIAMOND_BOOTS) .setTitle(C.cDRedB + "Prince's Plate") - .build(), 2000) + .build(), 1200) .addEffects( new MobaSpeedEffect(0.1) ) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/tower/Tower.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/tower/Tower.java index efb13fcb6..9d94785d4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/tower/Tower.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/tower/Tower.java @@ -135,6 +135,24 @@ public class Tower _host.getArcadeManager().GetDamage().NewDamageEvent(_target, null, null, DamageCause.CUSTOM, _damage++, false, true, false, "Tower", "Tower"); } + public void updateHealing() + { + if (_dead) + { + return; + } + + for (Player player : _team.GetPlayers(true)) + { + if (UtilPlayer.isSpectator(player) || UtilMath.offsetSquared(player, _crystal) > TARGET_RANGE_SQUARED) + { + continue; + } + + MobaUtil.heal(player, null, 2); + } + } + private void setLaserTarget(LivingEntity target) { if (target == null) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/tower/TowerManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/tower/TowerManager.java index eaa2f4626..b252f1477 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/tower/TowerManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/tower/TowerManager.java @@ -144,6 +144,13 @@ public class TowerManager implements Listener tower.updateDamage(); } } + else if (event.getType() != UpdateType.SLOW) + { + for (Tower tower : _towers) + { + tower.updateHealing(); + } + } } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/MobaTraining.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/MobaTraining.java index 439390385..aa21262a6 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/MobaTraining.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/MobaTraining.java @@ -364,6 +364,7 @@ public class MobaTraining extends Moba UtilEnt.vegetate(entity); UtilEnt.setFakeHead(entity, true); UtilEnt.silence(entity, true); + UtilEnt.ghost(entity, true, false); } CreatureAllowOverride = false; @@ -452,8 +453,6 @@ public class MobaTraining extends Moba // Reducing the wither's health to 10% gives a shield like effect. stand.setGravity(false); - UtilEnt.setBoundingBox(stand, 3, 5); - DisguiseWither disguise = new DisguiseWither(stand); disguise.setName(C.cAqua + "Blue's Wither"); disguise.setCustomNameVisible(true);