From b758254f4cf08624228748fa6f7212a74e2231b5 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 16 Jun 2017 18:54:23 +0100 Subject: [PATCH 01/56] Don't reset the player when an item is purchased --- .../src/nautilus/game/arcade/game/games/moba/shop/MobaShop.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 7300d7385..302a1d956 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 @@ -222,7 +222,7 @@ public class MobaShop implements Listener } } - _host.GetKit(player).ApplyKit(player); + _host.GetKit(player).GiveItems(player); } public boolean ownsItem(Player player, MobaItem item) From 04fafea3edc5623d314ac1136315fe04628bf82a Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 17 Jun 2017 12:40:08 +0100 Subject: [PATCH 02/56] Fixed a number of error causes --- .../arcade/game/games/moba/boss/MobaBoss.java | 2 +- .../game/games/moba/kit/common/DashSkill.java | 15 ++++++---- .../games/moba/kit/larissa/SkillAOEHeal.java | 7 +++++ .../arcade/game/games/moba/shop/MobaShop.java | 30 +++++++++++++++++++ .../effects/MobaBasicAttackDamageEffect.java | 2 +- 5 files changed, 49 insertions(+), 7 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/MobaBoss.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/MobaBoss.java index 086858719..0b2f7adc2 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/MobaBoss.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/MobaBoss.java @@ -85,7 +85,7 @@ public abstract class MobaBoss implements Listener @EventHandler public void updateMovement(UpdateEvent event) { - if (event.getType() != UpdateType.TICK || _entity == null || !_host.IsLive()) + if (event.getType() != UpdateType.TICK || !_host.IsLive()) { return; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/common/DashSkill.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/common/DashSkill.java index 7d8899320..217751e16 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/common/DashSkill.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/common/DashSkill.java @@ -20,7 +20,9 @@ import org.bukkit.event.player.PlayerToggleSneakEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; -import java.util.*; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; import java.util.Map.Entry; public class DashSkill extends HeroSkill @@ -127,10 +129,12 @@ public class DashSkill extends HeroSkill return; } - for (Entry entry : _startTime.entrySet()) + Iterator iterator = _startTime.keySet().iterator(); + + while (iterator.hasNext()) { - Player player = entry.getKey(); - long start = entry.getValue(); + Player player = iterator.next(); + long start = _startTime.get(player); if (UtilTime.elapsed(start, _velocityTime)) { @@ -138,7 +142,8 @@ public class DashSkill extends HeroSkill { UtilAction.zeroVelocity(player); } - _startTime.remove(player); + + iterator.remove(); postDash(player); } else diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAOEHeal.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAOEHeal.java index 93e4e5055..5f12478e4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAOEHeal.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAOEHeal.java @@ -113,6 +113,13 @@ public class SkillAOEHeal extends HeroSkill implements IThrown AOEHealData data = iterator.next(); Player owner = data.Owner; GameTeam team = Manager.GetGame().GetTeam(owner); + + if (team == null) + { + iterator.remove(); + continue; + } + DustSpellColor colour = new DustSpellColor(team.GetColor() == ChatColor.RED ? java.awt.Color.RED : java.awt.Color.CYAN); if (UtilTime.elapsed(data.Start, DURATION)) 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 302a1d956..f2707a965 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 @@ -342,6 +342,11 @@ public class MobaShop implements Listener Player player = event.getPlayer(); List items = _upgrades.get(player); + if (items == null) + { + return; + } + for (MobaItem item : items) { if (item.getEffects() == null) @@ -374,6 +379,11 @@ public class MobaShop implements Listener List items = _upgrades.get(damager); + if (items == null) + { + return; + } + for (MobaItem item : items) { if (item.getEffects() == null) @@ -409,6 +419,11 @@ public class MobaShop implements Listener List items = _upgrades.get(killer); + if (items == null) + { + return; + } + for (MobaItem item : items) { if (item.getEffects() == null) @@ -429,6 +444,11 @@ public class MobaShop implements Listener Player player = event.getPlayer(); List items = _upgrades.get(player); + if (items == null) + { + return; + } + for (MobaItem item : items) { if (item.getEffects() == null) @@ -453,6 +473,11 @@ public class MobaShop implements Listener List items = _upgrades.get(event.getSource()); + if (items == null) + { + return; + } + for (MobaItem item : items) { if (item.getEffects() == null) @@ -473,6 +498,11 @@ public class MobaShop implements Listener Player player = event.GetPlayer(); List items = _upgrades.get(player); + if (items == null) + { + return; + } + for (MobaItem item : items) { if (item.getEffects() == null) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaBasicAttackDamageEffect.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaBasicAttackDamageEffect.java index 3f19d483c..d8e5221ca 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaBasicAttackDamageEffect.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaBasicAttackDamageEffect.java @@ -20,7 +20,7 @@ public class MobaBasicAttackDamageEffect extends MobaItemEffect @Override protected void onDamage(CustomDamageEvent event) { - if (!event.GetReason().contains(MobaConstants.BASIC_ATTACK)) + if (event.GetReason() == null || !event.GetReason().contains(MobaConstants.BASIC_ATTACK)) { return; } From 9c5565ac3bf5d2c26fb305635d0ed03bce795cc1 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 17 Jun 2017 12:45:15 +0100 Subject: [PATCH 03/56] Remove recalling as it is unused --- .../game/arcade/game/games/moba/Moba.java | 2 - .../arcade/game/games/moba/kit/HeroKit.java | 10 +- .../arcade/game/games/moba/recall/Recall.java | 153 ------------------ .../game/games/moba/recall/RecallSession.java | 19 --- 4 files changed, 2 insertions(+), 182 deletions(-) delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/recall/Recall.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/recall/RecallSession.java 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 3850dcc77..fa549da2e 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 @@ -46,7 +46,6 @@ import nautilus.game.arcade.game.games.moba.kit.rowena.HeroRowena; import nautilus.game.arcade.game.games.moba.minion.MinionManager; import nautilus.game.arcade.game.games.moba.prepare.PrepareManager; import nautilus.game.arcade.game.games.moba.prepare.PrepareSelection; -import nautilus.game.arcade.game.games.moba.recall.Recall; import nautilus.game.arcade.game.games.moba.shop.MobaShop; import nautilus.game.arcade.game.games.moba.structure.point.CapturePointManager; import nautilus.game.arcade.game.games.moba.structure.tower.TowerManager; @@ -138,7 +137,6 @@ public class Moba extends TeamGame registerManager(new HPManager(this)); registerManager(new MobaDamageManager(this)); registerManager(new MobaFountain(this)); - registerManager(new Recall(this)); // Pregame managers registerManager(new PrepareManager(this)); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java index 0fbecfe73..1e4aaf392 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java @@ -3,7 +3,6 @@ package nautilus.game.arcade.game.games.moba.kit; import com.mojang.authlib.GameProfile; import mineplex.core.common.skin.SkinData; import mineplex.core.common.util.C; -import mineplex.core.common.util.F; import mineplex.core.common.util.UtilGear; import mineplex.core.common.util.UtilItem; import mineplex.core.common.util.UtilPlayer; @@ -41,11 +40,7 @@ public class HeroKit extends Kit private int _maxAmmo; private SkinData _skin; - private static final int RECALL_SLOT = 8; - private static final ItemStack RECALL_ITEM = new ItemBuilder(Material.BED) - .setTitle(C.cGreenB + "Recall to your Base") - .addLore("Clicking this item will teleport you back to your", "base after " + F.time("5") + " seconds.", "Taking damage or moving will cancel", "your teleport.") - .build(); + private static final int SHOP_SLOT = 8; private static final ItemStack SHOP_ITEM = new ItemBuilder(Material.GOLD_INGOT) .setTitle(C.cGold + "Open Gold Upgrades") .addLore("Click to open the Gold Upgrades", "shop while you are respawning.") @@ -173,8 +168,7 @@ public class HeroKit extends Kit // Give standard items inventory.setItem(AMMO_SLOT, _ammo); - //inventory.setItem(RECALL_SLOT, RECALL_ITEM); - inventory.setItem(RECALL_SLOT, SHOP_ITEM); + inventory.setItem(SHOP_SLOT, SHOP_ITEM); Moba game = (Moba) Manager.GetGame(); List items = game.getShop().getOwnedItems(player); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/recall/Recall.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/recall/Recall.java deleted file mode 100644 index 2725ecf1f..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/recall/Recall.java +++ /dev/null @@ -1,153 +0,0 @@ -package nautilus.game.arcade.game.games.moba.recall; - -import mineplex.core.common.util.*; -import mineplex.core.common.util.UtilEvent.ActionType; -import mineplex.core.common.util.UtilParticle.ParticleType; -import mineplex.core.common.util.UtilParticle.ViewDist; -import mineplex.core.recharge.Recharge; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; -import mineplex.minecraft.game.core.damage.CustomDamageEvent; -import nautilus.game.arcade.game.games.moba.Moba; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.inventory.ItemStack; - -import java.util.HashSet; -import java.util.Set; - -public class Recall implements Listener -{ - - private static final int RECALL_TIME = 5000; - private static final double PARTICLE_HEIGHT = 2.5; - private static final double PARTICLE_RADIUS = 1.5; - - private final Moba _host; - - private final Set _sessions; - - public Recall(Moba host) - { - _host = host; - - _sessions = new HashSet<>(); - } - - @EventHandler - public void interactBed(PlayerInteractEvent event) - { - if (event.isCancelled()) - { - return; - } - - if (!UtilEvent.isAction(event, ActionType.R)) - { - return; - } - - Player player = event.getPlayer(); - ItemStack itemStack = player.getItemInHand(); - - if (itemStack == null || itemStack.getType() != Material.BED || getSession(player) != null) - { - return; - } - - if (Recharge.Instance.use(player, "Recall", RECALL_TIME, false, true)) - { - _sessions.add(new RecallSession(player)); - } - } - - @EventHandler - public void update(UpdateEvent event) - { - if (event.getType() != UpdateType.FASTER) - { - return; - } - - long now = System.currentTimeMillis(); - - for (Player player : _host.GetPlayers(true)) - { - RecallSession session = getSession(player); - - if (session == null) - { - continue; - } - - if (UtilTime.elapsed(session.Start, RECALL_TIME)) - { - _host.GetTeam(player).SpawnTeleport(player); - removeSession(player, null); - } - else if (UtilMath.offsetSquared(player.getLocation(), session.Location) > 4) - { - removeSession(player, "You moved!"); - } - else - { - Location location = session.Location.clone(); - double height = (double) (now - session.Start) / (double) RECALL_TIME; - - for (double theta = 0; theta < 2 * Math.PI; theta += Math.PI / 10) - { - double x = PARTICLE_RADIUS * Math.sin(theta); - double z = PARTICLE_RADIUS * Math.cos(theta); - - for (double y = 0.25; y < height * PARTICLE_HEIGHT; y += 0.5) - { - location.add(x, y, z); - - UtilParticle.PlayParticleToAll(ParticleType.HAPPY_VILLAGER, location, 0, 0, 0, 0.1F, 1, ViewDist.LONG); - - location.subtract(x, y, z); - } - } - } - } - } - - @EventHandler - public void damage(CustomDamageEvent event) - { - if (event.GetDamageePlayer() == null) - { - return; - } - - removeSession(event.GetDamageePlayer(), "You took damage!"); - } - - private void removeSession(Player player, String reason) - { - boolean had = _sessions.removeIf(session -> session.Player.equals(player)); - - if (had && reason != null) - { - player.sendMessage(F.main("Game", reason + " You recall has been cancelled")); - } - } - - private RecallSession getSession(Player player) - { - for (RecallSession session : _sessions) - { - if (session.Player.equals(player)) - { - return session; - } - } - - return null; - } -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/recall/RecallSession.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/recall/RecallSession.java deleted file mode 100644 index 0abca7401..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/recall/RecallSession.java +++ /dev/null @@ -1,19 +0,0 @@ -package nautilus.game.arcade.game.games.moba.recall; - -import org.bukkit.Location; -import org.bukkit.entity.Player; - -class RecallSession -{ - - public Player Player; - public long Start; - public Location Location; - - public RecallSession(Player player) - { - Player = player; - Start = System.currentTimeMillis(); - Location = player.getLocation(); - } -} From 51460475dea3bc5f6f31345abebef1644cf936ef Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 17 Jun 2017 12:47:28 +0100 Subject: [PATCH 04/56] Change the Shop Item description --- .../src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java index 1e4aaf392..abde5d9c1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java @@ -43,7 +43,7 @@ public class HeroKit extends Kit private static final int SHOP_SLOT = 8; private static final ItemStack SHOP_ITEM = new ItemBuilder(Material.GOLD_INGOT) .setTitle(C.cGold + "Open Gold Upgrades") - .addLore("Click to open the Gold Upgrades", "shop while you are respawning.") + .addLore("Click to open the Gold Upgrades Shop") .build(); private boolean _visible = true; From db98aa01c8cc17e8859b63008a91ba90f4be95fd Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 19 Jun 2017 17:10:06 +0100 Subject: [PATCH 05/56] Training game base --- .../src/mineplex/core/game/GameDisplay.java | 3 +- .../src/nautilus/game/arcade/GameType.java | 2 + .../game/arcade/game/games/moba/Moba.java | 52 ++++---- .../games/moba/boss/wither/WitherBoss.java | 7 ++ .../games/moba/kit/larissa/SkillAOEHeal.java | 7 ++ .../games/moba/training/MobaTraining.java | 115 ++++++++++++++++++ .../game/modules/TrainingGameModule.java | 9 +- 7 files changed, 165 insertions(+), 30 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/MobaTraining.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/game/GameDisplay.java b/Plugins/Mineplex.Core/src/mineplex/core/game/GameDisplay.java index 8b7ec8606..381b5069b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/game/GameDisplay.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/game/GameDisplay.java @@ -104,7 +104,8 @@ public enum GameDisplay AlienInvasion("Alien Invasion", Material.ENDER_STONE, (byte) 0, GameCategory.EVENT, 69, false), - MOBA("Heroes of GWEN", Material.SKULL_ITEM, (byte)1, GameCategory.CLASSICS, 70, true), + MOBA("Heroes of GWEN", Material.PRISMARINE, (byte)0, GameCategory.CLASSICS, 70, false), + MOBATraining("Heroes of GWEN Training", Material.PRISMARINE, (byte)0, GameCategory.CLASSICS, 70, false), GemHunters("Gem Hunters", Material.EMERALD, (byte) 0, GameCategory.SURVIVAL, 71, false), 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 ac4f37774..fb504456a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameType.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameType.java @@ -63,6 +63,7 @@ import nautilus.game.arcade.game.games.minestrike.Minestrike; import nautilus.game.arcade.game.games.minestrike.modes.SuperPaintstrike; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.moba.Moba; +import nautilus.game.arcade.game.games.moba.training.MobaTraining; import nautilus.game.arcade.game.games.monsterleague.MonsterLeague; import nautilus.game.arcade.game.games.monstermaze.MonsterMaze; import nautilus.game.arcade.game.games.oldmineware.OldMineWare; @@ -233,6 +234,7 @@ public enum GameType AlienInvasion(AlienInvasion.class, GameDisplay.AlienInvasion), MOBA(Moba.class, GameDisplay.MOBA), + MOBATraining(MobaTraining.class, GameDisplay.MOBA), Event(EventGame.class, GameDisplay.Event, new GameType[]{ GameType.BaconBrawl, GameType.Barbarians, GameType.Bridge, GameType.Build, GameType.Build, 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 fa549da2e..2024cc3d7 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 @@ -91,18 +91,23 @@ public class Moba extends TeamGame private final Set _listeners = new HashSet<>(); - private final MobaShop _shop; - private final GoldManager _goldManager; - private final BossManager _boss; - private final TowerManager _tower; - private final CapturePointManager _capturePoint; - private final ArrowKBManager _arrowKb; - private final BuffManager _buffs; + protected final MobaShop _shop; + protected final GoldManager _goldManager; + protected final BossManager _boss; + protected final TowerManager _tower; + protected final CapturePointManager _capturePoint; + protected final ArrowKBManager _arrowKb; + protected final BuffManager _buffs; private BetaWhitelist _betaWhitelist; public Moba(ArcadeManager manager) { - super(manager, GameType.MOBA, new Kit[]{new KitPlayer(manager)}, DESCRIPTION); + this(manager, GameType.MOBA); + } + + public Moba(ArcadeManager manager, GameType gameType) + { + super(manager, gameType, new Kit[]{new KitPlayer(manager)}, DESCRIPTION); _kits = new HeroKit[]{ new HeroHattori(Manager), @@ -527,6 +532,17 @@ public class Moba extends TeamGame _listeners.forEach(UtilServer::Unregister); _listeners.clear(); _betaWhitelist.deregisterSelf(); + + // Undisguise all players + for (Player player : Bukkit.getOnlinePlayers()) + { + DisguiseBase disguise = Manager.GetDisguise().getActiveDisguise(player); + + if (disguise != null && disguise instanceof DisguisePlayer) + { + Manager.GetDisguise().undisguise(disguise); + } + } } @Override @@ -565,26 +581,6 @@ public class Moba extends TeamGame } } - // Undisguise everyone upon game end - @EventHandler - public void end(GameStateChangeEvent event) - { - if (event.GetState() != GameState.End && event.GetState() != GameState.Dead) - { - return; - } - - for (Player player : Bukkit.getOnlinePlayers()) - { - DisguiseBase disguise = Manager.GetDisguise().getActiveDisguise(player); - - if (disguise != null && disguise instanceof DisguisePlayer) - { - Manager.GetDisguise().undisguise(disguise); - } - } - } - public Map getLocationStartsWith(String s) { Map map = new HashMap<>(); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java index edf900681..bd8177115 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java @@ -21,6 +21,7 @@ import nautilus.game.arcade.game.games.moba.boss.MobaBoss; import nautilus.game.arcade.game.games.moba.boss.wither.attack.BossAttackEarthquake; import nautilus.game.arcade.game.games.moba.structure.tower.Tower; import nautilus.game.arcade.game.games.moba.structure.tower.TowerDestroyEvent; +import nautilus.game.arcade.game.games.moba.training.MobaTraining; import nautilus.game.arcade.game.games.moba.util.MobaUtil; import org.bukkit.EntityEffect; import org.bukkit.Location; @@ -100,6 +101,12 @@ public class WitherBoss extends MobaBoss @EventHandler(priority = EventPriority.LOWEST) public void preDamage(CustomDamageEvent event) { + if (_host instanceof MobaTraining) + { + event.SetCancelled("Training Mode"); + return; + } + if (!event.GetDamageeEntity().equals(_entity) || MobaUtil.isInBoundary(_team, _entity, _location, getAi().getBoundaries(), event.GetDamagerPlayer(true))) { return; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAOEHeal.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAOEHeal.java index 5f12478e4..64441aa11 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAOEHeal.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAOEHeal.java @@ -31,6 +31,7 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; +import org.bukkit.event.player.PlayerBucketEmptyEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; @@ -81,6 +82,12 @@ public class SkillAOEHeal extends HeroSkill implements IThrown Manager.GetProjectile().AddThrow(item, player, this, 1000, true, true, true, false, 1F); } + @EventHandler + public void emptyBucket(PlayerBucketEmptyEvent event) + { + event.setCancelled(true); + } + @Override public void Collide(LivingEntity target, Block block, ProjectileUser data) { 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 new file mode 100644 index 000000000..73cb8e7c0 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/MobaTraining.java @@ -0,0 +1,115 @@ +package nautilus.game.arcade.game.games.moba.training; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.UtilAlg; +import mineplex.core.hologram.Hologram; +import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.GameType; +import nautilus.game.arcade.events.GameStateChangeEvent; +import nautilus.game.arcade.events.PlayerStateChangeEvent; +import nautilus.game.arcade.game.GameTeam; +import nautilus.game.arcade.game.GameTeam.PlayerState; +import nautilus.game.arcade.game.games.moba.Moba; +import nautilus.game.arcade.game.modules.TrainingGameModule; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; + +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.function.Function; + +public class MobaTraining extends Moba +{ + + private static final String[][] HELP_HOLOGRAMS = + { + { + + } + }; + private static final int GOLD = 100000; + + private Location _borderA; + private Location _borderB; + private Function _safeFunction = player -> UtilAlg.inBoundingBox(player.getLocation(), _borderA, _borderB); + private Function _teamFunction = player -> GetTeam(ChatColor.GRAY); + + public MobaTraining(ArcadeManager manager) + { + super(manager, GameType.MOBATraining); + + DeathSpectateSecs = 0; + PrepareTime = 500; + GiveClock = false; + HideTeamSheep = true; + + new TrainingGameModule() + .setGiveReturnToSpawn(false) + .setSkillFunction(_safeFunction) + .setDamageFunction(_safeFunction) + .setTeamFunction(_teamFunction) + .register(this); + } + + @Override + public void ParseData() + { + List locations = WorldData.GetDataLocs("BROWN"); + + _borderA = locations.get(0); + _borderB = locations.get(1); + } + + @EventHandler + public void customTeamGeneration(GameStateChangeEvent event) + { + if (event.GetState() != GameState.Recruit) + { + return; + } + + GameTeam players = GetTeam(ChatColor.GRAY); + players.SetName("Players"); + players.setDisplayName(C.cGray + "Players"); + } + + @EventHandler + public void giveGold(PlayerStateChangeEvent event) + { + if (event.GetState() == PlayerState.IN) + { + _goldManager.addGold(event.GetPlayer(), GOLD); + } + } + + @EventHandler + public void spawnTutorial(GameStateChangeEvent event) + { + if (event.GetState() != GameState.Live) + { + return; + } + + CreatureAllowOverride = true; + + CreatureAllowOverride = false; + } + + private void spawnHelpText() + { + Map locationMap = getLocationStartsWith("HELP"); + + for (Entry entry : locationMap.entrySet()) + { + String[] split = entry.getKey().split(" "); + String index = split[0]; + int indexInt = Integer.parseInt(index); + String[] display = HELP_HOLOGRAMS[indexInt]; + + new Hologram(Manager.getHologramManager(), entry.getValue(), true, display).start(); + } + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/TrainingGameModule.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/TrainingGameModule.java index 3305ba089..45dbf6e46 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/TrainingGameModule.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/TrainingGameModule.java @@ -45,6 +45,7 @@ public class TrainingGameModule extends Module private Function _teamFunction; private Function _skillFunction; private Function _damageFunction; + private boolean _giveReturnToSpawn = true; public TrainingGameModule() { @@ -282,7 +283,7 @@ public class TrainingGameModule extends Module @EventHandler public void giveReturnToSpawn(UpdateEvent event) { - if (event.getType() != UpdateType.FAST) + if (event.getType() != UpdateType.FAST || !_giveReturnToSpawn) { return; } @@ -343,6 +344,12 @@ public class TrainingGameModule extends Module return this; } + public TrainingGameModule setGiveReturnToSpawn(boolean b) + { + _giveReturnToSpawn = b; + return this; + } + private LobbyEnt getFromEntity(Entity entity) { for (LobbyEnt lobbyEnt : _kits) From 61c57deaaac67a13f17c83fdb46c80f45ee0cfac Mon Sep 17 00:00:00 2001 From: AlexTheCoder Date: Mon, 19 Jun 2017 19:59:32 -0400 Subject: [PATCH 06/56] Disable these damn guardians lagging my clans servers --- .../antihack/guardians/AntiHackGuardian.java | 148 +++++++++--------- .../antihack/guardians/GuardianManager.java | 12 +- .../src/mineplex/game/clans/Clans.java | 77 --------- 3 files changed, 80 insertions(+), 157 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/antihack/guardians/AntiHackGuardian.java b/Plugins/Mineplex.Core/src/mineplex/core/antihack/guardians/AntiHackGuardian.java index cb9ef2898..b1ddf4d48 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/antihack/guardians/AntiHackGuardian.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/antihack/guardians/AntiHackGuardian.java @@ -78,39 +78,39 @@ public class AntiHackGuardian implements Listener { UtilServer.RegisterEvents(this); - this.MAX_DISTANCE_X = maxX; - this.MIN_DISTANCE_X = minX; - this.MAX_DISTANCE_Y = maxY; - this.MIN_DISTANCE_Y = minY; - this.MAX_DISTANCE_Z = maxZ; - this.MIN_DISTANCE_Z = minZ; + MAX_DISTANCE_X = maxX; + MIN_DISTANCE_X = minX; + MAX_DISTANCE_Y = maxY; + MIN_DISTANCE_Y = minY; + MAX_DISTANCE_Z = maxZ; + MIN_DISTANCE_Z = minZ; - this.CENTER_X = MIN_DISTANCE_X + ((MAX_DISTANCE_X - MIN_DISTANCE_X) / 2.0); - this.CENTER_Y = MIN_DISTANCE_Y + ((MAX_DISTANCE_Y - MIN_DISTANCE_Y) / 2.0); - this.CENTER_Z = MIN_DISTANCE_Z + ((MAX_DISTANCE_Z - MIN_DISTANCE_Z) / 2.0); + CENTER_X = MIN_DISTANCE_X + ((MAX_DISTANCE_X - MIN_DISTANCE_X) / 2.0); + CENTER_Y = MIN_DISTANCE_Y + ((MAX_DISTANCE_Y - MIN_DISTANCE_Y) / 2.0); + CENTER_Z = MIN_DISTANCE_Z + ((MAX_DISTANCE_Z - MIN_DISTANCE_Z) / 2.0); //debug("Spawning ArmorStand at " + center + ""); CoreClientManager clientManager = Managers.get(CoreClientManager.class); DisguiseManager disguiseManager = Managers.get(DisguiseManager.class); - this._center = center; - this._center.getChunk().load(); + _center = center; + _center.getChunk().load(); - this._armorStand = (ArmorStand) new EntityArmorStand(((CraftWorld) this._center.getWorld()).getHandle(), this._center.getX(), this._center.getY(), this._center.getZ()).getBukkitEntity(); - this._armorStand.setGravity(false); - this._armorStand.setVisible(false); - this._armorStand.setRemoveWhenFarAway(false); - this._nmsEntity = ((CraftArmorStand) this._armorStand).getHandle(); - this._nmsEntity.maxNoDamageTicks = 86400; - this._nmsEntity.noDamageTicks = 86400; + _armorStand = (ArmorStand) new EntityArmorStand(((CraftWorld) _center.getWorld()).getHandle(), _center.getX(), _center.getY(), _center.getZ()).getBukkitEntity(); + _armorStand.setGravity(false); + _armorStand.setVisible(false); + _armorStand.setRemoveWhenFarAway(false); + _nmsEntity = ((CraftArmorStand) _armorStand).getHandle(); + _nmsEntity.maxNoDamageTicks = 86400; + _nmsEntity.noDamageTicks = 86400; - this._entityUUID = this._armorStand.getUniqueId(); + _entityUUID = _armorStand.getUniqueId(); - this._disguise = new DisguiseGuardian(this._armorStand); - this._disguise.setHideIfNotDisguised(true); + _disguise = new DisguiseGuardian(_armorStand); + _disguise.setHideIfNotDisguised(true); - disguiseManager.disguise(this._disguise, player -> + disguiseManager.disguise(_disguise, player -> { if (!hideForStaff) return true; @@ -141,17 +141,17 @@ public class AntiHackGuardian implements Listener @EventHandler public void onLoad(ChunkAddEntityEvent event) { - if (event.getEntity().getUniqueId().equals(this._entityUUID)) + if (event.getEntity().getUniqueId().equals(_entityUUID)) { - this._armorStand = (ArmorStand) event.getEntity(); - this._nmsEntity = ((CraftArmorStand) this._armorStand).getHandle(); + _armorStand = (ArmorStand) event.getEntity(); + _nmsEntity = ((CraftArmorStand) _armorStand).getHandle(); } } @EventHandler public void onStack(StackerEvent event) { - if (event.getEntity().getUniqueId().equals(this._entityUUID)) + if (event.getEntity().getUniqueId().equals(_entityUUID)) { event.setCancelled(true); } @@ -159,27 +159,27 @@ public class AntiHackGuardian implements Listener public void tick() { - if (this._nmsEntity.dead || !this._nmsEntity.valid) + if (_nmsEntity.dead || !_nmsEntity.valid) { - //debug("Skipping because " + this._armorStand.isDead() + " " + this._armorStand.isValid()); + //debug("Skipping because " + _armorStand.isDead() + " " + _armorStand.isValid()); return; } - if (this._target == null) + if (_target == null) { regularTick(); } else { - this._stalkTime++; + _stalkTime++; targetTick(); } - //debug("Ticking " + this._armorStand + " " + this._armorStand.isDead() + " " + this._armorStand.getLocation() + " " + this._ticksUntilReset); + //debug("Ticking " + _armorStand + " " + _armorStand.isDead() + " " + _armorStand.getLocation() + " " + _ticksUntilReset); } private void regularTick() { - if (this._ticksUntilReset <= 0) + if (_ticksUntilReset <= 0) { reset(); } @@ -187,8 +187,8 @@ public class AntiHackGuardian implements Listener //debug("===== Begin Calculations ====="); - //debug("Target: " + this._targetX + " " + this._targetY + " " + this._targetZ); - //debug("Start: " + this._armorStand.getLocation()); + //debug("Target: " + _targetX + " " + _targetY + " " + _targetZ); + //debug("Start: " + _armorStand.getLocation()); double deltaX = _targetX - _nmsEntity.locX; double deltaY = _targetY - _nmsEntity.locY; double deltaZ = _targetZ - _nmsEntity.locZ; @@ -210,28 +210,28 @@ public class AntiHackGuardian implements Listener _nmsEntity.locY += dy; _nmsEntity.locZ += dz; - //debug("Dest: " + this._nmsEntity.locX + " " + this._nmsEntity.locY + " " + this._nmsEntity.locZ); + //debug("Dest: " + _nmsEntity.locX + " " + _nmsEntity.locY + " " + _nmsEntity.locZ); //debug("===== End Calculations ====="); // Only send look update every second - if (this._nmsEntity.ticksLived % 20 == 0) + if (_nmsEntity.ticksLived % 20 == 0) { UtilEnt.CreatureLook(_armorStand, _nmsEntity.locX, _nmsEntity.locY, _nmsEntity.locZ, _targetX, _targetY, _targetZ); } - this._ticksUntilReset--; + _ticksUntilReset--; } private void targetTick() { - //debug("===== Stalking " + this._target.getName() + " ====="); - EntityPlayer entityPlayer = ((CraftPlayer) this._target).getHandle(); + //debug("===== Stalking " + _target.getName() + " ====="); + EntityPlayer entityPlayer = ((CraftPlayer) _target).getHandle(); - Vector direction = this._target.getLocation().getDirection().normalize().multiply(-6); + Vector direction = _target.getLocation().getDirection().normalize().multiply(-6); - this._nmsEntity.locX = entityPlayer.locX + direction.getX(); - this._nmsEntity.locZ = entityPlayer.locZ + direction.getZ(); - this._nmsEntity.locY = entityPlayer.locY + 10.0 + nextDouble(-1.0, 1.0); + _nmsEntity.locX = entityPlayer.locX + direction.getX(); + _nmsEntity.locZ = entityPlayer.locZ + direction.getZ(); + _nmsEntity.locY = entityPlayer.locY + 10.0 + nextDouble(-1.0, 1.0); UtilEnt.CreatureLook(_armorStand, _nmsEntity.locX, _nmsEntity.locY, _nmsEntity.locZ, entityPlayer.locX, entityPlayer.locY, entityPlayer.locZ); } @@ -261,7 +261,7 @@ public class AntiHackGuardian implements Listener cy = MAGICAL_FUNCTION.apply(cy) * (y > CENTER_Y ? -(MAX_DISTANCE_Y - CENTER_Y) : (CENTER_Y - MIN_DISTANCE_Y)); cz = MAGICAL_FUNCTION.apply(cz) * (z > CENTER_Z ? -(MAX_DISTANCE_Z - CENTER_Z) : (CENTER_Z - MIN_DISTANCE_Z)); - //debug("Start: " + this._armorStand.getLocation()); + //debug("Start: " + _armorStand.getLocation()); //debug("Changes: " + cx + " " + cy + " " + cz); int ex = nextInt(8, 12); @@ -285,18 +285,18 @@ public class AntiHackGuardian implements Listener //debug("Deltas: " + dx + " " + dy + " " + dz); - this._targetX = x + dx; - this._targetY = y + dy; - this._targetZ = z + dz; - //debug("End: " + this._targetX + " " + this._targetY + " " + this._targetZ); + _targetX = x + dx; + _targetY = y + dy; + _targetZ = z + dz; + //debug("End: " + _targetX + " " + _targetY + " " + _targetZ); // If we can't find a good position, just go to the center if (!locCheck()) { - this._targetX = CENTER_X; - this._targetY = CENTER_Y; - this._targetZ = CENTER_Z; + _targetX = CENTER_X; + _targetY = CENTER_Y; + _targetZ = CENTER_Z; dx = (int) (CENTER_X - x); dy = (int) (CENTER_Y - y); @@ -305,46 +305,46 @@ public class AntiHackGuardian implements Listener double maxDelta = Math.max(Math.max(Math.abs(dx), Math.abs(dy)), Math.abs(dz)); - this._ticksUntilReset = (int) (maxDelta / DELTA_MOVE_PER_TICK); + _ticksUntilReset = (int) (maxDelta / DELTA_MOVE_PER_TICK); // Send look update for new target UtilEnt.CreatureLook(_armorStand, _nmsEntity.locX, _nmsEntity.locY, _nmsEntity.locZ, _targetX, _targetY, _targetZ); - //debug("Ticks: " + this._ticksUntilReset); + //debug("Ticks: " + _ticksUntilReset); //debug("======= END RESET ======"); } public void target(Player player) { - this._target = player; + _target = player; } public boolean isTargeting() { - return this._target != null; + return _target != null; } public int getTargetingTime() { - return this._stalkTime; + return _stalkTime; } public void stopTargeting() { - this._target = null; - this._stalkTime = 0; + _target = null; + _stalkTime = 0; reset(); } public void shoot(Player player) { - this._disguise.setTarget(player == null ? 0 : player.getEntityId()); - Managers.get(DisguiseManager.class).updateDisguise(this._disguise); + _disguise.setTarget(player == null ? 0 : player.getEntityId()); + Managers.get(DisguiseManager.class).updateDisguise(_disguise); } public Player getTarget() { - return this._target; + return _target; } private boolean locCheck() @@ -376,31 +376,31 @@ public class AntiHackGuardian implements Listener public void remove() { - this._target = null; + _target = null; UtilServer.Unregister(this); - Managers.get(DisguiseManager.class).undisguise(this._disguise); - this._armorStand.remove(); - this._nmsEntity = null; - this._armorStand = null; - this._center = null; + Managers.get(DisguiseManager.class).undisguise(_disguise); + _armorStand.remove(); + _nmsEntity = null; + _armorStand = null; + _center = null; } public ArmorStand getEntity() { - return this._armorStand; + return _armorStand; } public void moveDelta(double dx, double dy, double dz) { - this._nmsEntity.locX += dx; - this._nmsEntity.locY += dy; - this._nmsEntity.locZ += dz; + _nmsEntity.locX += dx; + _nmsEntity.locY += dy; + _nmsEntity.locZ += dz; } public void move(double x, double y, double z) { - this._nmsEntity.locX = x; - this._nmsEntity.locY = y; - this._nmsEntity.locZ = z; + _nmsEntity.locX = x; + _nmsEntity.locY = y; + _nmsEntity.locZ = z; } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/antihack/guardians/GuardianManager.java b/Plugins/Mineplex.Core/src/mineplex/core/antihack/guardians/GuardianManager.java index a5806e753..3d19f0501 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/antihack/guardians/GuardianManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/antihack/guardians/GuardianManager.java @@ -41,13 +41,13 @@ public class GuardianManager extends MiniPlugin { super("GuardianManager"); - this._plugin.getServer().getScheduler().runTaskTimer(this._plugin, () -> + _plugin.getServer().getScheduler().runTaskTimer(_plugin, () -> { - for (AntiHackGuardian guardian : this._guardians) + for (AntiHackGuardian guardian : _guardians) { if (guardian.getTarget() != null && !guardian.getTarget().isOnline()) { - this._stalking.remove(guardian.getTarget().getUniqueId()); + _stalking.remove(guardian.getTarget().getUniqueId()); guardian.stopTargeting(); } else if (guardian.getTargetingTime() > MIN_STALK_TIME) @@ -55,7 +55,7 @@ public class GuardianManager extends MiniPlugin double threshold = STALK_END_PROBABILITY_EQUATION.apply(guardian.getTargetingTime() - MIN_STALK_TIME); if (Math.random() <= threshold) { - this._stalking.remove(guardian.getTarget().getUniqueId()); + _stalking.remove(guardian.getTarget().getUniqueId()); _stalkingCooldown.put(guardian.getTarget().getUniqueId(), true); guardian.stopTargeting(); } @@ -64,7 +64,7 @@ public class GuardianManager extends MiniPlugin } }, 0L, 1L); - this._plugin.getServer().getScheduler().runTaskTimer(this._plugin, () -> + _plugin.getServer().getScheduler().runTaskTimer(_plugin, () -> { if (_stalking.size() >= MAX_STALKED_PLAYERS) { @@ -124,6 +124,6 @@ public class GuardianManager extends MiniPlugin public void registerGuardian(AntiHackGuardian guardian) { - this._guardians.add(guardian); + _guardians.add(guardian); } } diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java index 784e5c230..b3ed131a7 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java @@ -6,7 +6,6 @@ import java.io.File; import java.io.IOException; import org.bukkit.Bukkit; -import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; @@ -19,7 +18,6 @@ import mineplex.core.TimingsFix; import mineplex.core.account.CoreClientManager; import mineplex.core.achievement.AchievementManager; import mineplex.core.antihack.AntiHack; -import mineplex.core.antihack.guardians.AntiHackGuardian; import mineplex.core.antihack.guardians.GuardianManager; import mineplex.core.aprilfools.AprilFoolsManager; import mineplex.core.blockrestore.BlockRestore; @@ -161,81 +159,6 @@ public class Clans extends JavaPlugin new EternalGiveawayManager(this, _clientManager, serverStatusManager); - { - // West Shop - int maxX = -385; - int minX = -462; - int maxY = 100; - int minY = 90; - int maxZ = 46; - int minZ = -30; - Location spawn = new Location(Bukkit.getWorld("world"), -422, 95, 8); - for (int i = 0; i < 10; i++) - { - guardianManager.registerGuardian(new AntiHackGuardian(spawn.clone(), maxX, minX, maxY, minY, maxZ, minZ)); - } - } - - { - // East Shop - int maxX = 385; - int minX = -463; - int maxY = 100; - int minY = 90; - int maxZ = 31; - int minZ = -46; - Location spawn = new Location(Bukkit.getWorld("world"), 424, 95, -8); - for (int i = 0; i < 10; i++) - { - guardianManager.registerGuardian(new AntiHackGuardian(spawn.clone(), maxX, minX, maxY, minY, maxZ, minZ)); - } - } - - { - // North Spawn - int maxX = 25; - int minX = -8; - int maxY = 215; - int minY = 205; - int maxZ = -376; - int minZ = -410; - Location spawn = new Location(Bukkit.getWorld("world"), 9, 210, -393); - for (int i = 0; i < 10; i++) - { - guardianManager.registerGuardian(new AntiHackGuardian(spawn.clone(), maxX, minX, maxY, minY, maxZ, minZ)); - } - } - - { - // South Spawn - int maxX = 25; - int minX = -8; - int maxY = 215; - int minY = 205; - int maxZ = 407; - int minZ = 373; - Location spawn = new Location(Bukkit.getWorld("world"), 8, 210, 390); - for (int i = 0; i < 10; i++) - { - guardianManager.registerGuardian(new AntiHackGuardian(spawn.clone(), maxX, minX, maxY, minY, maxZ, minZ)); - } - } - - { - // Fields - int maxX = 50; - int minX = -60; - int maxY = 110; - int minY = 100; - int maxZ = 70; - int minZ = -70; - Location spawn = new Location(Bukkit.getWorld("world"), 0, 100, 0); - for (int i = 0; i < 40; i++) - { - guardianManager.registerGuardian(new AntiHackGuardian(spawn.clone(), maxX, minX, maxY, minY, maxZ, minZ)); - } - } - BlockRestore blockRestore = require(BlockRestore.class); IgnoreManager ignoreManager = new IgnoreManager(this, _clientManager, preferenceManager, portal); From e99be53bb56bda183f34e30d28d8aeb60fcc03a6 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 22 Jun 2017 12:07:11 +0100 Subject: [PATCH 07/56] Add a middle class to deal with multiple modes --- .../src/mineplex/core/game/GameDisplay.java | 2 +- .../src/nautilus/game/arcade/GameType.java | 5 +- .../game/arcade/game/games/moba/Moba.java | 287 ++---------------- .../arcade/game/games/moba/MobaClassic.java | 263 ++++++++++++++++ .../arcade/game/games/moba/MobaPlayer.java | 1 + .../game/games/moba/boss/BossManager.java | 22 +- .../arcade/game/games/moba/boss/MobaBoss.java | 6 - .../games/moba/boss/wither/WitherBoss.java | 12 +- .../games/moba/buff/buffs/BuffCripple.java | 39 --- .../arcade/game/games/moba/kit/HeroSkill.java | 10 +- .../games/moba/kit/common/SkillSword.java | 1 - .../moba/kit/larissa/SkillAquaCannon.java | 1 - .../moba/kit/larissa/SkillWaterDash.java | 1 - .../game/games/moba/minion/MinionManager.java | 13 +- .../game/games/moba/minion/MinionWave.java | 6 - .../moba/structure/point/CapturePoint.java | 1 - .../games/moba/training/MobaTraining.java | 192 +++++++++++- .../arcade/game/games/moba/util/MobaUtil.java | 2 +- .../game/modules/CustomScoreboardModule.java | 3 +- 19 files changed, 512 insertions(+), 355 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/MobaClassic.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/buff/buffs/BuffCripple.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/game/GameDisplay.java b/Plugins/Mineplex.Core/src/mineplex/core/game/GameDisplay.java index 381b5069b..413dbbc8f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/game/GameDisplay.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/game/GameDisplay.java @@ -104,7 +104,7 @@ public enum GameDisplay AlienInvasion("Alien Invasion", Material.ENDER_STONE, (byte) 0, GameCategory.EVENT, 69, false), - MOBA("Heroes of GWEN", Material.PRISMARINE, (byte)0, GameCategory.CLASSICS, 70, false), + MOBA("Heroes of GWEN", Material.PRISMARINE, (byte)0, GameCategory.CLASSICS, 70, true), MOBATraining("Heroes of GWEN Training", Material.PRISMARINE, (byte)0, GameCategory.CLASSICS, 70, false), GemHunters("Gem Hunters", Material.EMERALD, (byte) 0, GameCategory.SURVIVAL, 71, false), 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 fb504456a..503422b10 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameType.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameType.java @@ -63,6 +63,7 @@ import nautilus.game.arcade.game.games.minestrike.Minestrike; import nautilus.game.arcade.game.games.minestrike.modes.SuperPaintstrike; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.moba.Moba; +import nautilus.game.arcade.game.games.moba.MobaClassic; import nautilus.game.arcade.game.games.moba.training.MobaTraining; import nautilus.game.arcade.game.games.monsterleague.MonsterLeague; import nautilus.game.arcade.game.games.monstermaze.MonsterMaze; @@ -233,8 +234,8 @@ public enum GameType AlienInvasion(AlienInvasion.class, GameDisplay.AlienInvasion), - MOBA(Moba.class, GameDisplay.MOBA), - MOBATraining(MobaTraining.class, GameDisplay.MOBA), + MOBA(MobaClassic.class, GameDisplay.MOBA), + MOBATraining(MobaTraining.class, GameDisplay.MOBATraining), Event(EventGame.class, GameDisplay.Event, new GameType[]{ GameType.BaconBrawl, GameType.Barbarians, GameType.Bridge, GameType.Build, GameType.Build, 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 2024cc3d7..66274c97e 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 @@ -4,11 +4,9 @@ import mineplex.core.Managers; import mineplex.core.beta.BetaWhitelist; import mineplex.core.common.Pair; import mineplex.core.common.Rank; -import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilServer; -import mineplex.core.common.util.UtilTime; import mineplex.core.disguise.disguises.DisguiseBase; import mineplex.core.disguise.disguises.DisguisePlayer; import mineplex.core.leaderboard.Leaderboard; @@ -23,7 +21,6 @@ import nautilus.game.arcade.game.DebugCommand; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.TeamGame; import nautilus.game.arcade.game.games.moba.boss.BossManager; -import nautilus.game.arcade.game.games.moba.boss.wither.WitherBoss; import nautilus.game.arcade.game.games.moba.buff.BuffManager; import nautilus.game.arcade.game.games.moba.fountain.MobaFountain; import nautilus.game.arcade.game.games.moba.general.ArrowKBManager; @@ -54,13 +51,10 @@ import nautilus.game.arcade.game.modules.CustomScoreboardModule; import nautilus.game.arcade.game.modules.compass.CompassModule; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.managers.lobby.current.NewGameLobbyManager; -import nautilus.game.arcade.scoreboard.GameScoreboard; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.entity.Arrow; -import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -75,39 +69,30 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.concurrent.TimeUnit; public class Moba extends TeamGame { - private static final String[] DESCRIPTION = { - "..." - }; - private static final long PREPARE_TIME = TimeUnit.MINUTES.toMillis(1); - private final HeroKit[] _kits; private final Set _playerData = new HashSet<>(); - private final Set _listeners = new HashSet<>(); protected final MobaShop _shop; protected final GoldManager _goldManager; protected final BossManager _boss; + protected final BuffManager _buffs; + protected final ArrowKBManager _arrowKb; protected final TowerManager _tower; protected final CapturePointManager _capturePoint; - protected final ArrowKBManager _arrowKb; - protected final BuffManager _buffs; + protected final MinionManager _minion; private BetaWhitelist _betaWhitelist; - public Moba(ArcadeManager manager) - { - this(manager, GameType.MOBA); - } + private int _inPlayers; - public Moba(ArcadeManager manager, GameType gameType) + public Moba(ArcadeManager manager, GameType gameType, String[] description) { - super(manager, gameType, new Kit[]{new KitPlayer(manager)}, DESCRIPTION); + super(manager, gameType, new Kit[]{new KitPlayer(manager)}, description); _kits = new HeroKit[]{ new HeroHattori(Manager), @@ -122,16 +107,7 @@ public class Moba extends TeamGame }; AllowParticles = false; - DontAllowOverfill = true; - PrepareAutoAnnounce = false; - PrepareFreeze = false; - PrepareTime = PREPARE_TIME; - DeathOut = false; - DeathSpectateSecs = 12; - HungerSet = 20; - DamageFall = false; - manager.getCosmeticManager().setHideParticles(true); manager.GetCreature().SetDisableCustomDrops(true); // Instantiate managers @@ -139,33 +115,19 @@ public class Moba extends TeamGame // Global managers _shop = registerManager(new MobaShop(this)); _goldManager = registerManager(new GoldManager(this)); + _boss = registerManager(new BossManager(this)); + _buffs = registerManager(new BuffManager()); + _arrowKb = registerManager(new ArrowKBManager(this)); + _minion = registerManager(new MinionManager(this)); registerManager(new HPManager(this)); registerManager(new MobaDamageManager(this)); registerManager(new MobaFountain(this)); - - // Pregame managers - registerManager(new PrepareManager(this)); - registerManager(new PrepareSelection(this)); - - // Bosses - _boss = registerManager(new BossManager(this)); + registerManager(new EnderPearlManager()); // Structures _tower = registerManager(new TowerManager(this)); _capturePoint = registerManager(new CapturePointManager(this)); - // Minions - registerManager(new MinionManager(this)); - - // Arrow Knockback - _arrowKb = registerManager(new ArrowKBManager(this)); - - // Ender Pearls - registerManager(new EnderPearlManager()); - - // Buffs - _buffs = registerManager(new BuffManager()); - // Beta Message registerManager(new BetaManager(this)); @@ -186,66 +148,6 @@ public class Moba extends TeamGame .setGiveCompassToAlive(false) .register(this); - new CustomScoreboardModule() - .setSidebar((player, scoreboard) -> - { - GameState state = GetState(); - - switch (state) - { - case Prepare: - writePrepare(player, scoreboard); - break; - case Live: - writeLive(player, scoreboard); - break; - } - }) - .setPrefix((perspective, subject) -> - { - if (!IsAlive(subject)) - { - return C.cGray; - } - - GameTeam team = GetTeam(subject); - - return team.GetColor().toString(); - }) - .setSuffix((perspective, subject) -> - { - GameState state = GetState(); - GameTeam perspectiveTeam = GetTeam(perspective); - GameTeam subjectTeam = GetTeam(subject); - - if (!IsAlive(subject) || perspectiveTeam == null || subjectTeam == null) - { - return ""; - } - - MobaPlayer mobaPlayer = getMobaData(subject); - String suffix; - - if (state == GameState.Prepare && !perspectiveTeam.equals(subjectTeam)) - { - suffix = C.cYellow + " Unknown"; - } - else if (mobaPlayer.getKit() == null) - { - suffix = C.cYellow + " Selecting"; - } - else - { - suffix = mobaPlayer.getRole().getChatColor() + " " + mobaPlayer.getKit().GetName(); - } - - return suffix + C.Reset; - }) - .setUnderNameObjective(C.cRed + "❤") - .setUnderName((perspective, subject) -> - (int) (Math.ceil(subject.getHealth() / 2D))) - .register(this); - registerDebugCommand(new DebugCommand("kit", Rank.ADMIN) { @Override @@ -274,7 +176,7 @@ public class Moba extends TeamGame }); } - private T registerManager(T listener) + protected T registerManager(T listener) { _listeners.add(listener); return listener; @@ -333,97 +235,6 @@ public class Moba extends TeamGame } } - private void writePrepare(Player player, GameScoreboard scoreboard) - { - MobaPlayer mobaPlayer = getMobaData(player); - - scoreboard.writeNewLine(); - - scoreboard.write(C.cYellowB + "Hero Selection"); - scoreboard.write(UtilTime.MakeStr(GetStateTime() + PREPARE_TIME - System.currentTimeMillis())); - - scoreboard.writeNewLine(); - - scoreboard.write(C.cYellowB + "Hero"); - scoreboard.write((mobaPlayer == null || mobaPlayer.getKit() == null) ? "Unselected " : mobaPlayer.getKit().GetName() + " (" + mobaPlayer.getRole().getName() + ")"); - - scoreboard.writeNewLine(); - - scoreboard.write(C.cYellowB + "Players"); - int kits = 0; - - for (MobaPlayer otherMobaPlayer : _playerData) - { - if (otherMobaPlayer.getKit() != null) - { - kits++; - } - } - - scoreboard.write(kits + "/" + GetPlayers(true).size()); - - scoreboard.writeNewLine(); - } - - private void writeLive(Player player, GameScoreboard scoreboard) - { - GameTeam team = GetTeam(player); - boolean alive = IsAlive(player); - - scoreboard.writeNewLine(); - - // Towers - GameTeam red = GetTeam(ChatColor.RED); - GameTeam blue = GetTeam(ChatColor.AQUA); - String redTitle; - String blueTitle; - - if (alive) - { - boolean playerRed = team.equals(red); - redTitle = playerRed ? "Your Team" : "Enemy Team"; - blueTitle = playerRed ? "Enemy Team" : "Your Team"; - } - else - { - redTitle = "Red Team"; - blueTitle = "Blue Team"; - } - - scoreboard.write(red.GetColor() + C.Bold + redTitle); - scoreboard.write("Base: " + _tower.getDisplayString(red) + _boss.getWitherDisplayString(red)); - - scoreboard.writeNewLine(); - - scoreboard.write(blue.GetColor() + C.Bold + blueTitle); - scoreboard.write("Base: " + _tower.getDisplayString(blue) + _boss.getWitherDisplayString(blue)); - - scoreboard.writeNewLine(); - - scoreboard.write(C.cGreenB + "Beacons"); - scoreboard.write(_capturePoint.getDisplayString()); - - scoreboard.writeNewLine(); - - // Gold - scoreboard.write(C.cGoldB + "Your Gold"); - if (alive) - { - int gold = _goldManager.getGold(player); - - scoreboard.write(String.valueOf(gold)); - } - else - { - scoreboard.write("None"); - } - - scoreboard.writeNewLine(); - - scoreboard.write(C.cYellowB + "Time"); - scoreboard.write(UtilTime.MakeStr(System.currentTimeMillis() - GetStateTime())); - } - @EventHandler(priority = EventPriority.LOWEST) public void prepare(GameStateChangeEvent event) { @@ -448,7 +259,7 @@ public class Moba extends TeamGame { Player player = event.GetPlayer(); - if (GetPlayers(true).size() > 8) + if (++_inPlayers > 8) { SetPlayerState(player, GameTeam.PlayerState.OUT); Manager.addSpectator(player, true); @@ -456,68 +267,6 @@ public class Moba extends TeamGame } } - @Override - public void EndCheck() - { - if (!IsLive()) - { - return; - } - - // Only one team online check - List teamsWithPlayers = new ArrayList<>(GetTeamList().size()); - - for (GameTeam team : GetTeamList()) - { - if (team.GetPlayers(true).isEmpty()) - { - continue; - } - - teamsWithPlayers.add(team); - } - - if (teamsWithPlayers.size() == 1) - { - AnnounceEnd(teamsWithPlayers.get(0)); - SetState(GameState.End); - return; - } - - // Wither Dead check - for (GameTeam team : GetTeamList()) - { - WitherBoss boss = _boss.getWitherBoss(team); - LivingEntity entity = boss.getEntity(); - - // Dead Wither - if (entity == null || !entity.isValid() || entity.isDead()) - { - // Get the other team - for (GameTeam otherTeam : GetTeamList()) - { - for (Player player : otherTeam.GetPlayers(true)) - { - AddGems(player, 10, "Participation", false, false); - } - - if (team.equals(otherTeam)) - { - continue; - } - - for (Player player : otherTeam.GetPlayers(true)) - { - AddGems(player, 20, "Winning", false, false); - } - - AnnounceEnd(otherTeam); - SetState(GameState.End); - } - } - } - } - @Override public void RespawnPlayer(Player player) { @@ -747,6 +496,11 @@ public class Moba extends TeamGame return _goldManager; } + public BuffManager getBuffManager() + { + return _buffs; + } + public TowerManager getTowerManager() { return _tower; @@ -766,9 +520,4 @@ public class Moba extends TeamGame { return _arrowKb; } - - public BuffManager getBuffManager() - { - return _buffs; - } } \ No newline at end of file diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/MobaClassic.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/MobaClassic.java new file mode 100644 index 000000000..8fa8ee3cb --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/MobaClassic.java @@ -0,0 +1,263 @@ +package nautilus.game.arcade.game.games.moba; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.UtilTime; +import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.GameType; +import nautilus.game.arcade.game.GameTeam; +import nautilus.game.arcade.game.games.moba.boss.wither.WitherBoss; +import nautilus.game.arcade.game.games.moba.prepare.PrepareManager; +import nautilus.game.arcade.game.games.moba.prepare.PrepareSelection; +import nautilus.game.arcade.game.modules.CustomScoreboardModule; +import nautilus.game.arcade.scoreboard.GameScoreboard; +import org.bukkit.ChatColor; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class MobaClassic extends Moba +{ + + private static final String[] DESCRIPTION = { + "Select your Role and Hero.", + "Kill the enemy Team!", + "Capture the Beacons to earn gold to spent in the shop!", + "Destroy the enemy's Towers and Wither!" + }; + private static final long PREPARE_TIME = TimeUnit.MINUTES.toMillis(1); + + public MobaClassic(ArcadeManager manager) + { + super(manager, GameType.MOBA, DESCRIPTION); + + DontAllowOverfill = true; + PrepareAutoAnnounce = false; + PrepareFreeze = false; + PrepareTime = PREPARE_TIME; + DeathOut = false; + DeathSpectateSecs = 12; + HungerSet = 20; + DamageFall = false; + + // Pregame managers + registerManager(new PrepareManager(this)); + registerManager(new PrepareSelection(this)); + + new CustomScoreboardModule() + .setSidebar((player, scoreboard) -> + { + GameState state = GetState(); + + switch (state) + { + case Prepare: + writePrepare(player, scoreboard); + break; + case Live: + writeLive(player, scoreboard); + break; + } + }) + .setPrefix((perspective, subject) -> + { + if (!IsAlive(subject)) + { + return C.cGray; + } + + GameTeam team = GetTeam(subject); + + return team.GetColor().toString(); + }) + .setSuffix((perspective, subject) -> + { + GameState state = GetState(); + GameTeam perspectiveTeam = GetTeam(perspective); + GameTeam subjectTeam = GetTeam(subject); + + if (!IsAlive(subject) || perspectiveTeam == null || subjectTeam == null) + { + return ""; + } + + MobaPlayer mobaPlayer = getMobaData(subject); + String suffix; + + if (state == GameState.Prepare && !perspectiveTeam.equals(subjectTeam)) + { + suffix = C.cYellow + " Unknown"; + } + else if (mobaPlayer.getKit() == null) + { + suffix = C.cYellow + " Selecting"; + } + else + { + suffix = mobaPlayer.getRole().getChatColor() + " [" + mobaPlayer.getKit().GetName() + "]"; + } + + return suffix + C.Reset; + }) + .setUnderNameObjective(C.cRed + "❤") + .setUnderName((perspective, subject) -> + (int) (Math.ceil(subject.getHealth() / 2D))) + .register(this); + } + + private void writePrepare(Player player, GameScoreboard scoreboard) + { + MobaPlayer mobaPlayer = getMobaData(player); + + scoreboard.writeNewLine(); + + scoreboard.write(C.cYellowB + "Hero Selection"); + scoreboard.write(UtilTime.MakeStr(GetStateTime() + PREPARE_TIME - System.currentTimeMillis())); + + scoreboard.writeNewLine(); + + scoreboard.write(C.cYellowB + "Hero"); + scoreboard.write((mobaPlayer == null || mobaPlayer.getKit() == null) ? "Unselected " : mobaPlayer.getKit().GetName() + " (" + mobaPlayer.getRole().getName() + ")"); + + scoreboard.writeNewLine(); + + scoreboard.write(C.cYellowB + "Players"); + int kits = 0; + + for (MobaPlayer otherMobaPlayer : getMobaData()) + { + if (otherMobaPlayer.getKit() != null) + { + kits++; + } + } + + scoreboard.write(kits + "/" + GetPlayers(true).size()); + + scoreboard.writeNewLine(); + } + + private void writeLive(Player player, GameScoreboard scoreboard) + { + GameTeam team = GetTeam(player); + boolean alive = IsAlive(player); + + scoreboard.writeNewLine(); + + // Towers + GameTeam red = GetTeam(ChatColor.RED); + GameTeam blue = GetTeam(ChatColor.AQUA); + String redTitle; + String blueTitle; + + if (alive) + { + boolean playerRed = team.equals(red); + redTitle = playerRed ? "Your Team" : "Enemy Team"; + blueTitle = playerRed ? "Enemy Team" : "Your Team"; + } + else + { + redTitle = "Red Team"; + blueTitle = "Blue Team"; + } + + scoreboard.write(red.GetColor() + C.Bold + redTitle); + scoreboard.write("Base: " + _tower.getDisplayString(red) + _boss.getWitherDisplayString(red)); + + scoreboard.writeNewLine(); + + scoreboard.write(blue.GetColor() + C.Bold + blueTitle); + scoreboard.write("Base: " + _tower.getDisplayString(blue) + _boss.getWitherDisplayString(blue)); + + scoreboard.writeNewLine(); + + scoreboard.write(C.cGreenB + "Beacons"); + scoreboard.write(_capturePoint.getDisplayString()); + + scoreboard.writeNewLine(); + + // Gold + scoreboard.write(C.cGoldB + "Your Gold"); + if (alive) + { + int gold = _goldManager.getGold(player); + + scoreboard.write(String.valueOf(gold)); + } + else + { + scoreboard.write("None"); + } + + scoreboard.writeNewLine(); + + scoreboard.write(C.cYellowB + "Time"); + scoreboard.write(UtilTime.MakeStr(System.currentTimeMillis() - GetStateTime())); + } + + @Override + public void EndCheck() + { + if (!IsLive()) + { + return; + } + + // Only one team online check + List teamsWithPlayers = new ArrayList<>(GetTeamList().size()); + + for (GameTeam team : GetTeamList()) + { + if (team.GetPlayers(true).isEmpty()) + { + continue; + } + + teamsWithPlayers.add(team); + } + + if (teamsWithPlayers.size() == 1) + { + AnnounceEnd(teamsWithPlayers.get(0)); + SetState(GameState.End); + return; + } + + // Wither Dead check + for (GameTeam team : GetTeamList()) + { + WitherBoss boss = _boss.getWitherBoss(team); + LivingEntity entity = boss.getEntity(); + + // Dead Wither + if (entity == null || !entity.isValid() || entity.isDead()) + { + // Get the other team + for (GameTeam otherTeam : GetTeamList()) + { + for (Player player : otherTeam.GetPlayers(true)) + { + AddGems(player, 10, "Participation", false, false); + } + + if (team.equals(otherTeam)) + { + continue; + } + + for (Player player : otherTeam.GetPlayers(true)) + { + AddGems(player, 20, "Winning", false, false); + } + + AnnounceEnd(otherTeam); + SetState(GameState.End); + } + } + } + } + +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/MobaPlayer.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/MobaPlayer.java index 29d7083ed..dd2d2a823 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/MobaPlayer.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/MobaPlayer.java @@ -32,6 +32,7 @@ public class MobaPlayer public void setKit(HeroKit kit) { + _role = kit.getRole(); _kit = kit; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/BossManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/BossManager.java index f2a0ef23c..bbf18f390 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/BossManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/BossManager.java @@ -24,6 +24,8 @@ public class BossManager implements Listener private Map _teamBosses; private PumpkinBoss _pumpkinBoss; + private boolean _dummyBosses; + public BossManager(Moba host) { _host = host; @@ -39,15 +41,18 @@ public class BossManager implements Listener // Spawn Team Withers for (GameTeam team : _host.GetTeamList()) { - WitherBoss boss = new WitherBoss(_host, worldData.GetDataLocs(team.GetName().toUpperCase()).get(0), team); + WitherBoss boss = new WitherBoss(_host, worldData.GetDataLocs(team.GetName().toUpperCase()).get(0), team, _dummyBosses); boss.setup(); _teamBosses.put(team, boss); } // Pumpkin King - _pumpkinBoss = new PumpkinBoss(_host, worldData.GetDataLocs("BLACK").get(0)); - _pumpkinBoss.setup(); + if (!_dummyBosses) + { + _pumpkinBoss = new PumpkinBoss(_host, worldData.GetDataLocs("BLACK").get(0)); + _pumpkinBoss.setup(); + } _host.CreatureAllowOverride = false; } @@ -72,7 +77,11 @@ public class BossManager implements Listener } _teamBosses.forEach((team, witherBoss) -> witherBoss.cleanup()); - _pumpkinBoss.cleanup(); + + if (_pumpkinBoss != null) + { + _pumpkinBoss.cleanup(); + } } public String getWitherDisplayString(GameTeam team) @@ -96,4 +105,9 @@ public class BossManager implements Listener return bosses; } + + public void setDummyBosses(boolean dummyBosses) + { + _dummyBosses = dummyBosses; + } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/MobaBoss.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/MobaBoss.java index 0b2f7adc2..e46cdffd7 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/MobaBoss.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/MobaBoss.java @@ -5,22 +5,16 @@ import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTime; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; -import mineplex.minecraft.game.core.combat.event.CombatDeathEvent; -import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.game.games.moba.Moba; import nautilus.game.arcade.game.games.moba.ai.MobaAI; -import nautilus.game.arcade.game.games.moba.util.MobaUtil; import org.bukkit.Location; import org.bukkit.entity.LivingEntity; import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; import java.util.ArrayList; import java.util.List; -import java.util.function.Consumer; public abstract class MobaBoss implements Listener { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java index bd8177115..9daf921f2 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java @@ -45,16 +45,18 @@ public class WitherBoss extends MobaBoss private static final MobaAIMethod AI_METHOD = new MobaDirectAIMethod(); private static final int MIN_INFORM_TIME = (int) TimeUnit.SECONDS.toMillis(30); - private GameTeam _team; + private final GameTeam _team; + private final boolean _dummy; private MobaAI _ai; private DisguiseWither _disguise; private boolean _damageable; private long _lastInform; - public WitherBoss(Moba host, Location location, GameTeam team) + public WitherBoss(Moba host, Location location, GameTeam team, boolean dummy) { super(host, location); + _dummy = dummy; _location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, host.GetSpectatorLocation()))); _team = team; @@ -101,9 +103,9 @@ public class WitherBoss extends MobaBoss @EventHandler(priority = EventPriority.LOWEST) public void preDamage(CustomDamageEvent event) { - if (_host instanceof MobaTraining) + if (_dummy) { - event.SetCancelled("Training Mode"); + event.SetCancelled("Dummy Boss"); return; } @@ -193,7 +195,7 @@ public class WitherBoss extends MobaBoss { Tower tower = event.getTower(); - if (!_team.equals(tower.getOwner())) + if (!_team.equals(tower.getOwner()) || _dummy) { return; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/buff/buffs/BuffCripple.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/buff/buffs/BuffCripple.java deleted file mode 100644 index aa06f1003..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/buff/buffs/BuffCripple.java +++ /dev/null @@ -1,39 +0,0 @@ -package nautilus.game.arcade.game.games.moba.buff.buffs; - -import mineplex.core.common.util.C; -import mineplex.core.common.util.UtilTextMiddle; -import mineplex.core.itemstack.ItemBuilder; -import nautilus.game.arcade.game.games.moba.Moba; -import nautilus.game.arcade.game.games.moba.buff.Buff; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - -public class BuffCripple extends Buff -{ - - private static final ItemStack ITEM = new ItemBuilder(Material.IRON_INGOT) - .setTitle(C.cGray + "Crippled") - .build(); - - public static ItemStack getItemRepresentation() - { - return ITEM; - } - - public BuffCripple(Moba host, Player entity, long duration) - { - super(host, entity, duration); - } - - @Override - public void onApply() - { - UtilTextMiddle.display("", C.cRed + "Crippled", 10, 20, 10, _entity); - } - - @Override - public void onExpire() - { - } -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java index 59cdd544a..499440172 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java @@ -14,7 +14,6 @@ import mineplex.core.updater.event.UpdateEvent; import nautilus.game.arcade.events.PlayerKitGiveEvent; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.games.moba.Moba; -import nautilus.game.arcade.game.games.moba.buff.buffs.BuffCripple; import nautilus.game.arcade.game.games.moba.util.MobaUtil; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.Perk; @@ -280,13 +279,6 @@ public class HeroSkill extends Perk boolean done = UtilTime.elapsed(start, cooldown); - // If the player is crippled say they are - if (moba.getBuffManager().hasBuff(player, BuffCripple.class)) - { - player.getInventory().setItem(_slot, BuffCripple.getItemRepresentation()); - continue; - } - if (done) { _lastSkill.remove(player.getUniqueId()); @@ -366,7 +358,7 @@ public class HeroSkill extends Perk GameTeam team = Manager.GetGame().GetTeam((Player) damager); - return team != null && MobaUtil.isTeamEntity(damagee, team); + return !Manager.GetGame().DamageTeamSelf && team != null && MobaUtil.isTeamEntity(damagee, team); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/common/SkillSword.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/common/SkillSword.java index c7834d07d..db20421c5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/common/SkillSword.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/common/SkillSword.java @@ -6,7 +6,6 @@ import mineplex.core.itemstack.ItemBuilder; import nautilus.game.arcade.game.games.moba.Moba; import nautilus.game.arcade.game.games.moba.kit.HeroSkill; import nautilus.game.arcade.game.games.moba.shop.MobaItem; -import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; 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 2a64ce53c..b137f3c32 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 @@ -7,7 +7,6 @@ import mineplex.core.common.util.UtilParticle.ParticleType; import mineplex.core.common.util.UtilParticle.ViewDist; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.particles.effects.LineParticle; -import mineplex.core.recharge.Recharge; import nautilus.game.arcade.game.games.moba.Moba; import nautilus.game.arcade.game.games.moba.kit.HeroSkill; import nautilus.game.arcade.game.games.moba.structure.tower.TowerManager; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillWaterDash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillWaterDash.java index 69cc3a8f4..5651ad7fd 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillWaterDash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillWaterDash.java @@ -6,7 +6,6 @@ import mineplex.core.common.util.UtilParticle.ViewDist; import mineplex.core.common.util.UtilPlayer; import nautilus.game.arcade.game.games.moba.Moba; import nautilus.game.arcade.game.games.moba.buff.BuffManager; -import nautilus.game.arcade.game.games.moba.buff.buffs.BuffCripple; import nautilus.game.arcade.game.games.moba.kit.common.DashSkill; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java index e3c663632..6e502a6d1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java @@ -17,9 +17,6 @@ import nautilus.game.arcade.game.games.moba.structure.tower.TowerDestroyEvent; import nautilus.game.arcade.game.games.moba.util.MobaConstants; import org.bukkit.ChatColor; import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.Sign; import org.bukkit.entity.PigZombie; import org.bukkit.entity.Player; import org.bukkit.entity.Zombie; @@ -70,7 +67,7 @@ public class MinionManager implements Listener @EventHandler public void gameCountdownCommence(GamePrepareCountdownCommence event) { - UtilServer.runSyncLater(() -> setEnabled(true), MINION_SPAWN_DELAY_TICKS); + UtilServer.runSyncLater(() -> setEnabled(!_enabled), MINION_SPAWN_DELAY_TICKS); } @EventHandler @@ -131,7 +128,13 @@ public class MinionManager implements Listener } } - public void setEnabled(boolean enabled) + public void disableMinions() + { + // As when the game starts _enabled is inverted. + _enabled = true; + } + + private void setEnabled(boolean enabled) { _enabled = enabled; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionWave.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionWave.java index 5d9f3e77f..6339d7ed0 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionWave.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionWave.java @@ -14,10 +14,8 @@ import nautilus.game.arcade.game.games.moba.ai.goal.MobaDirectAIMethod; import nautilus.game.arcade.game.games.moba.boss.MobaBoss; import nautilus.game.arcade.game.games.moba.boss.wither.WitherBoss; import nautilus.game.arcade.game.games.moba.structure.tower.Tower; -import nautilus.game.arcade.game.games.moba.util.MobaConstants; import nautilus.game.arcade.game.games.moba.util.MobaUtil; import org.bukkit.Location; -import org.bukkit.Sound; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -27,15 +25,11 @@ import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityCombustEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.scheduler.BukkitRunnable; -import org.jooq.util.derby.sys.Sys; import java.util.ArrayList; -import java.util.HashMap; import java.util.Iterator; import java.util.List; -import java.util.Map; public class MinionWave implements Listener { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/point/CapturePoint.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/point/CapturePoint.java index 11ab9881d..6a9d42ba5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/point/CapturePoint.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/point/CapturePoint.java @@ -7,7 +7,6 @@ import mineplex.core.common.util.UtilFirework; 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 nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.games.moba.Moba; 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 73cb8e7c0..6497434a2 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 @@ -2,7 +2,10 @@ package nautilus.game.arcade.game.games.moba.training; import mineplex.core.common.util.C; import mineplex.core.common.util.UtilAlg; +import mineplex.core.common.util.UtilEnt; +import mineplex.core.common.util.UtilTime; import mineplex.core.hologram.Hologram; +import mineplex.core.utils.UtilVariant; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import nautilus.game.arcade.events.GameStateChangeEvent; @@ -10,20 +13,32 @@ import nautilus.game.arcade.events.PlayerStateChangeEvent; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.GameTeam.PlayerState; import nautilus.game.arcade.game.games.moba.Moba; +import nautilus.game.arcade.game.games.moba.MobaPlayer; +import nautilus.game.arcade.game.modules.CustomScoreboardModule; import nautilus.game.arcade.game.modules.TrainingGameModule; +import nautilus.game.arcade.scoreboard.GameScoreboard; import org.bukkit.ChatColor; import org.bukkit.Location; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; +import org.bukkit.entity.Skeleton; +import org.bukkit.entity.Villager; import org.bukkit.event.EventHandler; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import java.util.function.Function; public class MobaTraining extends Moba { + private static final String[] DESCRIPTION = { + "Heroes of GWEN", + "Training Ground" + }; private static final String[][] HELP_HOLOGRAMS = { { @@ -34,33 +49,156 @@ public class MobaTraining extends Moba private Location _borderA; private Location _borderB; + private Location _teleport; + private Location _selectKit; + private Location _lookAt; private Function _safeFunction = player -> UtilAlg.inBoundingBox(player.getLocation(), _borderA, _borderB); - private Function _teamFunction = player -> GetTeam(ChatColor.GRAY); + private Function _teamFunction = player -> GetTeam(ChatColor.YELLOW); + + private final Set _entities = new HashSet<>(); public MobaTraining(ArcadeManager manager) { - super(manager, GameType.MOBATraining); + super(manager, GameType.MOBATraining, DESCRIPTION); + DamageTeamSelf = true; DeathSpectateSecs = 0; PrepareTime = 500; GiveClock = false; HideTeamSheep = true; + // Prevent the wither from being damaged as well as to not spawn the pumpkin king + _boss.setDummyBosses(true); + + // Disable minions + _minion.disableMinions(); + new TrainingGameModule() .setGiveReturnToSpawn(false) .setSkillFunction(_safeFunction) .setDamageFunction(_safeFunction) .setTeamFunction(_teamFunction) .register(this); + + new CustomScoreboardModule() + .setSidebar(this::write) + .setPrefix((perspective, subject) -> + { + if (!IsAlive(subject)) + { + return C.cGray; + } + + GameTeam team = GetTeam(subject); + + return team.GetColor().toString(); + }) + .setSuffix((perspective, subject) -> + { + GameState state = GetState(); + GameTeam perspectiveTeam = GetTeam(perspective); + GameTeam subjectTeam = GetTeam(subject); + + if (!IsAlive(subject) || perspectiveTeam == null || subjectTeam == null) + { + return ""; + } + + MobaPlayer mobaPlayer = getMobaData(subject); + String suffix; + + if (state == GameState.Prepare && !perspectiveTeam.equals(subjectTeam)) + { + suffix = C.cYellow + " Unknown"; + } + else if (mobaPlayer.getKit() == null) + { + suffix = C.cYellow + " Selecting"; + } + else + { + suffix = mobaPlayer.getRole().getChatColor() + " [" + mobaPlayer.getKit().GetName() + "]"; + } + + return suffix + C.Reset; + }) + .setUnderNameObjective(C.cRed + "❤") + .setUnderName((perspective, subject) -> + (int) (Math.ceil(subject.getHealth() / 2D))) + .register(this); + } + + private void write(Player player, GameScoreboard scoreboard) + { + boolean alive = IsAlive(player); + MobaPlayer mobaPlayer = getMobaData(player); + + if (mobaPlayer != null && mobaPlayer.getRole() != null && mobaPlayer.getKit() != null) + { + scoreboard.writeNewLine(); + + scoreboard.write(C.cYellowB + "Hero"); + scoreboard.write(mobaPlayer.getKit().GetName() + " (" + mobaPlayer.getRole().getChatColor() + mobaPlayer.getRole().getName() + C.cWhite + ")"); + } + + scoreboard.writeNewLine(); + + // Gold + scoreboard.write(C.cGoldB + "Your Gold"); + if (alive) + { + int gold = _goldManager.getGold(player); + + scoreboard.write(String.valueOf(gold)); + } + else + { + scoreboard.write("None"); + } + + scoreboard.writeNewLine(); + + scoreboard.write(C.cYellowB + "Time"); + scoreboard.write(UtilTime.MakeStr(System.currentTimeMillis() - GetStateTime())); } @Override public void ParseData() { + super.ParseData(); + List locations = WorldData.GetDataLocs("BROWN"); _borderA = locations.get(0); _borderB = locations.get(1); + + _selectKit = WorldData.GetCustomLocs("SELECT_KIT").get(0); + _teleport = WorldData.GetCustomLocs("JOIN_GAME").get(0); + _lookAt = WorldData.GetCustomLocs("LOOK_AT").get(0); + } + + @EventHandler + public void adjuctSpawns(GameStateChangeEvent event) + { + if (event.GetState() != GameState.Prepare) + { + return; + } + + for (Location location : GetTeam(ChatColor.YELLOW).GetSpawns()) + { + location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, _lookAt))); + } + + for (Location location : GetTeam(ChatColor.GRAY).GetSpawns()) + { + location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, _lookAt))); + } + + for (Location location : WorldData.GetDataLocs("LIME")) + { + location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, SpectatorSpawn))); + } } @EventHandler @@ -72,8 +210,9 @@ public class MobaTraining extends Moba } GameTeam players = GetTeam(ChatColor.GRAY); + players.SetColor(ChatColor.GRAY); players.SetName("Players"); - players.setDisplayName(C.cGray + "Players"); + players.setDisplayName(C.cYellow + "Players"); } @EventHandler @@ -95,6 +234,18 @@ public class MobaTraining extends Moba CreatureAllowOverride = true; + spawnHelpText(); + spawnDummies(); + spawnNPCs(); + + for (LivingEntity entity : _entities) + { + entity.setCustomNameVisible(true); + UtilEnt.vegetate(entity); + UtilEnt.setFakeHead(entity, true); + UtilEnt.silence(entity, true); + } + CreatureAllowOverride = false; } @@ -112,4 +263,39 @@ public class MobaTraining extends Moba new Hologram(Manager.getHologramManager(), entry.getValue(), true, display).start(); } } + + private void spawnDummies() + { + { + Skeleton skeleton = UtilVariant.spawnWitherSkeleton(WorldData.GetCustomLocs("PUMPKIN_KING").get(0)); + skeleton.setCustomName(C.cDRedB + "Pumpkin King"); + UtilEnt.CreatureLook(skeleton, 90); + + _entities.add(skeleton); + } + } + + private void spawnNPCs() + { + { + Villager villager = WorldData.World.spawn(_selectKit, Villager.class); + villager.setCustomName(C.cYellow + "Select A Hero"); + UtilEnt.CreatureLook(villager, _lookAt); + + _entities.add(villager); + } + { + Villager villager = WorldData.World.spawn(_selectKit, Villager.class); + villager.setCustomName(C.cYellow + "Join The Game"); + UtilEnt.CreatureLook(villager, _lookAt); + + _entities.add(villager); + } + } + + private void teleportIntoArena(Player player) + { + player.teleport(UtilAlg.Random(WorldData.GetDataLocs("LIME"))); + SetPlayerTeam(player, GetTeam(ChatColor.YELLOW), true); + } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/util/MobaUtil.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/util/MobaUtil.java index 54bf4ee50..b4efa6382 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/util/MobaUtil.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/util/MobaUtil.java @@ -46,7 +46,7 @@ public class MobaUtil } // Check for team entities - if (entity.hasMetadata(MobaConstants.TEAM_METADATA) && entity.getMetadata(MobaConstants.TEAM_METADATA).get(0).asString().equals(owner.GetName())) + if (isTeamEntity(entity, owner)) { continue; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/CustomScoreboardModule.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/CustomScoreboardModule.java index 928a2e919..efb25437b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/CustomScoreboardModule.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/CustomScoreboardModule.java @@ -4,6 +4,7 @@ import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.game.Game.GameState; +import nautilus.game.arcade.game.games.moba.Moba; import nautilus.game.arcade.scoreboard.GameScoreboard; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -37,7 +38,7 @@ import java.util.function.BiFunction; * * * @see mineplex.core.scoreboard.MineplexScoreboard - * @see nautilus.game.arcade.game.games.moba.Moba + * @see Moba */ public class CustomScoreboardModule extends Module { From f22a091fa0b82c7336a384dcba836a46b0cd093e Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 22 Jun 2017 20:21:19 +0100 Subject: [PATCH 08/56] More training game stuff --- .../moba/kit/larissa/SkillWaterDash.java | 16 ---- .../games/moba/training/MobaTraining.java | 73 ++++++++++++++----- 2 files changed, 54 insertions(+), 35 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillWaterDash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillWaterDash.java index 5651ad7fd..21e8686ac 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillWaterDash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillWaterDash.java @@ -3,9 +3,6 @@ package nautilus.game.arcade.game.games.moba.kit.larissa; 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 nautilus.game.arcade.game.games.moba.Moba; -import nautilus.game.arcade.game.games.moba.buff.BuffManager; import nautilus.game.arcade.game.games.moba.kit.common.DashSkill; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -21,7 +18,6 @@ public class SkillWaterDash extends DashSkill "come into contact with." }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.FEATHER); - private static final long CRIPPLE_DURATION = TimeUnit.SECONDS.toMillis(3); public SkillWaterDash(int slot) { @@ -39,18 +35,6 @@ public class SkillWaterDash extends DashSkill public void dashTick(Player player) { UtilParticle.PlayParticleToAll(ParticleType.DRIP_WATER, player.getLocation().add(0, 1, 0), 0.5F, 0.5F, 0.5F, 0.01F, 5, ViewDist.LONG); - Moba moba = (Moba) Manager.GetGame(); - BuffManager buffManager = moba.getBuffManager(); - - for (Player nearby : UtilPlayer.getNearby(player.getLocation(), 2)) - { - if (isTeamDamage(nearby, player) || buffManager.hasBuff(nearby, BuffCripple.class)) - { - continue; - } - - buffManager.apply(new BuffCripple(moba, nearby, CRIPPLE_DURATION)); - } } } 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 6497434a2..2791cb139 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 @@ -4,8 +4,10 @@ import mineplex.core.common.util.C; import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilTime; +import mineplex.core.disguise.disguises.DisguiseWither; import mineplex.core.hologram.Hologram; import mineplex.core.utils.UtilVariant; +import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import nautilus.game.arcade.events.GameStateChangeEvent; @@ -19,6 +21,7 @@ import nautilus.game.arcade.game.modules.TrainingGameModule; import nautilus.game.arcade.scoreboard.GameScoreboard; import org.bukkit.ChatColor; import org.bukkit.Location; +import org.bukkit.entity.ArmorStand; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.entity.Skeleton; @@ -49,9 +52,8 @@ public class MobaTraining extends Moba private Location _borderA; private Location _borderB; - private Location _teleport; private Location _selectKit; - private Location _lookAt; + private LivingEntity _selectKitEntity; private Function _safeFunction = player -> UtilAlg.inBoundingBox(player.getLocation(), _borderA, _borderB); private Function _teamFunction = player -> GetTeam(ChatColor.YELLOW); @@ -173,12 +175,10 @@ public class MobaTraining extends Moba _borderB = locations.get(1); _selectKit = WorldData.GetCustomLocs("SELECT_KIT").get(0); - _teleport = WorldData.GetCustomLocs("JOIN_GAME").get(0); - _lookAt = WorldData.GetCustomLocs("LOOK_AT").get(0); } @EventHandler - public void adjuctSpawns(GameStateChangeEvent event) + public void adjustSpawns(GameStateChangeEvent event) { if (event.GetState() != GameState.Prepare) { @@ -187,12 +187,12 @@ public class MobaTraining extends Moba for (Location location : GetTeam(ChatColor.YELLOW).GetSpawns()) { - location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, _lookAt))); + location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, _selectKit))); } for (Location location : GetTeam(ChatColor.GRAY).GetSpawns()) { - location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, _lookAt))); + location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, _selectKit))); } for (Location location : WorldData.GetDataLocs("LIME")) @@ -249,6 +249,22 @@ public class MobaTraining extends Moba CreatureAllowOverride = false; } + @EventHandler + public void entityDamage(CustomDamageEvent event) + { + if (!_entities.contains(event.GetDamageeEntity())) + { + return; + } + + event.SetCancelled("NPC"); + + if (_selectKitEntity != null && _selectKitEntity.equals(event.GetDamageeEntity())) + { + teleportIntoArena(event.GetDamagerPlayer(false)); + } + } + private void spawnHelpText() { Map locationMap = getLocationStartsWith("HELP"); @@ -273,28 +289,47 @@ public class MobaTraining extends Moba _entities.add(skeleton); } + { + Location location = WorldData.GetCustomLocs("DUMMY_WITHER").get(0); + ArmorStand stand = location.getWorld().spawn(location, ArmorStand.class); + + // 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); + Manager.GetDisguise().disguise(disguise); + + _entities.add(stand); + } + { + Location location = WorldData.GetCustomLocs("DUMMY_SHOP").get(0); + Villager villager = location.getWorld().spawn(location, Villager.class); + villager.setCustomName(C.cGoldB + "Gold Upgrades"); + } } private void spawnNPCs() { - { - Villager villager = WorldData.World.spawn(_selectKit, Villager.class); - villager.setCustomName(C.cYellow + "Select A Hero"); - UtilEnt.CreatureLook(villager, _lookAt); + Villager villager = WorldData.World.spawn(_selectKit, Villager.class); + villager.setCustomName(C.cYellow + "Select A Hero"); + UtilEnt.CreatureLook(villager, WorldData.GetDataLocs("LIME").get(0)); - _entities.add(villager); - } - { - Villager villager = WorldData.World.spawn(_selectKit, Villager.class); - villager.setCustomName(C.cYellow + "Join The Game"); - UtilEnt.CreatureLook(villager, _lookAt); + _entities.add(villager); + _selectKitEntity = villager; - _entities.add(villager); - } } private void teleportIntoArena(Player player) { + if (player == null) + { + return; + } + player.teleport(UtilAlg.Random(WorldData.GetDataLocs("LIME"))); SetPlayerTeam(player, GetTeam(ChatColor.YELLOW), true); } From 65ebf41d4fbd4e32237a9b72344df9d8adc08412 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 23 Jun 2017 01:43:11 +0100 Subject: [PATCH 09/56] Finish the training game for now --- .../game/arcade/game/games/moba/MobaRole.java | 2 +- .../game/games/moba/boss/BossManager.java | 14 +- .../games/moba/boss/wither/WitherBoss.java | 13 +- .../games/moba/general/MobaDamageManager.java | 9 +- .../game/games/moba/gold/GoldManager.java | 20 +- .../arcade/game/games/moba/kit/HeroKit.java | 5 + .../arcade/game/games/moba/kit/HeroSkill.java | 13 +- .../game/games/moba/minion/MinionManager.java | 28 +-- .../games/moba/prepare/PrepareSelection.java | 10 +- .../games/moba/training/MobaTraining.java | 198 +++++++++++++++--- .../games/moba/training/SelectKitMenu.java | 70 +++++++ .../game/modules/TrainingGameModule.java | 6 + 12 files changed, 289 insertions(+), 99 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/SelectKitMenu.java diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/MobaRole.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/MobaRole.java index 014d12a4d..dd09209b9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/MobaRole.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/MobaRole.java @@ -6,7 +6,7 @@ import org.bukkit.Color; public enum MobaRole { - ASSASSIN("Assassin", Color.GRAY, ChatColor.DARK_GRAY), + ASSASSIN("Assassin", Color.GRAY, ChatColor.GRAY), HUNTER("Hunter", Color.LIME, ChatColor.GREEN), MAGE("Mage", Color.PURPLE, ChatColor.DARK_PURPLE), WARRIOR("Warrior", Color.YELLOW, ChatColor.GOLD), diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/BossManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/BossManager.java index bbf18f390..7b45daa6b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/BossManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/BossManager.java @@ -34,6 +34,11 @@ public class BossManager implements Listener private void spawnBosses() { + if (_dummyBosses) + { + return; + } + _host.CreatureAllowOverride = true; WorldData worldData = _host.WorldData; @@ -41,18 +46,15 @@ public class BossManager implements Listener // Spawn Team Withers for (GameTeam team : _host.GetTeamList()) { - WitherBoss boss = new WitherBoss(_host, worldData.GetDataLocs(team.GetName().toUpperCase()).get(0), team, _dummyBosses); + WitherBoss boss = new WitherBoss(_host, worldData.GetDataLocs(team.GetName().toUpperCase()).get(0), team); boss.setup(); _teamBosses.put(team, boss); } // Pumpkin King - if (!_dummyBosses) - { - _pumpkinBoss = new PumpkinBoss(_host, worldData.GetDataLocs("BLACK").get(0)); - _pumpkinBoss.setup(); - } + _pumpkinBoss = new PumpkinBoss(_host, worldData.GetDataLocs("BLACK").get(0)); + _pumpkinBoss.setup(); _host.CreatureAllowOverride = false; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java index 9daf921f2..8d80c7f5e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java @@ -21,7 +21,6 @@ import nautilus.game.arcade.game.games.moba.boss.MobaBoss; import nautilus.game.arcade.game.games.moba.boss.wither.attack.BossAttackEarthquake; import nautilus.game.arcade.game.games.moba.structure.tower.Tower; import nautilus.game.arcade.game.games.moba.structure.tower.TowerDestroyEvent; -import nautilus.game.arcade.game.games.moba.training.MobaTraining; import nautilus.game.arcade.game.games.moba.util.MobaUtil; import org.bukkit.EntityEffect; import org.bukkit.Location; @@ -46,17 +45,15 @@ public class WitherBoss extends MobaBoss private static final int MIN_INFORM_TIME = (int) TimeUnit.SECONDS.toMillis(30); private final GameTeam _team; - private final boolean _dummy; private MobaAI _ai; private DisguiseWither _disguise; private boolean _damageable; private long _lastInform; - public WitherBoss(Moba host, Location location, GameTeam team, boolean dummy) + public WitherBoss(Moba host, Location location, GameTeam team) { super(host, location); - _dummy = dummy; _location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, host.GetSpectatorLocation()))); _team = team; @@ -103,12 +100,6 @@ public class WitherBoss extends MobaBoss @EventHandler(priority = EventPriority.LOWEST) public void preDamage(CustomDamageEvent event) { - if (_dummy) - { - event.SetCancelled("Dummy Boss"); - return; - } - if (!event.GetDamageeEntity().equals(_entity) || MobaUtil.isInBoundary(_team, _entity, _location, getAi().getBoundaries(), event.GetDamagerPlayer(true))) { return; @@ -195,7 +186,7 @@ public class WitherBoss extends MobaBoss { Tower tower = event.getTower(); - if (!_team.equals(tower.getOwner()) || _dummy) + if (!_team.equals(tower.getOwner())) { return; } 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 e989d5b09..7fa54255c 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 @@ -43,14 +43,7 @@ public class MobaDamageManager implements Listener return; } - if (damageeTeam.equals(damagerTeam)) - { - event.SetCancelled("Team Damage"); - } - else - { - _host.getScoreboardModule().refreshAsSubject(damagee); - } + _host.getScoreboardModule().refreshAsSubject(damagee); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/gold/GoldManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/gold/GoldManager.java index afdd3582d..312aebec7 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/gold/GoldManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/gold/GoldManager.java @@ -67,20 +67,6 @@ public class GoldManager implements Listener }); } - @EventHandler - public void prepare(GameStateChangeEvent event) - { - if (event.GetState() != GameState.Prepare) - { - return; - } - - for (Player player : _host.GetPlayers(true)) - { - _playerGold.put(player, 0); - } - } - @EventHandler public void playerQuit(PlayerQuitEvent event) { @@ -146,7 +132,7 @@ public class GoldManager implements Listener public int getGold(Player player) { - return _playerGold.get(player); + return _playerGold.getOrDefault(player, 0); } public void addGold(Player player, int amount) @@ -156,6 +142,7 @@ public class GoldManager implements Listener public void addGold(Player player, int amount, String reason) { + _playerGold.putIfAbsent(player, 0); _playerGold.put(player, _playerGold.get(player) + amount); _host.getArcadeManager().GetStatsManager().incrementStat(player, _host.GetName() + ".GoldEarned", amount); @@ -168,12 +155,13 @@ public class GoldManager implements Listener public void removeGold(Player player, int amount) { + _playerGold.putIfAbsent(player, 0); _playerGold.put(player, _playerGold.get(player) - amount); } public boolean hasGold(Player player, int amount) { - return _playerGold.get(player) >= amount; + return _playerGold.getOrDefault(player, 0) >= amount; } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java index abde5d9c1..707bc435f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java @@ -262,6 +262,11 @@ public class HeroKit extends Kit Manager.GetDisguise().disguise(disguise); } + public SkinData getSkinData() + { + return _skin; + } + public boolean isVisible() { return _visible; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java index 499440172..4668d565d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java @@ -107,13 +107,13 @@ public class HeroSkill extends Perk _item = new ItemBuilder(_item) .setTitle((action != null ? C.cYellowB + action + C.cGray + " - " : "") + C.cGreenB + GetName()) - .addLore(GetDesc()) + .setLore(GetDesc()) .setUnbreakable(true) .build(); _cooldownItem = new ItemBuilder(Material.INK_SACK, (byte) 8) .setTitle(C.cRed + GetName()) - .addLore(GetDesc()) + .setLore(GetDesc()) .setUnbreakable(true) .build(); } @@ -351,14 +351,19 @@ public class HeroSkill extends Perk protected boolean isTeamDamage(LivingEntity damagee, LivingEntity damager) { - if (!(damager instanceof Player)) + if (damagee.equals(damager)) + { + return true; + } + + if (!(damager instanceof Player) || Manager.GetGame().DamageTeamSelf) { return false; } GameTeam team = Manager.GetGame().GetTeam((Player) damager); - return !Manager.GetGame().DamageTeamSelf && team != null && MobaUtil.isTeamEntity(damagee, team); + return team != null && MobaUtil.isTeamEntity(damagee, team); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java index 6e502a6d1..9e3790713 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java @@ -4,11 +4,9 @@ import mineplex.core.common.Rank; import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilAlg; -import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTime; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; -import nautilus.game.arcade.events.GamePrepareCountdownCommence; import nautilus.game.arcade.game.DebugCommand; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.games.moba.Moba; @@ -33,7 +31,6 @@ import java.util.concurrent.TimeUnit; public class MinionManager implements Listener { - private static final int MINION_SPAWN_DELAY_TICKS = 40; private static final long MINION_SPAWN_TIME = TimeUnit.SECONDS.toMillis(30); private final Moba _host; @@ -48,6 +45,7 @@ public class MinionManager implements Listener { _host = host; _waves = new HashSet<>(); + _enabled = true; host.registerDebugCommand(new DebugCommand("removeminions", Rank.DEVELOPER) { @@ -64,12 +62,6 @@ public class MinionManager implements Listener }); } - @EventHandler - public void gameCountdownCommence(GamePrepareCountdownCommence event) - { - UtilServer.runSyncLater(() -> setEnabled(!_enabled), MINION_SPAWN_DELAY_TICKS); - } - @EventHandler public void spawnMinions(UpdateEvent event) { @@ -80,6 +72,11 @@ public class MinionManager implements Listener _lastWave = System.currentTimeMillis(); + if (_path == null) + { + preparePath(); + } + for (GameTeam team : _host.GetTeamList()) { List path = new ArrayList<>(_path); @@ -130,18 +127,7 @@ public class MinionManager implements Listener public void disableMinions() { - // As when the game starts _enabled is inverted. - _enabled = true; - } - - private void setEnabled(boolean enabled) - { - _enabled = enabled; - - if (enabled) - { - preparePath(); - } + _enabled = false; } public void unregisterWave(MinionWave wave) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/prepare/PrepareSelection.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/prepare/PrepareSelection.java index 23f01e5e9..bad2ee430 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/prepare/PrepareSelection.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/prepare/PrepareSelection.java @@ -112,8 +112,6 @@ public class PrepareSelection implements Listener, IPacketHandler List heroKits = _host.getKits(mobaPlayer.getRole()); - ItemStack head = new ItemBuilder(Material.SKULL_ITEM, (byte) 2).build(); - UtilServer.runSyncLater(() -> { for (Location location : spawns.values()) @@ -126,10 +124,10 @@ public class PrepareSelection implements Listener, IPacketHandler stand.setCustomNameVisible(true); stand.setCustomName(C.cGreenB + kit.GetName()); stand.setArms(true); - stand.setHelmet(head); -// stand.setChestplate(buildColouredStack(Material.LEATHER_CHESTPLATE, role)); -// stand.setLeggings(buildColouredStack(Material.LEATHER_LEGGINGS, role)); -// stand.setBoots(buildColouredStack(Material.LEATHER_BOOTS, role)); + stand.setHelmet(kit.getSkinData().getSkull()); + stand.setChestplate(buildColouredStack(Material.LEATHER_CHESTPLATE, kit.getRole())); + stand.setLeggings(buildColouredStack(Material.LEATHER_LEGGINGS, kit.getRole())); + stand.setBoots(buildColouredStack(Material.LEATHER_BOOTS, kit.getRole())); player.playSound(player.getLocation(), Sound.LEVEL_UP, 1, 0.5F); UtilParticle.PlayParticle(ParticleType.CLOUD, location.clone().add(0, 2, 0), 0.5F, 0.5F, 0.5F, 0.01F, 20, ViewDist.LONG, player); 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 2791cb139..35fd2bc74 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 @@ -1,38 +1,45 @@ package nautilus.game.arcade.game.games.moba.training; +import mineplex.core.common.Rank; import mineplex.core.common.util.C; import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilTime; import mineplex.core.disguise.disguises.DisguiseWither; import mineplex.core.hologram.Hologram; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; import mineplex.core.utils.UtilVariant; 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.events.PlayerStateChangeEvent; +import nautilus.game.arcade.game.DebugCommand; import nautilus.game.arcade.game.GameTeam; -import nautilus.game.arcade.game.GameTeam.PlayerState; import nautilus.game.arcade.game.games.moba.Moba; import nautilus.game.arcade.game.games.moba.MobaPlayer; +import nautilus.game.arcade.game.games.moba.kit.HeroKit; import nautilus.game.arcade.game.modules.CustomScoreboardModule; import nautilus.game.arcade.game.modules.TrainingGameModule; import nautilus.game.arcade.scoreboard.GameScoreboard; import org.bukkit.ChatColor; import org.bukkit.Location; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.entity.Skeleton; import org.bukkit.entity.Villager; +import org.bukkit.entity.Villager.Profession; import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerInteractAtEntityEvent; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import java.util.concurrent.TimeUnit; import java.util.function.Function; public class MobaTraining extends Moba @@ -45,17 +52,63 @@ public class MobaTraining extends Moba private static final String[][] HELP_HOLOGRAMS = { { - + C.cYellow + "Welcome to " + C.cGreen + "Heroes of GWEN", + C.cYellow + "Here you can use learn about the game", + C.cYellow + "and test out the Heroes.", + C.cYellow + "If you know what you are doing you can type", + C.cGreen + "/skip" + C.cYellow + " to skip to the end of the tutorial." + }, + { + C.cGreen + "Heroes of GWEN" + C.cYellow + " is a MOBA style game.", + C.cYellow + "There are " + C.cGreen + "4" + C.cYellow + " Roles of Heroes to play", + C.cYellow + "with many different Heroes within each role." + }, + { + C.cYellow + "This is a " + C.cGreen + "Tower", + C.cYellow + "You need to destroy these in order to be able", + C.cYellow + "to attack the other team's " + C.cGreen + "Wither" + C.cYellow + " to win the game." + }, + { + C.cYellow + "This is a " + C.cGreen + "Beacon", + C.cYellow + "You can capture these for your team.", + C.cYellow + "Capturing and holding these increases the amount", + C.cYellow + "of " + C.cGold + "Gold" + C.cYellow + " your team earns." + }, + { + C.cYellow + "The is the " + C.cDRedB + "Pumpkin King", + C.cYellow + "He spawns at " + C.cGreen + "10 minutes" + C.cYellow + " into the game.", + C.cYellow + "The team that kills him will be given increased", + C.cYellow + "regeneration and damage." + }, + { + C.cYellow + "Once all of the enemy's towers are destroyed", + C.cYellow + "your team can attack their " + C.cGreen + "Wither", + C.cYellow + "Once the Wither is killed the game is over!" + }, + { + C.cGreen + "Minions" + C.cYellow + " spawn for both teams periodically", + C.cYellow + "and make their way to each other's bases.", + C.cYellow + "They will fight each other and help destroy enemy Towers." + }, + { + C.cYellow + "With the " + C.cGold + "Gold" + C.cYellow + "you earn you can", + C.cYellow + "spend it on upgrades for your weapons and armor.", + C.cYellow + "You can do this via the gold ingot in your inventory", + C.cYellow + "during the game or by clicking on the Villager." + }, + { + C.cYellow + "Now you know the basics", + C.cYellow + "Click on this NPC to select a Hero", + C.cYellow + "to try out!" } }; + private static final long GAME_TIME = TimeUnit.HOURS.toMillis(3); private static final int GOLD = 100000; private Location _borderA; private Location _borderB; private Location _selectKit; private LivingEntity _selectKitEntity; - private Function _safeFunction = player -> UtilAlg.inBoundingBox(player.getLocation(), _borderA, _borderB); - private Function _teamFunction = player -> GetTeam(ChatColor.YELLOW); private final Set _entities = new HashSet<>(); @@ -64,10 +117,13 @@ public class MobaTraining extends Moba super(manager, GameType.MOBATraining, DESCRIPTION); DamageTeamSelf = true; + DamageFall = false; + DeathOut = false; DeathSpectateSecs = 0; PrepareTime = 500; GiveClock = false; HideTeamSheep = true; + HungerSet = 20; // Prevent the wither from being damaged as well as to not spawn the pumpkin king _boss.setDummyBosses(true); @@ -75,11 +131,13 @@ public class MobaTraining extends Moba // Disable minions _minion.disableMinions(); + Function safeFunction = player -> UtilAlg.inBoundingBox(player.getLocation(), _borderA, _borderB); + Function teamFunction = player -> GetTeam(ChatColor.GRAY); new TrainingGameModule() .setGiveReturnToSpawn(false) - .setSkillFunction(_safeFunction) - .setDamageFunction(_safeFunction) - .setTeamFunction(_teamFunction) + .setSkillFunction(safeFunction) + .setDamageFunction(safeFunction) + .setTeamFunction(teamFunction) .register(this); new CustomScoreboardModule() @@ -128,6 +186,18 @@ public class MobaTraining extends Moba .setUnderName((perspective, subject) -> (int) (Math.ceil(subject.getHealth() / 2D))) .register(this); + + registerDebugCommand(new DebugCommand("skip", Rank.ALL) + { + @Override + public void Execute(Player caller, String[] args) + { + if (!safeFunction.apply(caller)) + { + caller.teleport(GetTeam(ChatColor.YELLOW).GetSpawn()); + } + } + }); } private void write(Player player, GameScoreboard scoreboard) @@ -140,7 +210,7 @@ public class MobaTraining extends Moba scoreboard.writeNewLine(); scoreboard.write(C.cYellowB + "Hero"); - scoreboard.write(mobaPlayer.getKit().GetName() + " (" + mobaPlayer.getRole().getChatColor() + mobaPlayer.getRole().getName() + C.cWhite + ")"); + scoreboard.write(mobaPlayer.getKit().GetName() + " (" + mobaPlayer.getRole().getName() + C.cWhite + ")"); } scoreboard.writeNewLine(); @@ -162,6 +232,8 @@ public class MobaTraining extends Moba scoreboard.write(C.cYellowB + "Time"); scoreboard.write(UtilTime.MakeStr(System.currentTimeMillis() - GetStateTime())); + + scoreboard.writeNewLine(); } @Override @@ -175,6 +247,7 @@ public class MobaTraining extends Moba _borderB = locations.get(1); _selectKit = WorldData.GetCustomLocs("SELECT_KIT").get(0); + SpectatorSpawn = _selectKit; } @EventHandler @@ -195,9 +268,10 @@ public class MobaTraining extends Moba location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, _selectKit))); } + Location center = WorldData.GetCustomLocs("CENTER").get(0); for (Location location : WorldData.GetDataLocs("LIME")) { - location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, SpectatorSpawn))); + location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, center))); } } @@ -208,19 +282,54 @@ public class MobaTraining extends Moba { return; } + { + GameTeam players = GetTeam(ChatColor.RED); + players.SetColor(ChatColor.GRAY); + players.SetName("Players"); + players.setDisplayName(C.cYellowB + "Players"); + } + { + GameTeam players = GetTeam(ChatColor.GREEN); + players.SetColor(ChatColor.YELLOW); + players.SetName("Players"); + players.setDisplayName(C.cYellowB + "Players"); + } + } - GameTeam players = GetTeam(ChatColor.GRAY); - players.SetColor(ChatColor.GRAY); - players.SetName("Players"); - players.setDisplayName(C.cYellow + "Players"); + @Override + public GameTeam ChooseTeam(Player player) + { + return GetTeam(ChatColor.GRAY); + } + + @Override + public void EndCheck() + { + if (!IsLive()) + { + return; + } + + if (UtilTime.elapsed(GetStateTime(), GAME_TIME)) + { + SetState(GameState.Dead); + } } @EventHandler - public void giveGold(PlayerStateChangeEvent event) + public void giveGold(UpdateEvent event) { - if (event.GetState() == PlayerState.IN) + if (event.getType() != UpdateType.SEC) { - _goldManager.addGold(event.GetPlayer(), GOLD); + return; + } + + for (Player player : GetPlayers(true)) + { + if (_goldManager.getGold(player) < 100) + { + _goldManager.addGold(player, GOLD); + } } } @@ -261,10 +370,44 @@ public class MobaTraining extends Moba if (_selectKitEntity != null && _selectKitEntity.equals(event.GetDamageeEntity())) { - teleportIntoArena(event.GetDamagerPlayer(false)); + openMenu(event.GetDamagerPlayer(false)); } } + @EventHandler + public void entityInteract(PlayerInteractAtEntityEvent event) + { + if (_selectKitEntity != null && event.getRightClicked().equals(_selectKitEntity)) + { + openMenu(event.getPlayer()); + } + } + + @EventHandler + public void updateEntityLocation(UpdateEvent event) + { + if (event.getType() != UpdateType.TICK) + { + return; + } + + for (LivingEntity entity : _entities) + { + Location location = entity.getLocation(); + ((CraftEntity) entity).getHandle().setPosition(location.getX(), location.getY(), location.getZ()); + } + } + + private void openMenu(Player player) + { + if (player == null) + { + return; + } + + new SelectKitMenu(Manager).open(player); + } + private void spawnHelpText() { Map locationMap = getLocationStartsWith("HELP"); @@ -272,9 +415,9 @@ public class MobaTraining extends Moba for (Entry entry : locationMap.entrySet()) { String[] split = entry.getKey().split(" "); - String index = split[0]; + String index = split[1]; int indexInt = Integer.parseInt(index); - String[] display = HELP_HOLOGRAMS[indexInt]; + String[] display = HELP_HOLOGRAMS[indexInt - 1]; new Hologram(Manager.getHologramManager(), entry.getValue(), true, display).start(); } @@ -308,29 +451,32 @@ public class MobaTraining extends Moba { Location location = WorldData.GetCustomLocs("DUMMY_SHOP").get(0); Villager villager = location.getWorld().spawn(location, Villager.class); + villager.setProfession(Profession.LIBRARIAN); villager.setCustomName(C.cGoldB + "Gold Upgrades"); + + _entities.add(villager); } } private void spawnNPCs() { Villager villager = WorldData.World.spawn(_selectKit, Villager.class); - villager.setCustomName(C.cYellow + "Select A Hero"); - UtilEnt.CreatureLook(villager, WorldData.GetDataLocs("LIME").get(0)); + villager.setCustomName(C.cYellowB + "Select A Hero"); + UtilEnt.CreatureLook(villager, GetTeam(ChatColor.YELLOW).GetSpawns().get(0)); _entities.add(villager); _selectKitEntity = villager; - } - private void teleportIntoArena(Player player) + public void teleportIntoArena(Player player, HeroKit kit) { - if (player == null) + if (!kit.equals(GetKit(player))) { - return; + _shop.clearPurchases(player); } player.teleport(UtilAlg.Random(WorldData.GetDataLocs("LIME"))); SetPlayerTeam(player, GetTeam(ChatColor.YELLOW), true); + SetKit(player, kit, true); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/SelectKitMenu.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/SelectKitMenu.java new file mode 100644 index 000000000..6b1287d6e --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/SelectKitMenu.java @@ -0,0 +1,70 @@ +package nautilus.game.arcade.game.games.moba.training; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.UtilUI; +import mineplex.core.itemstack.ItemBuilder; +import mineplex.core.menu.Button; +import mineplex.core.menu.Menu; +import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.game.games.moba.kit.HeroKit; +import nautilus.game.arcade.kit.Perk; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; +import org.bukkit.inventory.ItemStack; + +public class SelectKitMenu extends Menu +{ + + public SelectKitMenu(ArcadeManager plugin) + { + super("Select A Hero", plugin); + } + + @Override + protected Button[] setUp(Player player) + { + MobaTraining moba = (MobaTraining) getPlugin().GetGame(); + Button[] buttons = new Button[36]; + int[] slots = UtilUI.getIndicesFor(moba.GetKits().length, 1); + int i = 0; + + for (int slot : slots) + { + HeroKit kit = (HeroKit) moba.GetKits()[i++]; + ItemBuilder builder = new ItemBuilder(kit.getSkinData().getSkull()); + + builder.setTitle(C.cGreen + kit.GetName()); + builder.addLore("", "Skills:"); + + for (Perk perk : kit.GetPerks()) + { + builder.addLore(C.cWhite + " - " + C.cYellow + perk.GetName()); + } + + builder.addLore("", C.cGreen + "Click to join the arena with this kit!"); + + buttons[slot] = new SelectKitButton(builder.build(), getPlugin(), kit); + } + + return buttons; + } + + private class SelectKitButton extends Button + { + + private final HeroKit _kit; + + private SelectKitButton(ItemStack item, ArcadeManager plugin, HeroKit kit) + { + super(item, plugin); + + _kit = kit; + } + + @Override + public void onClick(Player player, ClickType clickType) + { + ((MobaTraining) getPlugin().GetGame()).teleportIntoArena(player, _kit); + } + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/TrainingGameModule.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/TrainingGameModule.java index 45dbf6e46..15f877ec2 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/TrainingGameModule.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/TrainingGameModule.java @@ -62,6 +62,12 @@ public class TrainingGameModule extends Module List locations = getGame().WorldData.GetDataLocs("PURPLE"); int i = 0; + + if (locations.isEmpty()) + { + return; + } + getGame().CreatureAllowOverride = true; for (Kit kit : getGame().GetKits()) From 21c7b082b0421280ee83d83b9c633e498a6267ce Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 23 Jun 2017 01:43:38 +0100 Subject: [PATCH 10/56] Add a method to clear purchases --- .../nautilus/game/arcade/game/games/moba/shop/MobaShop.java | 5 +++++ 1 file changed, 5 insertions(+) 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 f2707a965..a28a1acb2 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 @@ -251,6 +251,11 @@ public class MobaShop implements Listener return null; } + public void clearPurchases(Player player) + { + _upgrades.remove(player); + } + @EventHandler public void playerDeath(PlayerDeathEvent event) { From 291296829573fdd3ee6b6d2ecc319f3015e4b8fe Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 23 Jun 2017 01:51:16 +0100 Subject: [PATCH 11/56] Fix movable NPCs --- .../arcade/game/games/moba/shop/MobaShop.java | 10 +++++-- .../games/moba/training/MobaTraining.java | 27 ++++++++++--------- 2 files changed, 23 insertions(+), 14 deletions(-) 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 a28a1acb2..0fca426e2 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 @@ -27,6 +27,7 @@ import nautilus.game.arcade.game.games.moba.shop.warrior.MobaWarriorShop; import nautilus.game.arcade.game.games.moba.util.MobaConstants; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftLivingEntity; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; @@ -131,7 +132,7 @@ public class MobaShop implements Listener LivingEntity entity = entry.getKey(); Location location = entry.getValue(); - ((CraftLivingEntity) entity).getHandle().setPosition(location.getX(), location.getY(), location.getZ()); + ((CraftEntity) entity).getHandle().setPosition(location.getX(), location.getY(), location.getZ()); } } @@ -253,7 +254,7 @@ public class MobaShop implements Listener public void clearPurchases(Player player) { - _upgrades.remove(player); + _upgrades.put(player, new ArrayList<>()); } @EventHandler @@ -327,6 +328,11 @@ public class MobaShop implements Listener Player player = event.getPlayer(); List items = _upgrades.get(player); + if (items == null) + { + return; + } + for (MobaItem item : items) { if (item.getEffects() == null) 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 35fd2bc74..1b68e0af7 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 @@ -21,6 +21,7 @@ import nautilus.game.arcade.game.games.moba.MobaPlayer; import nautilus.game.arcade.game.games.moba.kit.HeroKit; import nautilus.game.arcade.game.modules.CustomScoreboardModule; import nautilus.game.arcade.game.modules.TrainingGameModule; +import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.scoreboard.GameScoreboard; import org.bukkit.ChatColor; import org.bukkit.Location; @@ -34,11 +35,10 @@ import org.bukkit.entity.Villager.Profession; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerInteractAtEntityEvent; -import java.util.HashSet; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.function.Function; @@ -110,7 +110,7 @@ public class MobaTraining extends Moba private Location _selectKit; private LivingEntity _selectKitEntity; - private final Set _entities = new HashSet<>(); + private final Map _entities = new HashMap<>(); public MobaTraining(ArcadeManager manager) { @@ -347,7 +347,7 @@ public class MobaTraining extends Moba spawnDummies(); spawnNPCs(); - for (LivingEntity entity : _entities) + for (LivingEntity entity : _entities.keySet()) { entity.setCustomNameVisible(true); UtilEnt.vegetate(entity); @@ -361,7 +361,7 @@ public class MobaTraining extends Moba @EventHandler public void entityDamage(CustomDamageEvent event) { - if (!_entities.contains(event.GetDamageeEntity())) + if (!_entities.containsKey(event.GetDamageeEntity())) { return; } @@ -391,9 +391,11 @@ public class MobaTraining extends Moba return; } - for (LivingEntity entity : _entities) + for (Entry entry : _entities.entrySet()) { - Location location = entity.getLocation(); + LivingEntity entity = entry.getKey(); + Location location = entry.getValue(); + ((CraftEntity) entity).getHandle().setPosition(location.getX(), location.getY(), location.getZ()); } } @@ -430,7 +432,7 @@ public class MobaTraining extends Moba skeleton.setCustomName(C.cDRedB + "Pumpkin King"); UtilEnt.CreatureLook(skeleton, 90); - _entities.add(skeleton); + _entities.put(skeleton, skeleton.getLocation()); } { Location location = WorldData.GetCustomLocs("DUMMY_WITHER").get(0); @@ -446,7 +448,7 @@ public class MobaTraining extends Moba disguise.setCustomNameVisible(true); Manager.GetDisguise().disguise(disguise); - _entities.add(stand); + _entities.put(stand, stand.getLocation()); } { Location location = WorldData.GetCustomLocs("DUMMY_SHOP").get(0); @@ -454,7 +456,7 @@ public class MobaTraining extends Moba villager.setProfession(Profession.LIBRARIAN); villager.setCustomName(C.cGoldB + "Gold Upgrades"); - _entities.add(villager); + _entities.put(villager, villager.getLocation()); } } @@ -464,13 +466,14 @@ public class MobaTraining extends Moba villager.setCustomName(C.cYellowB + "Select A Hero"); UtilEnt.CreatureLook(villager, GetTeam(ChatColor.YELLOW).GetSpawns().get(0)); - _entities.add(villager); + _entities.put(villager, villager.getLocation()); _selectKitEntity = villager; } public void teleportIntoArena(Player player, HeroKit kit) { - if (!kit.equals(GetKit(player))) + Kit currentKit = GetKit(player); + if (currentKit == null || !kit.equals(currentKit)) { _shop.clearPurchases(player); } From b1c3b2c93772d5944869643a40025380c8cd0975 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 23 Jun 2017 02:11:17 +0100 Subject: [PATCH 12/56] Balance changes and QOL changes --- .../game/games/moba/kit/anath/SkillFireProjectile.java | 3 ++- .../arcade/game/games/moba/kit/bardolf/SkillFullMoon.java | 6 ++++++ .../arcade/game/games/moba/kit/hattori/SkillSnowball.java | 2 +- .../arcade/game/games/moba/kit/larissa/SkillAquaCannon.java | 3 ++- .../arcade/game/games/moba/kit/rowena/SkillBombardment.java | 4 ---- .../arcade/game/games/moba/kit/rowena/SkillLightArrows.java | 2 +- .../game/games/moba/shop/assassin/MobaAssassinShop.java | 2 +- 7 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/SkillFireProjectile.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/SkillFireProjectile.java index 59b39a822..2fd704386 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/SkillFireProjectile.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/SkillFireProjectile.java @@ -1,6 +1,7 @@ package nautilus.game.arcade.game.games.moba.kit.anath; import mineplex.core.common.util.UtilEvent.ActionType; +import mineplex.core.recharge.Recharge; import nautilus.game.arcade.game.games.moba.Moba; import nautilus.game.arcade.game.games.moba.kit.HeroSkill; import nautilus.game.arcade.game.games.moba.util.MobaConstants; @@ -37,7 +38,7 @@ public class SkillFireProjectile extends HeroSkill Player player = event.getPlayer(); - if (!_kit.useAmmo(player, 1)) + if (!Recharge.Instance.use(player, GetName(), 500, false, true) || !_kit.useAmmo(player, 1)) { return; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillFullMoon.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillFullMoon.java index c68fab17d..e2cf73353 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillFullMoon.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillFullMoon.java @@ -89,6 +89,12 @@ public class SkillFullMoon extends HeroSkill kit.disguise(player); player.setWalkSpeed(player.getWalkSpeed() - data.getLastSpeedIncrease()); + ItemStack itemStack = player.getInventory().getItem(1); + if (itemStack != null) + { + itemStack.setAmount(1); + } + for (Wolf wolf : data.getWolves()) { wolf.setHealth(0); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hattori/SkillSnowball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hattori/SkillSnowball.java index f1d06a1dc..094700d99 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hattori/SkillSnowball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hattori/SkillSnowball.java @@ -33,7 +33,7 @@ public class SkillSnowball extends HeroSkill implements IThrown { super("Shuriken", DESCRIPTION, SKILL_ITEM, slot, ActionType.ANY); - setCooldown(1000); + setCooldown(1500); } @EventHandler 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 b137f3c32..e2f7b1c9f 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 @@ -7,6 +7,7 @@ import mineplex.core.common.util.UtilParticle.ParticleType; import mineplex.core.common.util.UtilParticle.ViewDist; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.particles.effects.LineParticle; +import mineplex.core.recharge.Recharge; import nautilus.game.arcade.game.games.moba.Moba; import nautilus.game.arcade.game.games.moba.kit.HeroSkill; import nautilus.game.arcade.game.games.moba.structure.tower.TowerManager; @@ -46,7 +47,7 @@ public class SkillAquaCannon extends HeroSkill Player player = event.getPlayer(); - if (!_kit.useAmmo(player, 1)) + if (!Recharge.Instance.use(player, GetName(), 500, false, true) || !_kit.useAmmo(player, 1)) { return; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillBombardment.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillBombardment.java index cdb3e4838..3607c0f5c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillBombardment.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillBombardment.java @@ -148,10 +148,6 @@ public class SkillBombardment extends HeroSkill data.Block.setType(Material.AIR); iterator.remove(); } - else if (data.Block != null) - { - UtilParticle.PlayParticleToAll(ParticleType.CLOUD, data.Block.getLocation().add(0.5, 0.5, 0.5), 0.5F, 0.5F, 0.5F, 0.001F, 3, ViewDist.LONG); - } } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillLightArrows.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillLightArrows.java index d4037aa5f..4756d65eb 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillLightArrows.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillLightArrows.java @@ -127,7 +127,7 @@ public class SkillLightArrows extends HeroSkill { LineParticle lineParticle = iterator.next(); - for (int i = 0; i < 4; i++) + for (int i = 0; i < 6; i++) { if (!lineParticle.update()) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/assassin/MobaAssassinShop.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/assassin/MobaAssassinShop.java index 96c28be81..052ced61a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/assassin/MobaAssassinShop.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/assassin/MobaAssassinShop.java @@ -30,7 +30,7 @@ public class MobaAssassinShop extends MobaShopMenu .build(), 1000), new MobaItem(new ItemBuilder(Material.DIAMOND_SWORD) .setTitle(C.cDRedB + "Pumpkin King's Blade") - .addEnchantment(Enchantment.DAMAGE_ALL, 3) + .addEnchantment(Enchantment.DAMAGE_ALL, 2) .build(), 1750) ), new ItemStack(Material.WOOD_SWORD)); From 037450687908d789f15c0cb8e03733936f19e89a Mon Sep 17 00:00:00 2001 From: cnr Date: Thu, 22 Jun 2017 23:20:07 -0500 Subject: [PATCH 13/56] Disable beta whitelist for MOBA --- .../nautilus/game/arcade/game/games/moba/Moba.java | 14 -------------- 1 file changed, 14 deletions(-) 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 66274c97e..c584057fe 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 @@ -1,7 +1,6 @@ package nautilus.game.arcade.game.games.moba; import mineplex.core.Managers; -import mineplex.core.beta.BetaWhitelist; import mineplex.core.common.Pair; import mineplex.core.common.Rank; import mineplex.core.common.util.F; @@ -86,7 +85,6 @@ public class Moba extends TeamGame protected final TowerManager _tower; protected final CapturePointManager _capturePoint; protected final MinionManager _minion; - private BetaWhitelist _betaWhitelist; private int _inPlayers; @@ -131,17 +129,6 @@ public class Moba extends TeamGame // Beta Message registerManager(new BetaManager(this)); - // Beta Whitelist - _betaWhitelist = Managers.get(BetaWhitelist.class); - if (_betaWhitelist == null) - { - _betaWhitelist = new BetaWhitelist(manager.GetClients(), manager.getBonusManager().getPowerPlayClubRepository()); - } - else - { - _betaWhitelist.registerSelf(); - } - new CompassModule() .setGiveCompass(true) .setGiveCompassToSpecs(true) @@ -280,7 +267,6 @@ public class Moba extends TeamGame super.disable(); _listeners.forEach(UtilServer::Unregister); _listeners.clear(); - _betaWhitelist.deregisterSelf(); // Undisguise all players for (Player player : Bukkit.getOnlinePlayers()) From a6493ed18a31a68c49307e6b1fa079b6ae00a959 Mon Sep 17 00:00:00 2001 From: md_5 Date: Fri, 23 Jun 2017 13:55:48 +1000 Subject: [PATCH 14/56] Update MapParser to 1.12, refactor out some common base utilities. --- Plugins/Mineplex.Core.Common.Base/pom.xml | 20 ++++ .../mineplex/core/common/DefaultHashMap.java | 0 .../mineplex/core/common/GenericRunnable.java | 0 .../mineplex/core/common/GsonLocation.java | 0 .../mineplex/core/common/MaterialData.java | 0 .../core/common/MinecraftVersion.java | 0 .../src/mineplex/core/common/Pair.java | 0 .../mineplex/core/common/ProcessRunner.java | 0 .../core/common/RangeShuffleIterator.java | 0 .../src/mineplex/core/common/Rank.java | 4 +- .../src/mineplex/core/common/TriConsumer.java | 0 .../core/common/currency/Currency.java | 0 .../core/common/currency/GlobalCurrency.java | 0 .../events/EntityVelocityChangeEvent.java | 0 .../common/events/PlayerMessageEvent.java | 0 .../events/PlayerRecieveBroadcastEvent.java | 0 .../common/events/ServerShutdownEvent.java | 0 .../src/mineplex/core/common/util/C.java | 0 .../mineplex/core/common/util/Callback.java | 0 .../src/mineplex/core/common/util/F.java | 0 .../core/common/util/NautArrayList.java | 0 .../core/common/util/NautHashMap.java | 2 +- .../core/common/util/UtilBlockBase.java | 38 ++++++++ .../core/common/util/UtilCollections.java | 0 .../mineplex/core/common/util/UtilEvent.java | 0 .../mineplex/core/common/util/UtilGear.java | 0 .../mineplex/core/common/util/UtilMath.java | 0 .../core/common/util/UtilPlayerBase.java | 97 +++++++++++++++++++ .../mineplex/core/common/util/UtilTime.java | 11 --- .../mineplex/core/common/util/UtilWorld.java | 24 +---- .../mineplex/core/common/util/ZipUtil.java | 0 Plugins/Mineplex.Core.Common/pom.xml | 5 + .../mineplex/core/common/util/UtilBlock.java | 25 +---- .../mineplex/core/common/util/UtilPlayer.java | 67 +------------ .../candycane/ArrowTrailCandyCane.java | 5 +- .../game/clans/world/WorldManager.java | 10 +- Plugins/Mineplex.MapParser/pom.xml | 6 +- .../src/mineplex/mapparser/MapParser.java | 12 +-- .../src/mineplex/mapparser/WorldManager.java | 5 +- .../mapparser/command/AdminCommand.java | 4 +- .../mapparser/command/BaseCommand.java | 4 +- .../mapparser/command/CopyCommand.java | 3 +- .../mapparser/command/DeleteCommand.java | 3 +- .../mapparser/command/GameTypeCommand.java | 3 +- .../mapparser/command/ListCommand.java | 6 +- .../mapparser/command/MapCommand.java | 12 +-- .../mineplex/mapparser/command/PMCommand.java | 5 +- .../mapparser/command/RenameCommand.java | 3 +- .../mapparser/command/SaveCommand.java | 7 +- .../mapparser/command/WorldsCommand.java | 2 - .../module/modules/CommandModule.java | 8 +- .../mapparser/module/modules/EventModule.java | 18 ++-- .../game/games/halloween2016/Crypt.java | 7 +- Plugins/pom.xml | 21 +++- 54 files changed, 254 insertions(+), 183 deletions(-) create mode 100644 Plugins/Mineplex.Core.Common.Base/pom.xml rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/DefaultHashMap.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/GenericRunnable.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/GsonLocation.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/MaterialData.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/MinecraftVersion.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/Pair.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/ProcessRunner.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/RangeShuffleIterator.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/Rank.java (98%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/TriConsumer.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/currency/Currency.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/currency/GlobalCurrency.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/events/EntityVelocityChangeEvent.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/events/PlayerMessageEvent.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/events/PlayerRecieveBroadcastEvent.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/events/ServerShutdownEvent.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/util/C.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/util/Callback.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/util/F.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/util/NautArrayList.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/util/NautHashMap.java (97%) create mode 100644 Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilBlockBase.java rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/util/UtilCollections.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/util/UtilEvent.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/util/UtilGear.java (100%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/util/UtilMath.java (100%) create mode 100644 Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilPlayerBase.java rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/util/UtilTime.java (96%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/util/UtilWorld.java (88%) rename Plugins/{Mineplex.Core.Common => Mineplex.Core.Common.Base}/src/mineplex/core/common/util/ZipUtil.java (100%) diff --git a/Plugins/Mineplex.Core.Common.Base/pom.xml b/Plugins/Mineplex.Core.Common.Base/pom.xml new file mode 100644 index 000000000..e3697fb8a --- /dev/null +++ b/Plugins/Mineplex.Core.Common.Base/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + + com.mineplex + mineplex-parent + dev-SNAPSHOT + + + mineplex-core-common-base + + + + org.spigotmc + spigot-api + + + diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/DefaultHashMap.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/DefaultHashMap.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/DefaultHashMap.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/DefaultHashMap.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/GenericRunnable.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/GenericRunnable.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/GenericRunnable.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/GenericRunnable.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/GsonLocation.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/GsonLocation.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/GsonLocation.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/GsonLocation.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/MaterialData.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/MaterialData.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/MaterialData.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/MaterialData.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/MinecraftVersion.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/MinecraftVersion.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/MinecraftVersion.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/MinecraftVersion.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/Pair.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/Pair.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/Pair.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/Pair.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/ProcessRunner.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/ProcessRunner.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/ProcessRunner.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/ProcessRunner.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/RangeShuffleIterator.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/RangeShuffleIterator.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/RangeShuffleIterator.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/RangeShuffleIterator.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/Rank.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/Rank.java similarity index 98% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/Rank.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/Rank.java index 834c1eff4..9b2a37f9a 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/Rank.java +++ b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/Rank.java @@ -6,7 +6,7 @@ import org.bukkit.entity.Player; import mineplex.core.common.util.C; import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilPlayerBase; public enum Rank { @@ -122,7 +122,7 @@ public enum Rank if (inform) { - UtilPlayer.message(player, C.mHead + "Permissions> " + + UtilPlayerBase.message(player, C.mHead + "Permissions> " + C.mBody + "This requires Permission Rank [" + C.mHead + rank.Name.toUpperCase() + C.mBody + "]."); diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/TriConsumer.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/TriConsumer.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/TriConsumer.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/TriConsumer.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/currency/Currency.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/currency/Currency.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/currency/Currency.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/currency/Currency.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/currency/GlobalCurrency.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/currency/GlobalCurrency.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/currency/GlobalCurrency.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/currency/GlobalCurrency.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/events/EntityVelocityChangeEvent.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/events/EntityVelocityChangeEvent.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/events/EntityVelocityChangeEvent.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/events/EntityVelocityChangeEvent.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/events/PlayerMessageEvent.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/events/PlayerMessageEvent.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/events/PlayerMessageEvent.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/events/PlayerMessageEvent.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/events/PlayerRecieveBroadcastEvent.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/events/PlayerRecieveBroadcastEvent.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/events/PlayerRecieveBroadcastEvent.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/events/PlayerRecieveBroadcastEvent.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/events/ServerShutdownEvent.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/events/ServerShutdownEvent.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/events/ServerShutdownEvent.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/events/ServerShutdownEvent.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/C.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/C.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/C.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/C.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/Callback.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/Callback.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/Callback.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/Callback.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/F.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/F.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/F.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/F.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/NautArrayList.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/NautArrayList.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/NautArrayList.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/NautArrayList.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/NautHashMap.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/NautHashMap.java similarity index 97% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/NautHashMap.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/NautHashMap.java index 2f43abed9..41f9d442c 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/NautHashMap.java +++ b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/NautHashMap.java @@ -4,7 +4,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map.Entry; -import org.apache.commons.lang3.Validate; +import org.apache.commons.lang.Validate; import java.util.Set; diff --git a/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilBlockBase.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilBlockBase.java new file mode 100644 index 000000000..12c090a72 --- /dev/null +++ b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilBlockBase.java @@ -0,0 +1,38 @@ +package mineplex.core.common.util; + +import java.util.ArrayList; + +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; + +public class UtilBlockBase +{ + + public static ArrayList getSurrounding(Block block, boolean diagonals) + { + ArrayList blocks = new ArrayList(); + + if (diagonals) + { + for (int x = -1; x <= 1; x++) + for (int z = -1; z <= 1; z++) + for (int y = 1; y >= -1; y--) + { + if (x == 0 && y == 0 && z == 0) continue; + + blocks.add(block.getRelative(x, y, z)); + } + } + else + { + blocks.add(block.getRelative(BlockFace.UP)); + blocks.add(block.getRelative(BlockFace.NORTH)); + blocks.add(block.getRelative(BlockFace.SOUTH)); + blocks.add(block.getRelative(BlockFace.EAST)); + blocks.add(block.getRelative(BlockFace.WEST)); + blocks.add(block.getRelative(BlockFace.DOWN)); + } + + return blocks; + } +} diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilCollections.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilCollections.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilCollections.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilCollections.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilEvent.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilEvent.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilEvent.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilEvent.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilGear.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilGear.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilGear.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilGear.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilMath.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilMath.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilMath.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilMath.java diff --git a/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilPlayerBase.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilPlayerBase.java new file mode 100644 index 000000000..9b2d2b5df --- /dev/null +++ b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilPlayerBase.java @@ -0,0 +1,97 @@ +package mineplex.core.common.util; + +import java.util.LinkedList; + +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; + +import mineplex.core.common.events.PlayerMessageEvent; +import org.bukkit.Bukkit; + +public class UtilPlayerBase +{ + + public static void message(Entity client, LinkedList messageList) + { + message(client, messageList, false); + } + + public static void message(Entity client, String message) + { + message(client, message, false); + } + + public static void message(Entity client, LinkedList messageList, boolean wiki) + { + for (String curMessage : messageList) + { + message(client, curMessage, wiki); + } + } + + public static void message(Entity client, String message, boolean wiki) + { + if (client == null) + return; + + if (!(client instanceof Player)) + return; + + /* + if (wiki) + message = UtilWiki.link(message); + */ + + PlayerMessageEvent event = new PlayerMessageEvent((Player) client, message); + Bukkit.getPluginManager().callEvent(event); + + if (event.isCancelled()) + return; + + + ((Player) client).sendMessage(message); + } + + public static Player searchOnline(Player caller, String player, boolean inform) + { + LinkedList matchList = new LinkedList(); + + for (Player cur : Bukkit.getOnlinePlayers()) + { + if (cur.getName().equalsIgnoreCase(player)) + return cur; + + if (cur.getName().toLowerCase().contains(player.toLowerCase())) + matchList.add(cur); + } + + // No / Non-Unique + if (matchList.size() != 1) + { + if (!inform) + return null; + + // Inform + message(caller, + F.main("Online Player Search", "" + C.mCount + matchList.size() + C.mBody + " matches for [" + C.mElem + + player + C.mBody + "].")); + + if (matchList.size() > 0) + { + String matchString = ""; + for (Player cur : matchList) + matchString += F.elem(cur.getName()) + ", "; + if (matchString.length() > 1) + matchString = matchString.substring(0, matchString.length() - 2); + + message(caller, + F.main("Online Player Search", "" + C.mBody + "Matches [" + C.mElem + matchString + C.mBody + "].")); + } + + return null; + } + + return matchList.get(0); + } + +} diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilTime.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilTime.java similarity index 96% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilTime.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilTime.java index 815c56f5e..712e73b3d 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilTime.java +++ b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilTime.java @@ -6,8 +6,6 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.util.Calendar; -import net.minecraft.server.v1_8_R3.MinecraftServer; - public class UtilTime { public static final ZoneId CENTRAL_ZONE = ZoneId.of("America/Chicago"); // This means "CST" @@ -54,15 +52,6 @@ public class UtilTime } } - /** - * - * @return Returns the current global server tick. Is reset on server restart. Starts out negative. Counts upwards. - */ - public static int getServerTick() - { - return MinecraftServer.currentTick; - } - /** * Converts a {@link Timestamp} to a {@link LocalDateTime}. * This method will only work for timestamp's stored using {@link #CENTRAL_ZONE}, if stored using diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilWorld.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilWorld.java similarity index 88% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilWorld.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilWorld.java index 86c6083f2..b0d4bd9bc 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilWorld.java +++ b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilWorld.java @@ -3,6 +3,7 @@ package mineplex.core.common.util; import java.util.Collection; import java.util.List; +import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.World; @@ -10,19 +11,16 @@ import org.bukkit.World.Environment; import org.bukkit.WorldBorder; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Entity; import org.bukkit.util.Vector; import com.google.common.collect.Lists; -import net.minecraft.server.v1_8_R3.AxisAlignedBB; - public class UtilWorld { public static World getWorld(String world) { - return UtilServer.getServer().getWorld(world); + return Bukkit.getServer().getWorld(world); } public static boolean areChunksEqual(Location first, Location second) @@ -100,7 +98,7 @@ public class UtilWorld try { - for (World cur : UtilServer.getServer().getWorlds()) + for (World cur : Bukkit.getServer().getWorlds()) { if (cur.getName().equalsIgnoreCase(parts[0])) { @@ -154,7 +152,7 @@ public class UtilWorld try { - for (World cur : UtilServer.getServer().getWorlds()) + for (World cur : Bukkit.getServer().getWorlds()) { if (cur.getName().equalsIgnoreCase(tokens[0])) { @@ -188,7 +186,7 @@ public class UtilWorld public static World getWorldType(Environment env) { - for (World cur : UtilServer.getServer().getWorlds()) + for (World cur : Bukkit.getServer().getWorlds()) if (cur.getEnvironment() == env) return cur; @@ -305,16 +303,4 @@ public class UtilWorld return startX >= minX && startZ <= maxX && endX >= minZ && endZ <= maxZ; } - - public static double distanceSquared(Entity a, Entity b) - { - if (a.getWorld() != b.getWorld()) - throw new IllegalArgumentException("Different worlds: " + a.getWorld().getName() + " and " + b.getWorld().getName()); - net.minecraft.server.v1_8_R3.Entity entityA = ((CraftEntity) a).getHandle(); - net.minecraft.server.v1_8_R3.Entity entityB = ((CraftEntity) b).getHandle(); - double dx = entityA.locX - entityB.locX; - double dy = entityA.locY - entityB.locY; - double dz = entityA.locZ - entityB.locZ; - return (dx * dx) + (dy * dy) + (dz * dz); - } } diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/ZipUtil.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/ZipUtil.java similarity index 100% rename from Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/ZipUtil.java rename to Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/ZipUtil.java diff --git a/Plugins/Mineplex.Core.Common/pom.xml b/Plugins/Mineplex.Core.Common/pom.xml index 65ec63dd8..99340a056 100644 --- a/Plugins/Mineplex.Core.Common/pom.xml +++ b/Plugins/Mineplex.Core.Common/pom.xml @@ -20,6 +20,11 @@ org.apache.httpcomponents httpclient + + ${project.groupId} + mineplex-core-common-base + ${project.version} + com.mineplex mineplex-serverdata diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilBlock.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilBlock.java index acfa65274..4370f1a2a 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilBlock.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilBlock.java @@ -615,30 +615,7 @@ public class UtilBlock public static ArrayList getSurrounding(Block block, boolean diagonals) { - ArrayList blocks = new ArrayList(); - - if (diagonals) - { - for (int x = -1; x <= 1; x++) - for (int z = -1; z <= 1; z++) - for (int y = 1; y >= -1; y--) - { - if (x == 0 && y == 0 && z == 0) continue; - - blocks.add(block.getRelative(x, y, z)); - } - } - else - { - blocks.add(block.getRelative(BlockFace.UP)); - blocks.add(block.getRelative(BlockFace.NORTH)); - blocks.add(block.getRelative(BlockFace.SOUTH)); - blocks.add(block.getRelative(BlockFace.EAST)); - blocks.add(block.getRelative(BlockFace.WEST)); - blocks.add(block.getRelative(BlockFace.DOWN)); - } - - return blocks; + return UtilBlockBase.getSurrounding(block, diagonals); } public static boolean isVisible(Block block) diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilPlayer.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilPlayer.java index 0bb9502f6..2ddd54f42 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilPlayer.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilPlayer.java @@ -348,42 +348,22 @@ public class UtilPlayer public static void message(Entity client, LinkedList messageList) { - message(client, messageList, false); + UtilPlayerBase.message(client, messageList); } public static void message(Entity client, String message) { - message(client, message, false); + UtilPlayerBase.message(client, message); } public static void message(Entity client, LinkedList messageList, boolean wiki) { - for (String curMessage : messageList) - { - message(client, curMessage, wiki); - } + UtilPlayerBase.message(client, messageList, wiki); } public static void message(Entity client, String message, boolean wiki) { - if (client == null) - return; - - if (!(client instanceof Player)) - return; - - /* - if (wiki) - message = UtilWiki.link(message); - */ - - PlayerMessageEvent event = UtilServer.CallEvent(new PlayerMessageEvent((Player) client, message)); - - if (event.isCancelled()) - return; - - - ((Player) client).sendMessage(message); + UtilPlayerBase.message(client, message, wiki); } public static Player searchExact(String name) @@ -454,44 +434,7 @@ public class UtilPlayer public static Player searchOnline(Player caller, String player, boolean inform) { - LinkedList matchList = new LinkedList(); - - for (Player cur : UtilServer.getPlayers()) - { - if (cur.getName().equalsIgnoreCase(player)) - return cur; - - if (cur.getName().toLowerCase().contains(player.toLowerCase())) - matchList.add(cur); - } - - // No / Non-Unique - if (matchList.size() != 1) - { - if (!inform) - return null; - - // Inform - message(caller, - F.main("Online Player Search", "" + C.mCount + matchList.size() + C.mBody + " matches for [" + C.mElem - + player + C.mBody + "].")); - - if (matchList.size() > 0) - { - String matchString = ""; - for (Player cur : matchList) - matchString += F.elem(cur.getName()) + ", "; - if (matchString.length() > 1) - matchString = matchString.substring(0, matchString.length() - 2); - - message(caller, - F.main("Online Player Search", "" + C.mBody + "Matches [" + C.mElem + matchString + C.mBody + "].")); - } - - return null; - } - - return matchList.get(0); + return UtilPlayerBase.searchOnline(caller, player, inform); } public static void searchOffline(List matches, final Callback callback, final Player caller, diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/candycane/ArrowTrailCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/candycane/ArrowTrailCandyCane.java index 73010a753..d45b1b023 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/candycane/ArrowTrailCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/candycane/ArrowTrailCandyCane.java @@ -10,10 +10,11 @@ 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.UtilText; -import mineplex.core.common.util.UtilTime; import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.types.ArrowEffectGadget; +import net.minecraft.server.v1_8_R3.MinecraftServer; + public class ArrowTrailCandyCane extends ArrowEffectGadget { @@ -29,7 +30,7 @@ public class ArrowTrailCandyCane extends ArrowEffectGadget public void doTrail(Arrow arrow) { int data = 15; - int tick = Math.abs(UtilTime.getServerTick()%3); + int tick = Math.abs(MinecraftServer.currentTick%3); if(tick == 1) data = 1; if(tick == 2) data = 2; Location loc = arrow.getLocation(); diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/world/WorldManager.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/world/WorldManager.java index e302d1a26..141e52cb0 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/world/WorldManager.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/world/WorldManager.java @@ -13,6 +13,7 @@ import org.bukkit.plugin.java.JavaPlugin; import mineplex.core.MiniPlugin; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; +import org.bukkit.Location; public class WorldManager extends MiniPlugin { @@ -77,6 +78,9 @@ public class WorldManager extends MiniPlugin { List players = world.getPlayers(); Map> entities = new HashMap<>(); + // For optimization reasons reuse location objects + Location entityLocation = new Location(world, 0, 0, 0); + Location playerLocation = new Location(world, 0, 0, 0); for (Entity entity : world.getEntities()) { @@ -104,11 +108,11 @@ public class WorldManager extends MiniPlugin else if (CULL_LIMITS.containsKey(entityType)) { boolean cull = true; + entity.getLocation(entityLocation); for (Player player : players) { - // Using NMS because this is going to be called quite a few times - // and each getLocation() call creates a new Location object - if (UtilWorld.distanceSquared(player, entity) <= MIN_RANGE_SQUARED) + player.getLocation(playerLocation); + if (playerLocation.distanceSquared(entityLocation) <= MIN_RANGE_SQUARED) { cull = false; break; diff --git a/Plugins/Mineplex.MapParser/pom.xml b/Plugins/Mineplex.MapParser/pom.xml index 65a7236aa..1fd1baade 100644 --- a/Plugins/Mineplex.MapParser/pom.xml +++ b/Plugins/Mineplex.MapParser/pom.xml @@ -14,9 +14,13 @@ mineplex-mapparser + + commons-io + commons-io + ${project.groupId} - mineplex-core-common + mineplex-core-common-base ${project.version} diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/MapParser.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/MapParser.java index 6fa838da5..5d62fdf65 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/MapParser.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/MapParser.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; @@ -23,9 +24,8 @@ import com.google.common.collect.Sets; import mineplex.core.common.util.C; import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilBlock; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilBlockBase; +import mineplex.core.common.util.UtilPlayerBase; import mineplex.mapparser.command.AddLoreCommand; import mineplex.mapparser.command.AddSplashTextCommand; import mineplex.mapparser.command.AdminCommand; @@ -144,7 +144,7 @@ public class MapParser extends JavaPlugin public void sendValidGameTypes(Player player) { - UtilPlayer.message(player, F.main("Parser", "Valid Game Types;")); + UtilPlayerBase.message(player, F.main("Parser", "Valid Game Types;")); String gameTypes = ""; @@ -256,7 +256,7 @@ public class MapParser extends JavaPlugin public void announce(String msg) { - for (Player player : UtilServer.getPlayers()) + for (Player player : Bukkit.getOnlinePlayers()) { player.sendMessage(C.cGold + msg); } @@ -390,7 +390,7 @@ public class MapParser extends JavaPlugin if (!blocks.add(current)) return blocks; - for (Block other : UtilBlock.getSurrounding(current, true)) + for (Block other : UtilBlockBase.getSurrounding(current, true)) { if (current.getType() != Material.LOG && current.getType() != Material.LEAVES) continue; diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/WorldManager.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/WorldManager.java index 56e3b7218..2ae2e1561 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/WorldManager.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/WorldManager.java @@ -1,6 +1,5 @@ package mineplex.mapparser; -import mineplex.core.common.util.MapUtil; import mineplex.core.common.util.ZipUtil; import org.apache.commons.io.FileUtils; import org.bukkit.Bukkit; @@ -24,7 +23,7 @@ public class WorldManager public World prepMapParse(World world) { //Unload World - MapUtil.UnloadWorld(Host, world, true); + Host.getServer().unloadWorld(world, true); //Delete Non-Map Files String[] folders = new File(world.getName()).list(); @@ -69,7 +68,7 @@ public class WorldManager public void finalizeParsedWorld(World world) { - MapUtil.UnloadWorld(Host, world, true); + Host.getServer().unloadWorld(world, true); ArrayList fileList = new ArrayList(); ArrayList dirList = new ArrayList(); diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/AdminCommand.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/AdminCommand.java index 962a5813a..b808c2796 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/AdminCommand.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/AdminCommand.java @@ -4,7 +4,7 @@ import org.bukkit.World; import org.bukkit.entity.Player; import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilPlayerBase; import mineplex.mapparser.MapData; import mineplex.mapparser.MapParser; @@ -42,7 +42,7 @@ public class AdminCommand extends BaseCommand return true; } - Player other = UtilPlayer.searchOnline(player, args[0], true); + Player other = UtilPlayerBase.searchOnline(player, args[0], true); if (player != null) { diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/BaseCommand.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/BaseCommand.java index 16552b9b0..951c0f6a4 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/BaseCommand.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/BaseCommand.java @@ -6,7 +6,7 @@ import java.util.List; import org.bukkit.entity.Player; import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilPlayerBase; import mineplex.mapparser.MapParser; /** @@ -59,6 +59,6 @@ public abstract class BaseCommand protected void message(Player player, String message) { - UtilPlayer.message(player, F.main("Parser", message)); + UtilPlayerBase.message(player, F.main("Parser", message)); } } diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/CopyCommand.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/CopyCommand.java index 4354a90a1..ea1b4e6ea 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/CopyCommand.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/CopyCommand.java @@ -7,7 +7,6 @@ import org.bukkit.World; import org.bukkit.entity.Player; import mineplex.core.common.util.F; -import mineplex.core.common.util.MapUtil; import mineplex.mapparser.GameType; import mineplex.mapparser.MapParser; import org.apache.commons.io.FileUtils; @@ -73,7 +72,7 @@ public class CopyCommand extends BaseCommand other.teleport(getPlugin().getSpawnLocation()); message(other, "Unloading world for copy..."); } - MapUtil.UnloadWorld(getPlugin(), world, true); + getPlugin().getServer().unloadWorld(world, true); } File source = new File(worldName); diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/DeleteCommand.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/DeleteCommand.java index 59b357c42..c3e1b48fd 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/DeleteCommand.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/DeleteCommand.java @@ -6,7 +6,6 @@ import org.bukkit.World; import org.bukkit.entity.Player; import mineplex.core.common.util.F; -import mineplex.core.common.util.MapUtil; import mineplex.mapparser.GameType; import mineplex.mapparser.MapParser; import org.apache.commons.io.FileUtils; @@ -66,7 +65,7 @@ public class DeleteCommand extends BaseCommand //Unload World //Things break if this isn't set to true for saving the world - MapUtil.UnloadWorld(getPlugin(), world, true); + getPlugin().getServer().unloadWorld(world, true); } //Delete diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/GameTypeCommand.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/GameTypeCommand.java index 4b01a03c9..5d4139b5b 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/GameTypeCommand.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/GameTypeCommand.java @@ -6,7 +6,6 @@ import org.bukkit.World; import org.bukkit.entity.Player; import mineplex.core.common.util.F; -import mineplex.core.common.util.MapUtil; import mineplex.mapparser.GameType; import mineplex.mapparser.MapData; import mineplex.mapparser.MapParser; @@ -69,7 +68,7 @@ public class GameTypeCommand extends BaseCommand other.teleport(getPlugin().getSpawnLocation()); message(player, "Unloading world for rename..."); } - MapUtil.UnloadWorld(getPlugin(), world, true); + getPlugin().getServer().unloadWorld(world, true); File typeFolder = new File("map/" + type.GetName()); if (!typeFolder.exists()) diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/ListCommand.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/ListCommand.java index 8935eb777..1edb4ad81 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/ListCommand.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/ListCommand.java @@ -7,7 +7,7 @@ import org.bukkit.entity.Player; import mineplex.core.common.util.C; import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilPlayerBase; import mineplex.mapparser.GameType; import mineplex.mapparser.MapParser; @@ -28,7 +28,7 @@ public class ListCommand extends BaseCommand { if (args.length == 0) { - UtilPlayer.message(player, F.main("Parser", "Listing Maps;")); + UtilPlayerBase.message(player, F.main("Parser", "Listing Maps;")); boolean colorSwitch = false; @@ -60,7 +60,7 @@ public class ListCommand extends BaseCommand } } - UtilPlayer.message(player, F.main("Parser", "Listing Maps for gametype " + F.elem(gameType.GetName()))); + UtilPlayerBase.message(player, F.main("Parser", "Listing Maps for gametype " + F.elem(gameType.GetName()))); listMaps(player, gameType, false); } diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/MapCommand.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/MapCommand.java index 6c504b634..56d98de06 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/MapCommand.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/MapCommand.java @@ -1,7 +1,7 @@ package mineplex.mapparser.command; import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilPlayerBase; import mineplex.mapparser.GameType; import mineplex.mapparser.MapData; import mineplex.mapparser.MapParser; @@ -32,7 +32,7 @@ public class MapCommand extends BaseCommand { if (args.length < 1) { - //UtilPlayer.message(event.getPlayer(), F.main("Parser", "Invalid Input. " + F.elem("/map [GameType]"))); + //UtilPlayerBase.message(event.getPlayer(), F.main("Parser", "Invalid Input. " + F.elem("/map [GameType]"))); return false; } @@ -50,7 +50,7 @@ public class MapCommand extends BaseCommand { message(player, "Found more than one possible match:"); for (String s : possibleMaps) - UtilPlayer.message(player, s); + UtilPlayerBase.message(player, s); return true; } @@ -126,9 +126,9 @@ public class MapCommand extends BaseCommand MapData data = getPlugin().getData(worldName); - UtilPlayer.message(player, F.value("Map Name", data.MapName)); - UtilPlayer.message(player, F.value("Author", data.MapCreator)); - UtilPlayer.message(player, F.value("Game Type", data.MapGameType.GetName())); + UtilPlayerBase.message(player, F.value("Map Name", data.MapName)); + UtilPlayerBase.message(player, F.value("Author", data.MapCreator)); + UtilPlayerBase.message(player, F.value("Game Type", data.MapGameType.GetName())); return true; } } diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/PMCommand.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/PMCommand.java index 86c4db4f2..f18483199 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/PMCommand.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/PMCommand.java @@ -2,7 +2,6 @@ package mineplex.mapparser.command; import mineplex.core.common.util.C; import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilServer; import mineplex.mapparser.MapParser; import org.bukkit.Sound; import org.bukkit.entity.Player; @@ -38,14 +37,14 @@ public class PMCommand extends BaseCommand { builder.append(s).append(" "); } - for (Player ops : UtilServer.getPlayers()) + for (Player ops : getPlugin().getServer().getOnlinePlayers()) { if (!ops.isOp()) { continue; } ops.sendMessage(F.main("Message", builder.toString().trim())); - ops.playSound(ops.getLocation(), Sound.NOTE_PLING, 1.0f, 1.0f); + ops.playSound(ops.getLocation(), Sound.BLOCK_NOTE_PLING, 1.0f, 1.0f); } return true; diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/RenameCommand.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/RenameCommand.java index 2f66500c2..dfb0cb030 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/RenameCommand.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/RenameCommand.java @@ -6,7 +6,6 @@ import org.bukkit.World; import org.bukkit.entity.Player; import mineplex.core.common.util.F; -import mineplex.core.common.util.MapUtil; import mineplex.mapparser.MapData; import mineplex.mapparser.MapParser; @@ -56,7 +55,7 @@ public class RenameCommand extends BaseCommand other.teleport(getPlugin().getSpawnLocation()); message(other, "Unloading world for rename..."); } - MapUtil.UnloadWorld(getPlugin(), world, true); + getPlugin().getServer().unloadWorld(world, true); message(player, "World unloaded!"); diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/SaveCommand.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/SaveCommand.java index c201f152c..46f52a35f 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/SaveCommand.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/SaveCommand.java @@ -6,8 +6,7 @@ import org.bukkit.World; import org.bukkit.entity.Player; import mineplex.core.common.util.F; -import mineplex.core.common.util.MapUtil; -import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilPlayerBase; import mineplex.mapparser.MapParser; /** @@ -37,7 +36,7 @@ public class SaveCommand extends BaseCommand { message(player, "More than one map found:"); for (String s : possibleMaps) - UtilPlayer.message(player, s); + UtilPlayerBase.message(player, s); return true; } @@ -63,7 +62,7 @@ public class SaveCommand extends BaseCommand other.teleport(getPlugin().getSpawnLocation()); //Unload World - MapUtil.UnloadWorld(getPlugin(), world, true); + getPlugin().getServer().unloadWorld(world, true); } else { diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/WorldsCommand.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/WorldsCommand.java index 2b9d6331c..1af45bfaa 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/WorldsCommand.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/command/WorldsCommand.java @@ -3,8 +3,6 @@ package mineplex.mapparser.command; import org.bukkit.World; import org.bukkit.entity.Player; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; import mineplex.mapparser.MapParser; /** diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/module/modules/CommandModule.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/module/modules/CommandModule.java index 368b24df9..3cfe1ac73 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/module/modules/CommandModule.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/module/modules/CommandModule.java @@ -2,7 +2,7 @@ package mineplex.mapparser.module.modules; import com.google.common.collect.Maps; import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilPlayerBase; import mineplex.mapparser.MapParser; import mineplex.mapparser.command.BaseCommand; import mineplex.mapparser.module.Module; @@ -38,7 +38,7 @@ public class CommandModule extends Module if (getPlugin().getCurParse() != null) { - UtilPlayer.message(player, F.main("Parser", "Cannot use commands during Map Parse!")); + UtilPlayerBase.message(player, F.main("Parser", "Cannot use commands during Map Parse!")); return; } if (event.getMessage().toLowerCase().startsWith("/help")) @@ -83,8 +83,8 @@ public class CommandModule extends Module if (!baseCommand.execute(player, commandLabel, args)) { - UtilPlayer.message(player, F.main("Parser", "Invalid Input.")); - UtilPlayer.message(player, F.elem(baseCommand.getUsage())); + UtilPlayerBase.message(player, F.main("Parser", "Invalid Input.")); + UtilPlayerBase.message(player, F.elem(baseCommand.getUsage())); } } diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/module/modules/EventModule.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/module/modules/EventModule.java index 1595b9886..2b617a039 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/module/modules/EventModule.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/module/modules/EventModule.java @@ -27,9 +27,7 @@ import com.google.common.collect.Lists; import mineplex.core.common.util.C; import mineplex.core.common.util.F; -import mineplex.core.common.util.MapUtil; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilPlayerBase; import mineplex.mapparser.BackupTask; import mineplex.mapparser.MapData; import mineplex.mapparser.MapParser; @@ -135,7 +133,7 @@ public class EventModule extends Module if (world.getPlayers().isEmpty()) { getPlugin().announce("Saving & Closing World: " + F.elem(world.getName())); - MapUtil.UnloadWorld(getPlugin(), world, true); + getPlugin().getServer().unloadWorld(world, true); _updated.remove(world); getPlugin()._mapsBeingZipped.add(world.getName()); System.out.println("Starting backup of " + world); @@ -164,7 +162,7 @@ public class EventModule extends Module String grayName = C.cBlue + event.getPlayer().getName(); String grayWorld = C.cBlue + C.Bold + event.getPlayer().getWorld().getName(); - for (Player player : UtilServer.getPlayers()) + for (Player player : getPlugin().getServer().getOnlinePlayers()) { if (player.getWorld().equals(event.getPlayer().getWorld())) { @@ -212,7 +210,7 @@ public class EventModule extends Module event.setCancelled(true); - Player target = UtilPlayer.searchOnline(player, tokens[1], true); + Player target = UtilPlayerBase.searchOnline(player, tokens[1], true); if (target != null) { if (!target.getWorld().getName().equals("world")) @@ -224,7 +222,7 @@ public class EventModule extends Module return; } } - UtilPlayer.message(player, F.main("Game", "You teleported to " + F.name(target.getName()) + ".")); + UtilPlayerBase.message(player, F.main("Game", "You teleported to " + F.name(target.getName()) + ".")); player.teleport(target); } } @@ -246,7 +244,7 @@ public class EventModule extends Module //Permission if (!getPlugin().getData(event.getPlayer().getWorld().getName()).HasAccess(event.getPlayer())) { - UtilPlayer.message(event.getPlayer(), F.main("Parser", "You do not have Build-Access for this Map.")); + UtilPlayerBase.message(event.getPlayer(), F.main("Parser", "You do not have Build-Access for this Map.")); event.setCancelled(true); } } @@ -276,10 +274,10 @@ public class EventModule extends Module player.setFlySpeed(speed); - UtilPlayer.message(player, F.main("Game", "Fly Speed set to " + F.elem("" + speed) + ".")); + UtilPlayerBase.message(player, F.main("Game", "Fly Speed set to " + F.elem("" + speed) + ".")); } catch (Exception e) { - UtilPlayer.message(player, F.main("Game", "Invalid Speed Input.")); + UtilPlayerBase.message(player, F.main("Game", "Invalid Speed Input.")); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/halloween2016/Crypt.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/halloween2016/Crypt.java index 562bd08cc..9057da773 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/halloween2016/Crypt.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/halloween2016/Crypt.java @@ -14,7 +14,8 @@ import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTextTop; -import mineplex.core.common.util.UtilTime; + +import net.minecraft.server.v1_8_R3.MinecraftServer; public class Crypt { @@ -42,10 +43,10 @@ public class Crypt { if(isDestroyed()) return false; Integer lastTime = _damageCooldown.get(mob); - if(lastTime != null && lastTime > UtilTime.getServerTick()) return false; + if(lastTime != null && lastTime > MinecraftServer.currentTick) return false; _health -= damage; - _damageCooldown.put(mob, UtilTime.getServerTick() + cooldown); + _damageCooldown.put(mob, MinecraftServer.currentTick + cooldown); updateState(damage); diff --git a/Plugins/pom.xml b/Plugins/pom.xml index bbf652166..95880e508 100644 --- a/Plugins/pom.xml +++ b/Plugins/pom.xml @@ -21,6 +21,7 @@ Mineplex.Cache Mineplex.Core Mineplex.Core.Common + Mineplex.Core.Common.Base Mineplex.Database Mineplex.DDoSProtectionSwitcher Mineplex.EnjinTranslator @@ -36,7 +37,7 @@ Mineplex.ServerData Mineplex.ServerMonitor Mineplex.StaffServer - Mineplex.Votifier + Mineplex.Votifier Nautilus.Game.Arcade Nautilus.Game.Arcade.UHC.WorldGen @@ -51,10 +52,20 @@ mineplex http://dev.mineplex.com:8081/nexus/content/groups/public/ + + spigotmc-public + https://hub.spigotmc.org/nexus/content/groups/public/ + + + commons-io + commons-io + 2.5 + compile + commons-codec commons-codec @@ -68,7 +79,7 @@ compile - com.vexsoftware + com.vexsoftware votifier 1.9 provided @@ -133,6 +144,12 @@ 3.5.2 compile + + org.spigotmc + spigot-api + 1.12-R0.1-SNAPSHOT + compile + com.mineplex spigot From b43203f831a53af70a9476906e3c857fdcf2c561 Mon Sep 17 00:00:00 2001 From: cnr Date: Thu, 22 Jun 2017 23:32:55 -0500 Subject: [PATCH 15/56] Revert "Disable beta whitelist for MOBA" This reverts commit 037450687908d789f15c0cb8e03733936f19e89a. --- .../nautilus/game/arcade/game/games/moba/Moba.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 c584057fe..66274c97e 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 @@ -1,6 +1,7 @@ package nautilus.game.arcade.game.games.moba; import mineplex.core.Managers; +import mineplex.core.beta.BetaWhitelist; import mineplex.core.common.Pair; import mineplex.core.common.Rank; import mineplex.core.common.util.F; @@ -85,6 +86,7 @@ public class Moba extends TeamGame protected final TowerManager _tower; protected final CapturePointManager _capturePoint; protected final MinionManager _minion; + private BetaWhitelist _betaWhitelist; private int _inPlayers; @@ -129,6 +131,17 @@ public class Moba extends TeamGame // Beta Message registerManager(new BetaManager(this)); + // Beta Whitelist + _betaWhitelist = Managers.get(BetaWhitelist.class); + if (_betaWhitelist == null) + { + _betaWhitelist = new BetaWhitelist(manager.GetClients(), manager.getBonusManager().getPowerPlayClubRepository()); + } + else + { + _betaWhitelist.registerSelf(); + } + new CompassModule() .setGiveCompass(true) .setGiveCompassToSpecs(true) @@ -267,6 +280,7 @@ public class Moba extends TeamGame super.disable(); _listeners.forEach(UtilServer::Unregister); _listeners.clear(); + _betaWhitelist.deregisterSelf(); // Undisguise all players for (Player player : Bukkit.getOnlinePlayers()) From dddeb693917934210c2ddca4bc352a9b756af5cc Mon Sep 17 00:00:00 2001 From: cnr Date: Thu, 22 Jun 2017 23:35:10 -0500 Subject: [PATCH 16/56] Change beta requirement to ULTRA --- Plugins/Mineplex.Core/src/mineplex/core/beta/BetaWhitelist.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/beta/BetaWhitelist.java b/Plugins/Mineplex.Core/src/mineplex/core/beta/BetaWhitelist.java index bf384c4c8..ae121af76 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/beta/BetaWhitelist.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/beta/BetaWhitelist.java @@ -55,7 +55,7 @@ public class BetaWhitelist extends MiniPlugin { Player player = event.getPlayer(); Rank rank = _clientManager.Get(player).GetRank(true); - if (rank.has(Rank.TITAN) // If this player is Titan+ + if (rank.has(Rank.ULTRA) // If this player is Ultra+ || _powerPlayClubRepository.getCachedData(player).isSubscribed() // a PPC subscriber, || EXTRA_PLAYERS.contains(player.getUniqueId())) // or explicitly whitelisted, { From 98f9a58849d3a7618f9a54cbd590419b01e1e60f Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 23 Jun 2017 14:12:36 +0100 Subject: [PATCH 17/56] Fix light arrows being able to damage yourself --- .../arcade/game/games/moba/kit/rowena/SkillLightArrows.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillLightArrows.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillLightArrows.java index 4756d65eb..31111ba47 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillLightArrows.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillLightArrows.java @@ -140,7 +140,7 @@ public class SkillLightArrows extends HeroSkill for (LivingEntity entity : UtilEnt.getInRadius(lineParticle.getLastLocation(), 1.5).keySet()) { - if (Recharge.Instance.use(player, GetName() + entity.getUniqueId(), 500, false, false)) + if (!isTeamDamage(entity, player) && Recharge.Instance.use(player, GetName() + entity.getUniqueId(), 500, false, false)) { player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 1, 0.8F); Manager.GetDamage().NewDamageEvent(entity, player, null, DamageCause.CUSTOM, damage, true, true, false, player.getName(), GetName()); From 3c031c70a1986d599ce9f90a8505d142be8b3920 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 24 Jun 2017 10:09:52 +0100 Subject: [PATCH 18/56] Fix training lobby bugs --- .../nautilus/game/arcade/game/games/moba/Moba.java | 2 +- .../game/arcade/game/games/moba/kit/HeroSkill.java | 6 ++++-- .../game/games/moba/training/MobaTraining.java | 14 ++++++++++++-- .../game/games/moba/training/SelectKitMenu.java | 5 +++++ 4 files changed, 22 insertions(+), 5 deletions(-) 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 66274c97e..b5241e7b7 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 @@ -75,7 +75,7 @@ public class Moba extends TeamGame private final HeroKit[] _kits; - private final Set _playerData = new HashSet<>(); + protected final Set _playerData = new HashSet<>(); private final Set _listeners = new HashSet<>(); protected final MobaShop _shop; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java index 4668d565d..131714e73 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java @@ -107,13 +107,15 @@ public class HeroSkill extends Perk _item = new ItemBuilder(_item) .setTitle((action != null ? C.cYellowB + action + C.cGray + " - " : "") + C.cGreenB + GetName()) - .setLore(GetDesc()) + .setLore() + .addLore(GetDesc()) .setUnbreakable(true) .build(); _cooldownItem = new ItemBuilder(Material.INK_SACK, (byte) 8) .setTitle(C.cRed + GetName()) - .setLore(GetDesc()) + .setLore() + .addLore(GetDesc()) .setUnbreakable(true) .build(); } 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 1b68e0af7..49f0d3d91 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 @@ -34,6 +34,7 @@ import org.bukkit.entity.Villager; import org.bukkit.entity.Villager.Profession; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerInteractAtEntityEvent; +import org.bukkit.event.player.PlayerJoinEvent; import java.util.HashMap; import java.util.List; @@ -119,7 +120,7 @@ public class MobaTraining extends Moba DamageTeamSelf = true; DamageFall = false; DeathOut = false; - DeathSpectateSecs = 0; + DeathSpectateSecs = 2; PrepareTime = 500; GiveClock = false; HideTeamSheep = true; @@ -171,7 +172,7 @@ public class MobaTraining extends Moba { suffix = C.cYellow + " Unknown"; } - else if (mobaPlayer.getKit() == null) + else if (mobaPlayer == null || mobaPlayer.getKit() == null) { suffix = C.cYellow + " Selecting"; } @@ -333,6 +334,15 @@ public class MobaTraining extends Moba } } + @EventHandler + public void plaeyrJoin(PlayerJoinEvent event) + { + if (InProgress()) + { + _playerData.add(new MobaPlayer(event.getPlayer())); + } + } + @EventHandler public void spawnTutorial(GameStateChangeEvent event) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/SelectKitMenu.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/SelectKitMenu.java index 6b1287d6e..2c2efadf3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/SelectKitMenu.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/training/SelectKitMenu.java @@ -31,6 +31,11 @@ public class SelectKitMenu extends Menu for (int slot : slots) { HeroKit kit = (HeroKit) moba.GetKits()[i++]; + + if (!kit.isVisible()) + { + continue; + } ItemBuilder builder = new ItemBuilder(kit.getSkinData().getSkull()); builder.setTitle(C.cGreen + kit.GetName()); From ed541b7a4fcfc08108bdc060856c1b2d97e5ad8f Mon Sep 17 00:00:00 2001 From: cnr Date: Mon, 26 Jun 2017 20:17:45 -0700 Subject: [PATCH 19/56] Disable automatic timings reports --- .../src/mineplex/core/TimingsFix.java | 104 ------------------ .../src/mineplex/core/monitor/LagMeter.java | 44 ++------ .../src/mineplex/game/clans/Clans.java | 10 +- .../src/mineplex/hub/HubManager.java | 2 - .../src/nautilus/game/arcade/Arcade.java | 10 +- .../src/mineplex/gemhunters/GemHunters.java | 18 ++- 6 files changed, 25 insertions(+), 163 deletions(-) delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/TimingsFix.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/TimingsFix.java b/Plugins/Mineplex.Core/src/mineplex/core/TimingsFix.java deleted file mode 100644 index 302ba7674..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/TimingsFix.java +++ /dev/null @@ -1,104 +0,0 @@ -package mineplex.core; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import sun.net.www.protocol.http.HttpURLConnection; - -import javax.net.ssl.HttpsURLConnection; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; -import java.net.Proxy; -import java.net.URL; -import java.net.URLConnection; -import java.net.URLDecoder; -import java.nio.charset.StandardCharsets; - -@ReflectivelyCreateMiniPlugin -public class TimingsFix extends MiniPlugin -{ - private static final Gson GSON = new Gson(); - - private TimingsFix() - { - super("Timings Fix"); - - URL.setURLStreamHandlerFactory(protocol -> - { - if (protocol.equals("http")) - { - return new sun.net.www.protocol.http.Handler() - { - @Override - protected URLConnection openConnection(URL u) throws IOException - { - if (u.getHost().contains("paste.ubuntu.com")) - { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]); - - return new HttpURLConnection(u, null, this) - { - @Override - public OutputStream getOutputStream() - { - return baos; - } - - @Override - public InputStream getInputStream() - { - return bais; - } - - @Override - public String getHeaderField(String name) - { - if (name.equals("Location")) - { - try - { - String request = new String(baos.toByteArray(), StandardCharsets.UTF_8); - request = request.substring("poster=Spigot&syntax=text&content=".length()); - - request = URLDecoder.decode(request, "UTF-8"); - - URL url = new URL("https://timings.spigotmc.org/paste"); - HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); - connection.setDoOutput(true); - connection.setRequestMethod("POST"); - connection.setInstanceFollowRedirects(false); - connection.getOutputStream().write(request.getBytes(StandardCharsets.UTF_8)); - connection.getOutputStream().close(); - - JsonObject object = GSON.fromJson(new InputStreamReader(connection.getInputStream()), JsonObject.class); - return "http://paste.ubuntu.com/" + object.get("key").getAsString() + "/"; - } - catch (Throwable e) - { - e.printStackTrace(); - return "http://paste.ubuntu.com/0/"; - } - } - return null; - } - }; - } - return super.openConnection(u); - } - - @Override - protected URLConnection openConnection(URL u, Proxy p) throws IOException - { - return super.openConnection(u, p); - } - }; - } - return null; - }); - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/monitor/LagMeter.java b/Plugins/Mineplex.Core/src/mineplex/core/monitor/LagMeter.java index e9f920567..e34150584 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/monitor/LagMeter.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/monitor/LagMeter.java @@ -2,6 +2,15 @@ package mineplex.core.monitor; import java.util.HashSet; +import net.minecraft.server.v1_8_R3.MinecraftServer; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.plugin.java.JavaPlugin; + import mineplex.core.MiniPlugin; import mineplex.core.account.CoreClientManager; import mineplex.core.common.Rank; @@ -10,17 +19,6 @@ import mineplex.core.common.util.F; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.plugin.java.JavaPlugin; -import net.minecraft.server.v1_8_R3.MinecraftServer; - public class LagMeter extends MiniPlugin { private CoreClientManager _clientManager; @@ -31,12 +29,6 @@ public class LagMeter extends MiniPlugin private long _lastAverage; private long _start; - private long _lastTick = 0; - - private boolean _timingsRunning; - private boolean _timingsPasted; - private long _timingsStarted; - private HashSet _monitoring = new HashSet(); public LagMeter(JavaPlugin plugin, CoreClientManager clientManager) @@ -98,24 +90,6 @@ public class LagMeter extends MiniPlugin _lastRun = now; _count++; - - if (System.currentTimeMillis() - _start > 30000) - { - if (_timingsRunning) - { - if (System.currentTimeMillis() - _timingsStarted > 30000) - { - getPlugin().getServer().dispatchCommand(Bukkit.getConsoleSender(), "timings paste"); - _timingsRunning = false; - } - } - else if (_ticksPerSecond < 10) - { - _timingsRunning = true; - _timingsStarted = System.currentTimeMillis(); - getPlugin().getServer().dispatchCommand(Bukkit.getConsoleSender(), "timings on"); - } - } } public double getTicksPerSecond() diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java index b3ed131a7..ed924a65f 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java @@ -1,10 +1,10 @@ package mineplex.game.clans; -import static mineplex.core.Managers.require; - import java.io.File; import java.io.IOException; +import net.minecraft.server.v1_8_R3.MinecraftServer; + import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.World; @@ -14,7 +14,6 @@ import org.spigotmc.SpigotConfig; import mineplex.core.CustomTagFix; import mineplex.core.FoodDupeFix; -import mineplex.core.TimingsFix; import mineplex.core.account.CoreClientManager; import mineplex.core.achievement.AchievementManager; import mineplex.core.antihack.AntiHack; @@ -75,7 +74,8 @@ import mineplex.game.clans.shop.mining.MiningShop; import mineplex.game.clans.shop.pvp.PvpShop; import mineplex.game.clans.spawn.travel.TravelShop; import mineplex.game.clans.world.WorldManager; -import net.minecraft.server.v1_8_R3.MinecraftServer; + +import static mineplex.core.Managers.require; public class Clans extends JavaPlugin { @@ -113,8 +113,6 @@ public class Clans extends JavaPlugin _clientManager = new CoreClientManager(this); CommandCenter.Instance.setClientManager(_clientManager); - require(TimingsFix.class); - ItemStackFactory.Initialize(this, false); DelayedTask.Initialize(this); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java index 070cd582a..bc02c3628 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java @@ -43,7 +43,6 @@ import org.bukkit.plugin.java.JavaPlugin; import mineplex.core.Managers; import mineplex.core.MiniClientPlugin; -import mineplex.core.TimingsFix; import mineplex.core.account.CoreClient; import mineplex.core.account.CoreClientManager; import mineplex.core.achievement.AchievementManager; @@ -273,7 +272,6 @@ public class HubManager extends MiniClientPlugin implements IChatMess // new HolidayGiftManager(plugin, clientManager, donationManager, inventoryManager, taskManager); require(PlayerDisguiseManager.class); - require(TimingsFix.class); // NotificationManager notificationManager = new NotificationManager(plugin, clientManager, donationManager); // new MailManager(_plugin, notificationManager); new ValentinesGiftManager(plugin, clientManager, _bonusManager.getRewardManager(), inventoryManager, _gadgetManager, statsManager); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java index 197d76ff0..ebf57b8d0 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java @@ -1,10 +1,10 @@ package nautilus.game.arcade; -import static mineplex.core.Managers.require; - import java.io.File; import java.util.HashMap; +import net.minecraft.server.v1_8_R3.MinecraftServer; + import org.bukkit.Bukkit; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; @@ -16,7 +16,6 @@ import org.spigotmc.SpigotConfig; import mineplex.core.CustomTagFix; import mineplex.core.FoodDupeFix; import mineplex.core.PacketsInteractionFix; -import mineplex.core.TimingsFix; import mineplex.core.TwitchIntegrationFix; import mineplex.core.account.CoreClientManager; import mineplex.core.achievement.AchievementManager; @@ -82,10 +81,11 @@ import mineplex.core.visibility.VisibilityManager; import mineplex.core.website.WebsiteLinkManager; import mineplex.minecraft.game.core.combat.CombatManager; import mineplex.minecraft.game.core.damage.DamageManager; + import nautilus.game.arcade.anticheatmetadata.GameInfoMetadata; import nautilus.game.arcade.game.Game; import nautilus.game.arcade.game.GameServerConfig; -import net.minecraft.server.v1_8_R3.MinecraftServer; +import static mineplex.core.Managers.require; public class Arcade extends JavaPlugin { @@ -138,8 +138,6 @@ public class Arcade extends JavaPlugin CommandCenter.Instance.setClientManager(_clientManager); require(ProfileCacheManager.class); - require(TimingsFix.class); - ItemStackFactory.Initialize(this, false); Recharge.Initialize(this); diff --git a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java index 9b8256d80..d4e557763 100644 --- a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java +++ b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java @@ -1,8 +1,15 @@ package mineplex.gemhunters; +import net.minecraft.server.v1_8_R3.MinecraftServer; + +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; +import org.bukkit.plugin.java.JavaPlugin; +import org.spigotmc.SpigotConfig; + import mineplex.core.CustomTagFix; import mineplex.core.FoodDupeFix; -import mineplex.core.TimingsFix; import mineplex.core.account.CoreClientManager; import mineplex.core.achievement.AchievementManager; import mineplex.core.antihack.AntiHack; @@ -93,12 +100,6 @@ import mineplex.gemhunters.worldevent.WorldEventModule; import mineplex.minecraft.game.core.combat.CombatManager; import mineplex.minecraft.game.core.condition.ConditionManager; import mineplex.minecraft.game.core.damage.DamageManager; -import net.minecraft.server.v1_8_R3.MinecraftServer; -import org.bukkit.Bukkit; -import org.bukkit.World; -import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; -import org.bukkit.plugin.java.JavaPlugin; -import org.spigotmc.SpigotConfig; import static mineplex.core.Managers.require; @@ -132,9 +133,6 @@ public class GemHunters extends JavaPlugin // Command Centre CommandCenter.Instance.setClientManager(clientManager); - // Timings - require(TimingsFix.class); - // ItemStacks ItemStackFactory.Initialize(this, false); From a79c79bc998216eec307fc5cd58ed2c01801fffd Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 27 Jun 2017 12:38:43 +0100 Subject: [PATCH 20/56] Add wither overtime --- .../game/arcade/game/games/moba/Moba.java | 15 ++++- .../arcade/game/games/moba/ai/MobaAI.java | 4 +- .../games/moba/boss/wither/WitherBoss.java | 23 +++++++ .../boss/wither/WitherBossOvertimeAI.java | 48 +++++++++++++++ .../game/games/moba/minion/MinionManager.java | 13 ++++ .../games/moba/overtime/OvertimeManager.java | 60 +++++++++++++++++++ 6 files changed, 159 insertions(+), 4 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBossOvertimeAI.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/overtime/OvertimeManager.java 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 b5241e7b7..f1db74bae 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 @@ -41,8 +41,7 @@ import nautilus.game.arcade.game.games.moba.kit.hp.HPManager; import nautilus.game.arcade.game.games.moba.kit.larissa.HeroLarissa; import nautilus.game.arcade.game.games.moba.kit.rowena.HeroRowena; import nautilus.game.arcade.game.games.moba.minion.MinionManager; -import nautilus.game.arcade.game.games.moba.prepare.PrepareManager; -import nautilus.game.arcade.game.games.moba.prepare.PrepareSelection; +import nautilus.game.arcade.game.games.moba.overtime.OvertimeManager; import nautilus.game.arcade.game.games.moba.shop.MobaShop; import nautilus.game.arcade.game.games.moba.structure.point.CapturePointManager; import nautilus.game.arcade.game.games.moba.structure.tower.TowerManager; @@ -81,6 +80,7 @@ public class Moba extends TeamGame protected final MobaShop _shop; protected final GoldManager _goldManager; protected final BossManager _boss; + protected final OvertimeManager _overtimeManager; protected final BuffManager _buffs; protected final ArrowKBManager _arrowKb; protected final TowerManager _tower; @@ -116,6 +116,7 @@ public class Moba extends TeamGame _shop = registerManager(new MobaShop(this)); _goldManager = registerManager(new GoldManager(this)); _boss = registerManager(new BossManager(this)); + _overtimeManager = registerManager(new OvertimeManager(this)); _buffs = registerManager(new BuffManager()); _arrowKb = registerManager(new ArrowKBManager(this)); _minion = registerManager(new MinionManager(this)); @@ -496,6 +497,11 @@ public class Moba extends TeamGame return _goldManager; } + public OvertimeManager getOvertimeManager() + { + return _overtimeManager; + } + public BuffManager getBuffManager() { return _buffs; @@ -520,4 +526,9 @@ public class Moba extends TeamGame { return _arrowKb; } + + public MinionManager getMinionManager() + { + return _minion; + } } \ No newline at end of file diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/ai/MobaAI.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/ai/MobaAI.java index 5b89b9884..1ad97af9e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/ai/MobaAI.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/ai/MobaAI.java @@ -23,11 +23,11 @@ public class MobaAI private final float _speedHome; private final Polygon2D _boundaries; - private LivingEntity _entity; + protected LivingEntity _entity; private LivingEntity _target; private Location _home; - private MobaAIMethod _aiMethod; + protected MobaAIMethod _aiMethod; public MobaAI(Moba host, GameTeam owner, LivingEntity entity, Location home, float speedTarget, float speedHome, MobaAIMethod aiMethod) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java index 8d80c7f5e..d8595853a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java @@ -46,6 +46,7 @@ public class WitherBoss extends MobaBoss private final GameTeam _team; private MobaAI _ai; + private MobaAI _aiOvertime; private DisguiseWither _disguise; private boolean _damageable; private long _lastInform; @@ -70,6 +71,7 @@ public class WitherBoss extends MobaBoss stand.setHealth(INITIAL_HEALTH * 0.1); stand.setGravity(false); + MobaUtil.setTeamEntity(stand, _team); UtilEnt.setBoundingBox(stand, 3, 5); _disguise = new DisguiseWither(stand); @@ -87,10 +89,31 @@ public class WitherBoss extends MobaBoss { _ai = new MobaAI(_host, _team, _entity, _location, SPEED_TARGET, SPEED_HOME, AI_METHOD); } + else if (_host.getOvertimeManager().isOvertime()) + { + if (_aiOvertime == null) + { + _aiOvertime = new WitherBossOvertimeAI(_host, _team, _entity, _location, SPEED_TARGET, SPEED_HOME, AI_METHOD); + } + + return _aiOvertime; + } return _ai; } + @Override + @EventHandler + public void updateMovement(UpdateEvent event) + { + if (event.getType() != UpdateType.TICK || !_host.IsLive()) + { + return; + } + + getAi().updateTarget(); + } + @Override public String getName() { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBossOvertimeAI.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBossOvertimeAI.java new file mode 100644 index 000000000..9a710aaab --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBossOvertimeAI.java @@ -0,0 +1,48 @@ +package nautilus.game.arcade.game.games.moba.boss.wither; + +import mineplex.core.common.util.UtilMath; +import nautilus.game.arcade.game.GameTeam; +import nautilus.game.arcade.game.games.moba.Moba; +import nautilus.game.arcade.game.games.moba.ai.MobaAI; +import nautilus.game.arcade.game.games.moba.ai.goal.MobaAIMethod; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.entity.LivingEntity; + +import java.util.List; + +public class WitherBossOvertimeAI extends MobaAI +{ + + private List _path; + private Location _target; + private int _targetIndex; + + public WitherBossOvertimeAI(Moba host, GameTeam owner, LivingEntity entity, Location home, float speedTarget, float speedHome, MobaAIMethod aiMethod) + { + super(host, owner, entity, home, speedTarget, speedHome, aiMethod); + + _path = host.getMinionManager().getPath(owner.GetColor() == ChatColor.RED); + _path = _path.subList(0, (int) (_path.size() / 2D)); + } + + @Override + public void updateTarget() + { + if (_target == null) + { + _target = _path.get(0); + _targetIndex = 0; + } + + double dist = UtilMath.offsetSquared(_target, _entity.getLocation()); + + if (dist < 16 && _targetIndex < _path.size() - 1) + { + _targetIndex++; + _target = _path.get(_targetIndex); + } + + _aiMethod.updateMovement(_entity, _target, 3); + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java index 9e3790713..efdb7356b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java @@ -22,6 +22,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -181,4 +182,16 @@ public class MinionManager implements Listener // sign.update(); // } } + + public List getPath(boolean redTeam) + { + List path = new ArrayList<>(_path); + + if (redTeam) + { + Collections.reverse(path); + } + + return path; + } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/overtime/OvertimeManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/overtime/OvertimeManager.java new file mode 100644 index 000000000..9e72823d5 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/overtime/OvertimeManager.java @@ -0,0 +1,60 @@ +package nautilus.game.arcade.game.games.moba.overtime; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilTextMiddle; +import mineplex.core.common.util.UtilTime; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; +import nautilus.game.arcade.game.games.moba.Moba; +import org.bukkit.Bukkit; +import org.bukkit.Sound; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +import java.util.concurrent.TimeUnit; + +public class OvertimeManager implements Listener +{ + + private static final long OVERTIME = TimeUnit.MINUTES.toMillis(1); + + private final Moba _host; + private boolean _enabled; + private boolean _overtime; + + public OvertimeManager(Moba host) + { + _host = host; + _enabled = true; + } + + public void disableOvertime() + { + _enabled = false; + } + + @EventHandler + public void updateOvertime(UpdateEvent event) + { + if (event.getType() != UpdateType.FAST || !_host.IsLive() || !UtilTime.elapsed(_host.GetStateTime(), OVERTIME) || _overtime || !_enabled) + { + return; + } + + _overtime = true; + UtilTextMiddle.display(C.cRedB + "OVERTIME", "Victory or Death, Withers are moving to the center!"); + _host.Announce(F.main("Game", "Victory or Death, Withers are moving to the center!"), false); + + for (Player player : Bukkit.getOnlinePlayers()) + { + player.playSound(player.getLocation(), Sound.ENDERDRAGON_GROWL, 1, 1.2F); + } + } + + public boolean isOvertime() + { + return _enabled && _overtime; + } +} From b9a72312a80f43694337a964e616e486a6e6f66b Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 28 Jun 2017 00:21:47 +0100 Subject: [PATCH 21/56] Add a go back button on kit selection --- .../core/common/entity/ClientArmorStand.java | 6 +++ .../games/moba/boss/wither/WitherBoss.java | 5 +++ .../boss/wither/WitherBossOvertimeAI.java | 2 +- .../arcade/game/games/moba/kit/HeroSkill.java | 10 +++++ .../games/moba/overtime/OvertimeManager.java | 10 +++++ .../games/moba/prepare/PrepareSelection.java | 43 ++++++++++++++----- .../games/moba/training/MobaTraining.java | 1 + 7 files changed, 65 insertions(+), 12 deletions(-) diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/entity/ClientArmorStand.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/entity/ClientArmorStand.java index 239f0af5c..385c9c3ce 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/entity/ClientArmorStand.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/entity/ClientArmorStand.java @@ -79,6 +79,12 @@ public class ClientArmorStand implements ArmorStand _observers = players; } + public void sendSpawnPacket(Player player) + { + Packet packet = new PacketPlayOutSpawnEntityLiving(_armorStand); + UtilPlayer.sendPacket(player, packet); + } + public EntityArmorStand getHandle() { return _armorStand; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java index d8595853a..22b4597d1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java @@ -253,4 +253,9 @@ public class WitherBoss extends MobaBoss { return _team; } + + public void setDamageable(boolean damageable) + { + _damageable = damageable; + } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBossOvertimeAI.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBossOvertimeAI.java index 9a710aaab..ea389a6a6 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBossOvertimeAI.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBossOvertimeAI.java @@ -43,6 +43,6 @@ public class WitherBossOvertimeAI extends MobaAI _target = _path.get(_targetIndex); } - _aiMethod.updateMovement(_entity, _target, 3); + _aiMethod.updateMovement(_entity, _target, 2); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java index 131714e73..9a6a9eaf8 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java @@ -323,6 +323,16 @@ public class HeroSkill extends Perk Recharge.Instance.useForce(player, GetName(), time, true); Recharge.Instance.setDisplayForce(player, GetName(), true); + Manager.runSyncTimer(new BukkitRunnable() + { + + @Override + public void run() + { + double percentage = + } + }, 0, 1); + Manager.runSyncTimer(new BukkitRunnable() { int iterations = 0; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/overtime/OvertimeManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/overtime/OvertimeManager.java index 9e72823d5..9c2989fb4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/overtime/OvertimeManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/overtime/OvertimeManager.java @@ -7,6 +7,8 @@ import mineplex.core.common.util.UtilTime; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import nautilus.game.arcade.game.games.moba.Moba; +import nautilus.game.arcade.game.games.moba.boss.MobaBoss; +import nautilus.game.arcade.game.games.moba.boss.wither.WitherBoss; import org.bukkit.Bukkit; import org.bukkit.Sound; import org.bukkit.entity.Player; @@ -47,6 +49,14 @@ public class OvertimeManager implements Listener UtilTextMiddle.display(C.cRedB + "OVERTIME", "Victory or Death, Withers are moving to the center!"); _host.Announce(F.main("Game", "Victory or Death, Withers are moving to the center!"), false); + for (MobaBoss boss : _host.getBossManager().getBosses()) + { + if (boss instanceof WitherBoss) + { + ((WitherBoss) boss).setDamageable(true); + } + } + for (Player player : Bukkit.getOnlinePlayers()) { player.playSound(player.getLocation(), Sound.ENDERDRAGON_GROWL, 1, 1.2F); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/prepare/PrepareSelection.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/prepare/PrepareSelection.java index bad2ee430..a7c4b4e99 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/prepare/PrepareSelection.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/prepare/PrepareSelection.java @@ -1,9 +1,14 @@ package nautilus.game.arcade.game.games.moba.prepare; import mineplex.core.common.entity.ClientArmorStand; -import mineplex.core.common.util.*; +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilAlg; +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.UtilServer; +import mineplex.core.common.util.UtilTextMiddle; import mineplex.core.itemstack.ItemBuilder; import mineplex.core.packethandler.IPacketHandler; import mineplex.core.packethandler.PacketHandler.ListenerPriority; @@ -18,6 +23,7 @@ import nautilus.game.arcade.game.games.moba.kit.HeroKit; import nautilus.game.arcade.game.games.moba.kit.RoleSelectEvent; import net.minecraft.server.v1_8_R3.PacketPlayInUseEntity; import org.bukkit.ChatColor; +import org.bukkit.Color; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; @@ -40,6 +46,7 @@ public class PrepareSelection implements Listener, IPacketHandler private final Moba _host; private final Map _roleStands = new HashMap<>(); private final Map _kitStands = new HashMap<>(); + private final Map _goBackStands = new HashMap<>(); public PrepareSelection(Moba host) { @@ -109,9 +116,21 @@ public class PrepareSelection implements Listener, IPacketHandler Location average = UtilAlg.getAverageLocation(team.GetSpawns()); MobaPlayer mobaPlayer = _host.getMobaData(player); - List heroKits = _host.getKits(mobaPlayer.getRole()); + Location goBack = spawns.remove("KIT " + team.GetName().toUpperCase() + " GO_BACK"); + ClientArmorStand goBackStand = ClientArmorStand.spawn(goBack.clone().add(0, 1, 0), player); + + goBackStand.setCustomNameVisible(true); + goBackStand.setCustomName(C.cGreenB + "Go Back"); + goBackStand.setArms(true); + goBackStand.setHelmet(new ItemStack(Material.SKULL_ITEM, (byte) 2)); + goBackStand.setChestplate(new ItemBuilder(Material.LEATHER_CHESTPLATE).setColor(Color.MAROON).build()); + goBackStand.setLeggings(new ItemBuilder(Material.LEATHER_LEGGINGS).setColor(Color.MAROON).build()); + goBackStand.setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setColor(Color.MAROON).build()); + + _goBackStands.put(player, goBackStand); + UtilServer.runSyncLater(() -> { for (Location location : spawns.values()) @@ -169,6 +188,16 @@ public class PrepareSelection implements Listener, IPacketHandler Player player = packetInfo.getPlayer(); int entityId = packet.a; + ClientArmorStand goBackStand = _goBackStands.get(player); + + if (goBackStand != null) + { + packetInfo.setCancelled(true); + _host.getMobaData(player).setRole(null); + _goBackStands.remove(player).remove(); + return; + } + for (ClientArmorStand stand : _roleStands.keySet()) { if (stand.getEntityId() != entityId) @@ -199,15 +228,7 @@ public class PrepareSelection implements Listener, IPacketHandler return; } - if (team.GetColor() == ChatColor.RED) - { - spawnKitUI(player); - } - else - { - spawnKitUI(player); - } - + spawnKitUI(player); displayKitInformation(player, role); } 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 49f0d3d91..af7f68465 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 @@ -128,6 +128,7 @@ public class MobaTraining extends Moba // Prevent the wither from being damaged as well as to not spawn the pumpkin king _boss.setDummyBosses(true); + _overtimeManager.disableOvertime(); // Disable minions _minion.disableMinions(); From 82182c5d50ef1a5dca42461391ca1981f3db1939 Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 28 Jun 2017 15:34:56 +0100 Subject: [PATCH 22/56] Balance changes --- .../arcade/game/games/moba/kit/HeroSkill.java | 17 +++++++++++++---- .../games/moba/kit/bardolf/HeroBardolf.java | 2 +- .../games/moba/kit/bardolf/SkillSummonWolf.java | 2 +- .../game/games/moba/kit/biff/SkillWarHorse.java | 2 +- .../game/games/moba/kit/dana/SkillDanaDash.java | 4 ++-- .../games/moba/kit/dana/SkillPulseHeal.java | 4 ++-- .../game/games/moba/kit/dana/SkillRally.java | 2 +- .../games/moba/shop/hunter/MobaHunterShop.java | 13 +++++++++++++ .../moba/structure/tower/TowerManager.java | 4 +++- .../game/games/moba/training/MobaTraining.java | 4 ++-- 10 files changed, 39 insertions(+), 15 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java index 9a6a9eaf8..48b6529c9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java @@ -6,9 +6,9 @@ import mineplex.core.common.util.UtilEvent.ActionType; import mineplex.core.common.util.UtilInv; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilTextBottom; import mineplex.core.common.util.UtilTime; import mineplex.core.itemstack.ItemBuilder; -import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import nautilus.game.arcade.events.PlayerKitGiveEvent; @@ -316,12 +316,11 @@ public class HeroSkill extends Perk public void useActiveSkill(Runnable complete, Player player, long time) { + long now = System.currentTimeMillis(); long ticks = (long) (time / 1000D); ItemStack itemStack = player.getInventory().getItem(getSlot()); itemStack.setAmount((int) (ticks / 20D)); UtilInv.addDullEnchantment(itemStack); - Recharge.Instance.useForce(player, GetName(), time, true); - Recharge.Instance.setDisplayForce(player, GetName(), true); Manager.runSyncTimer(new BukkitRunnable() { @@ -329,7 +328,17 @@ public class HeroSkill extends Perk @Override public void run() { - double percentage = + long timeLeft = System.currentTimeMillis() + time - now; + double percentage = (double) timeLeft / (double) time; + + if (percentage >= 1) + { + UtilTextBottom.display(C.cRedB + GetName(), player); + cancel(); + return; + } + + UtilTextBottom.displayProgress(GetName(), percentage, player); } }, 0, 1); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/HeroBardolf.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/HeroBardolf.java index d28975e95..7ac660d7f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/HeroBardolf.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/HeroBardolf.java @@ -96,7 +96,7 @@ public class HeroBardolf extends HeroKit if (UtilMath.offsetSquared(wolf.getTarget(), wolf) < 9 && Recharge.Instance.use(data.getOwner(), "Wolf" + wolf.getTarget().getUniqueId(), 500, false, false)) { - Manager.GetDamage().NewDamageEvent(wolf.getTarget(), data.getOwner(), null, DamageCause.CUSTOM, 2, true, true, false, data.getOwner().getName(), "Wolf"); + Manager.GetDamage().NewDamageEvent(wolf.getTarget(), data.getOwner(), null, DamageCause.CUSTOM, 1, true, true, false, data.getOwner().getName(), "Wolf"); } } else if (ownerOffset > MAX_DIST_SQUARED) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillSummonWolf.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillSummonWolf.java index d0e43367b..29dbd295f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillSummonWolf.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillSummonWolf.java @@ -32,7 +32,7 @@ public class SkillSummonWolf extends HeroSkill }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.BONE); private static final int MAX_WOLVES = 5; - private static final int HEALTH = 6; + private static final int HEALTH = 8; public SkillSummonWolf(int slot) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillWarHorse.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillWarHorse.java index 9a45a201d..d6997e5e3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillWarHorse.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillWarHorse.java @@ -133,7 +133,7 @@ public class SkillWarHorse extends HeroSkill } owner.sendMessage(F.main("Game", "You hit " + F.name(player.getName()) + ".")); - Manager.GetDamage().NewDamageEvent(player, owner, null, DamageCause.CUSTOM, 10, false, true, false, UtilEnt.getName(owner), GetName()); + Manager.GetDamage().NewDamageEvent(player, owner, null, DamageCause.CUSTOM, 4, false, true, false, UtilEnt.getName(owner), GetName()); buffManager.apply(new BuffRooting(game, player, 1000)); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillDanaDash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillDanaDash.java index 8fcb89839..cd2398103 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillDanaDash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillDanaDash.java @@ -60,12 +60,12 @@ public class SkillDanaDash extends DashSkill if (entity instanceof Player) { - damage = 10; + damage = 12; UtilAction.velocity(entity, new Vector(Math.random() / 2 - 0.25, 1, Math.random() / 2 - 0.25)); } else { - damage = 6; + damage = 8; UtilAction.velocity(entity, new Vector(Math.random() - 0.5, 0.5, Math.random() - 0.5)); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillPulseHeal.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillPulseHeal.java index 6d26e4cc3..4908fdf41 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillPulseHeal.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillPulseHeal.java @@ -43,7 +43,7 @@ public class SkillPulseHeal extends HeroSkill Player player = event.getPlayer(); useSkill(player); - for (LivingEntity entity : UtilEnt.getInRadius(player.getLocation(), 5).keySet()) + for (LivingEntity entity : UtilEnt.getInRadius(player.getLocation(), 7).keySet()) { // Don't heal enemies if (!isTeamDamage(entity, player)) @@ -68,7 +68,7 @@ public class SkillPulseHeal extends HeroSkill @Override public void run() { - if (radius > 5) + if (radius > 7) { cancel(); return; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillRally.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillRally.java index ec5ac4cc9..19922f0e1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillRally.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillRally.java @@ -151,7 +151,7 @@ public class SkillRally extends HeroSkill for (LivingEntity nearby : UtilEnt.getInRadius(player.getLocation(), 3).keySet()) { - Manager.GetDamage().NewDamageEvent(nearby, player, null, DamageCause.CUSTOM, 5, true, true, false, UtilEnt.getName(player), GetName()); + Manager.GetDamage().NewDamageEvent(nearby, player, null, DamageCause.CUSTOM, 7, true, true, false, UtilEnt.getName(player), GetName()); } } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/hunter/MobaHunterShop.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/hunter/MobaHunterShop.java index 2c9b75b86..2429e6819 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/hunter/MobaHunterShop.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/hunter/MobaHunterShop.java @@ -10,6 +10,7 @@ import nautilus.game.arcade.game.games.moba.shop.MobaShop; import nautilus.game.arcade.game.games.moba.shop.MobaShopCategory; import nautilus.game.arcade.game.games.moba.shop.MobaShopMenu; import nautilus.game.arcade.game.games.moba.shop.effects.*; +import org.bukkit.Color; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; @@ -74,18 +75,21 @@ public class MobaHunterShop extends MobaShopMenu ), new MobaItem(new ItemBuilder(Material.LEATHER_HELMET) .setTitle(C.cGreen + "Leather Cap of Nimble Fingers") + .setColor(Color.GREEN) .build(), 400) .addEffects( new MobaCDRAmmoEffect(0.05) ), new MobaItem(new ItemBuilder(Material.LEATHER_HELMET) .setTitle(C.cGreen + "Focused Cap") + .setColor(Color.PURPLE) .build(), 500) .addEffects( new MobaCDREffect(0.05) ), new MobaItem(new ItemBuilder(Material.LEATHER_HELMET) .setTitle(C.cGreen + "Vampiric Helmet") + .setColor(Color.RED) .build(), 500) .addEffects( new MobaHPRegenEffect(0.2) @@ -101,18 +105,21 @@ public class MobaHunterShop extends MobaShopMenu .build(), 250), new MobaItem(new ItemBuilder(Material.LEATHER_CHESTPLATE) .setTitle(C.cGreen + "Leather Chestplate of Nimble Fingers") + .setColor(Color.GREEN) .build(), 750) .addEffects( new MobaCDRAmmoEffect(0.15) ), new MobaItem(new ItemBuilder(Material.LEATHER_CHESTPLATE) .setTitle(C.cGreen + "Focused Chestplate") + .setColor(Color.PURPLE) .build(), 750) .addEffects( new MobaCDREffect(0.1) ), new MobaItem(new ItemBuilder(Material.LEATHER_CHESTPLATE) .setTitle(C.cGreen + "Vampiric Chestplate") + .setColor(Color.RED) .build(), 750) .addEffects( new MobaKillHealEffect(3) @@ -128,18 +135,21 @@ public class MobaHunterShop extends MobaShopMenu .build(), 250), new MobaItem(new ItemBuilder(Material.LEATHER_LEGGINGS) .setTitle(C.cGreen + "Leather Leggings of Nimble Fingers") + .setColor(Color.GREEN) .build(), 750) .addEffects( new MobaCDRAmmoEffect(0.1) ), new MobaItem(new ItemBuilder(Material.LEATHER_LEGGINGS) .setTitle(C.cGreen + "Focused Leggings") + .setColor(Color.PURPLE) .build(), 750) .addEffects( new MobaCDREffect(0.1) ), new MobaItem(new ItemBuilder(Material.LEATHER_LEGGINGS) .setTitle(C.cGreen + "Vampiric Leggings") + .setColor(Color.RED) .build(), 700) .addEffects( new MobaKillHealEffect(3) @@ -155,18 +165,21 @@ public class MobaHunterShop extends MobaShopMenu .build(), 250), new MobaItem(new ItemBuilder(Material.LEATHER_BOOTS) .setTitle(C.cGreen + "Leather Boots of Nimble Fingers") + .setColor(Color.GREEN) .build(), 400) .addEffects( new MobaCDRAmmoEffect(0.05) ), new MobaItem(new ItemBuilder(Material.LEATHER_BOOTS) .setTitle(C.cGreen + "Focused Boots") + .setColor(Color.PURPLE) .build(), 600) .addEffects( new MobaCDREffect(0.05) ), new MobaItem(new ItemBuilder(Material.LEATHER_BOOTS) .setTitle(C.cGreen + "Vampiric Boots") + .setColor(Color.RED) .build(), 500) .addEffects( new MobaKillHealEffect(1) 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 a7c9d4d54..eaa2f4626 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 @@ -281,7 +281,9 @@ public class TowerManager implements Listener for (Tower tower : _towers) { - if (tower.isDead() || tower.getOwner().equals(team) || UtilMath.offsetSquared(tower.getCrystal().getLocation(), location) > PROJECTILE_RANGE_SQUARED) + Location crystalLocation = tower.getCrystal().getLocation(); + + if (tower.isDead() || tower.getOwner().equals(team) || UtilMath.offsetSquared(crystalLocation, location) > PROJECTILE_RANGE_SQUARED || shouldCancelDamage(tower, shooter)) { continue; } 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 af7f68465..439390385 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 @@ -76,7 +76,7 @@ public class MobaTraining extends Moba C.cYellow + "of " + C.cGold + "Gold" + C.cYellow + " your team earns." }, { - C.cYellow + "The is the " + C.cDRedB + "Pumpkin King", + C.cYellow + "This is the " + C.cDRedB + "Pumpkin King", C.cYellow + "He spawns at " + C.cGreen + "10 minutes" + C.cYellow + " into the game.", C.cYellow + "The team that kills him will be given increased", C.cYellow + "regeneration and damage." @@ -92,7 +92,7 @@ public class MobaTraining extends Moba C.cYellow + "They will fight each other and help destroy enemy Towers." }, { - C.cYellow + "With the " + C.cGold + "Gold" + C.cYellow + "you earn you can", + C.cYellow + "With the " + C.cGold + "Gold" + C.cYellow + " you earn you can", C.cYellow + "spend it on upgrades for your weapons and armor.", C.cYellow + "You can do this via the gold ingot in your inventory", C.cYellow + "during the game or by clicking on the Villager." From 85007820d2e35ac7bf989a0b9fce4b725add472f Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 28 Jun 2017 23:38:50 +0100 Subject: [PATCH 23/56] Add a go-back button to kit selection --- .../core/common/entity/ClientArmorStand.java | 22 +++++--- .../games/moba/boss/wither/WitherBoss.java | 44 +++++++-------- .../boss/wither/WitherBossOvertimeAI.java | 7 +++ .../arcade/game/games/moba/kit/HeroSkill.java | 7 ++- .../games/moba/prepare/PrepareSelection.java | 56 ++++++++++++++----- .../arcade/game/games/moba/util/MobaUtil.java | 5 ++ 6 files changed, 95 insertions(+), 46 deletions(-) diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/entity/ClientArmorStand.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/entity/ClientArmorStand.java index 385c9c3ce..1c49ca731 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/entity/ClientArmorStand.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/entity/ClientArmorStand.java @@ -79,12 +79,6 @@ public class ClientArmorStand implements ArmorStand _observers = players; } - public void sendSpawnPacket(Player player) - { - Packet packet = new PacketPlayOutSpawnEntityLiving(_armorStand); - UtilPlayer.sendPacket(player, packet); - } - public EntityArmorStand getHandle() { return _armorStand; @@ -182,7 +176,7 @@ public class ClientArmorStand implements ArmorStand @Override public Location getLocation() { - return new Location(getWorld(), _armorStand.locX, _armorStand.locY, _armorStand.locZ); + return new Location(getWorld(), _armorStand.locX, _armorStand.locY, _armorStand.locZ, _armorStand.yaw, _armorStand.pitch); } @Override @@ -246,6 +240,20 @@ public class ClientArmorStand implements ArmorStand return false; } + public boolean teleport(Location location, Player player) + { + double pX = _armorStand.locX; + double pY = _armorStand.locY; + double pZ = _armorStand.locZ; + float pYaw = _armorStand.yaw; + float pPitch = _armorStand.pitch; + + _armorStand.setPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); + UtilPlayer.sendPacket(player, new PacketPlayOutEntityTeleport(_armorStand)); + _armorStand.setPositionRotation(pX, pY, pZ, pYaw, pPitch); + return false; + } + @Override public boolean teleport(Location loc) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java index 22b4597d1..6e190779b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java @@ -40,7 +40,7 @@ public class WitherBoss extends MobaBoss private static final String NAME = "Wither Boss"; private static final float SPEED_TARGET = 4F; private static final float SPEED_HOME = 6F; - private static final int INITIAL_HEALTH = 125; + private static final int INITIAL_HEALTH = 275; private static final MobaAIMethod AI_METHOD = new MobaDirectAIMethod(); private static final int MIN_INFORM_TIME = (int) TimeUnit.SECONDS.toMillis(30); @@ -66,9 +66,8 @@ public class WitherBoss extends MobaBoss { ArmorStand stand = _location.getWorld().spawn(_location, ArmorStand.class); - // Reducing the wither's health to 10% gives a shield like effect. stand.setMaxHealth(INITIAL_HEALTH); - stand.setHealth(INITIAL_HEALTH * 0.1); + stand.setHealth(INITIAL_HEALTH); stand.setGravity(false); MobaUtil.setTeamEntity(stand, _team); @@ -148,20 +147,6 @@ public class WitherBoss extends MobaBoss return; } - // If not damageable - if (!_damageable) - { - Player damager = event.GetDamagerPlayer(true); - - if (damager != null) - { - damager.sendMessage(F.main("Game", "You must destroy both towers before attacking the Wither!")); - damager.playSound(damager.getLocation(), Sound.NOTE_BASS, 1, 0.8F); - } - - return; - } - LivingEntity damagee = event.GetDamageeEntity(); Player damager = event.GetDamagerPlayer(true); @@ -175,6 +160,18 @@ public class WitherBoss extends MobaBoss } } + // If not damageable + if (!_damageable) + { + if (damager != null) + { + damager.sendMessage(F.main("Game", "You must destroy both towers before attacking the Wither!")); + damager.playSound(damager.getLocation(), Sound.NOTE_BASS, 1, 0.8F); + } + + return; + } + // Inform the team if (UtilTime.elapsed(_lastInform, MIN_INFORM_TIME)) { @@ -214,11 +211,14 @@ public class WitherBoss extends MobaBoss return; } - // Here we can remove the shield effect, as the wither is no longer invincible - if (!tower.isFirstTower()) + if (tower.isFirstTower()) { + _entity.setHealth(_entity.getHealth() - 50); + } + else + { + _entity.setHealth(_entity.getHealth() - 100); _damageable = true; - _entity.setHealth(INITIAL_HEALTH); updateDisplay(); } } @@ -235,13 +235,13 @@ public class WitherBoss extends MobaBoss for (Player player : _team.GetPlayers(true)) { - UtilTextTop.displayTextBar(player, percent, _team.GetColor() + "Your Wither"); + UtilTextTop.displayTextBar(player, percent, _team.GetColor() + "Your Wither"); } } public double getHealthPercentage() { - return _damageable ? (_entity.getHealth() / _entity.getMaxHealth()) : 1; + return _entity.getHealth() / _entity.getMaxHealth(); } private void updateDisplay() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBossOvertimeAI.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBossOvertimeAI.java index ea389a6a6..67bd868be 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBossOvertimeAI.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBossOvertimeAI.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.moba.boss.wither; +import mineplex.core.common.geom.Polygon2D; import mineplex.core.common.util.UtilMath; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.games.moba.Moba; @@ -45,4 +46,10 @@ public class WitherBossOvertimeAI extends MobaAI _aiMethod.updateMovement(_entity, _target, 2); } + + @Override + public Polygon2D getBoundaries() + { + return null; + } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java index 48b6529c9..2a19d34cd 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java @@ -328,17 +328,17 @@ public class HeroSkill extends Perk @Override public void run() { - long timeLeft = System.currentTimeMillis() + time - now; + long timeLeft = now + time - System.currentTimeMillis(); double percentage = (double) timeLeft / (double) time; - if (percentage >= 1) + if (percentage <= 0) { UtilTextBottom.display(C.cRedB + GetName(), player); cancel(); return; } - UtilTextBottom.displayProgress(GetName(), percentage, player); + UtilTextBottom.displayProgress(C.cWhiteB + GetName(), percentage, UtilTime.MakeStr(timeLeft), player); } }, 0, 1); @@ -356,6 +356,7 @@ public class HeroSkill extends Perk complete.run(); } useSkill(player); + Kit.GiveItems(player); cancel(); return; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/prepare/PrepareSelection.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/prepare/PrepareSelection.java index a7c4b4e99..4480e761f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/prepare/PrepareSelection.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/prepare/PrepareSelection.java @@ -22,7 +22,6 @@ import nautilus.game.arcade.game.games.moba.MobaRole; import nautilus.game.arcade.game.games.moba.kit.HeroKit; import nautilus.game.arcade.game.games.moba.kit.RoleSelectEvent; import net.minecraft.server.v1_8_R3.PacketPlayInUseEntity; -import org.bukkit.ChatColor; import org.bukkit.Color; import org.bukkit.Location; import org.bukkit.Material; @@ -91,18 +90,24 @@ public class PrepareSelection implements Listener, IPacketHandler location.setYaw(UtilAlg.GetYaw(UtilAlg.getTrajectory(location, average))); - MobaRole role = MobaRole.valueOf(entry.getKey().split(" ")[2]); - ClientArmorStand stand = ClientArmorStand.spawn(prepareLocation(location), players); + try + { + MobaRole role = MobaRole.valueOf(entry.getKey().split(" ")[2]); + ClientArmorStand stand = ClientArmorStand.spawn(prepareLocation(location), players); - stand.setCustomNameVisible(true); - stand.setCustomName(C.cGreenB + role.getName() + C.cGray + " - " + C.cGreenB + "AVAILABLE"); - stand.setArms(true); - stand.setHelmet(head); - stand.setChestplate(buildColouredStack(Material.LEATHER_CHESTPLATE, role)); - stand.setLeggings(buildColouredStack(Material.LEATHER_LEGGINGS, role)); - stand.setBoots(buildColouredStack(Material.LEATHER_BOOTS, role)); + stand.setCustomNameVisible(true); + stand.setCustomName(C.cGreenB + role.getName() + C.cGray + " - " + C.cGreenB + "AVAILABLE"); + stand.setArms(true); + stand.setHelmet(head); + stand.setChestplate(buildColouredStack(Material.LEATHER_CHESTPLATE, role)); + stand.setLeggings(buildColouredStack(Material.LEATHER_LEGGINGS, role)); + stand.setBoots(buildColouredStack(Material.LEATHER_BOOTS, role)); - _roleStands.put(stand, role); + _roleStands.put(stand, role); + } + catch (IllegalArgumentException e) + { + } } // Only spawn the NPCs once all players have been loaded into the world. }, _host.GetPlayers(true).size() * _host.TickPerTeleport + 10); @@ -124,7 +129,7 @@ public class PrepareSelection implements Listener, IPacketHandler goBackStand.setCustomNameVisible(true); goBackStand.setCustomName(C.cGreenB + "Go Back"); goBackStand.setArms(true); - goBackStand.setHelmet(new ItemStack(Material.SKULL_ITEM, (byte) 2)); + goBackStand.setHelmet(new ItemStack(Material.SKULL_ITEM)); goBackStand.setChestplate(new ItemBuilder(Material.LEATHER_CHESTPLATE).setColor(Color.MAROON).build()); goBackStand.setLeggings(new ItemBuilder(Material.LEATHER_LEGGINGS).setColor(Color.MAROON).build()); goBackStand.setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setColor(Color.MAROON).build()); @@ -190,11 +195,21 @@ public class PrepareSelection implements Listener, IPacketHandler ClientArmorStand goBackStand = _goBackStands.get(player); - if (goBackStand != null) + if (goBackStand != null && goBackStand.getEntityId() == entityId) { packetInfo.setCancelled(true); _host.getMobaData(player).setRole(null); _goBackStands.remove(player).remove(); + + for (ClientArmorStand stand2 : _kitStands.keySet()) + { + stand2.remove(player); + } + + for (ClientArmorStand stand2 : _roleStands.keySet()) + { + stand2.teleport(stand2.getLocation(), player); + } return; } @@ -218,7 +233,7 @@ public class PrepareSelection implements Listener, IPacketHandler for (ClientArmorStand stand2 : _roleStands.keySet()) { - stand2.remove(player); + stand2.teleport(stand2.getLocation().add(0, 100, 0), player); } GameTeam team = _host.GetTeam(player); @@ -243,6 +258,11 @@ public class PrepareSelection implements Listener, IPacketHandler HeroKit kit = _kitStands.get(stand); + if (goBackStand != null) + { + _goBackStands.remove(player).remove(); + } + for (ClientArmorStand stand2 : _kitStands.keySet()) { stand2.remove(player); @@ -287,6 +307,14 @@ public class PrepareSelection implements Listener, IPacketHandler stand.remove(); } + for (ClientArmorStand stand : _goBackStands.values()) + { + stand.remove(); + } + + _roleStands.clear(); + _kitStands.clear(); + _goBackStands.clear(); removePodiums(); _host.getArcadeManager().getPacketHandler().removePacketHandler(this); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/util/MobaUtil.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/util/MobaUtil.java index b4efa6382..76721ad08 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/util/MobaUtil.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/util/MobaUtil.java @@ -72,6 +72,11 @@ public class MobaUtil public static boolean isInBoundary(GameTeam owner, LivingEntity source, Location center, Polygon2D boundaries, LivingEntity target) { + if (boundaries == null) + { + return true; + } + return getEntitiesInBoundary(owner, source, center, boundaries).contains(target); } From 67d8e0863d22f9708d5d46d1c5d8af25aa10ad5b Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 29 Jun 2017 00:13:06 +0100 Subject: [PATCH 24/56] Fix overtime being at 1 minute --- .../game/arcade/game/games/moba/kit/HeroKit.java | 3 +++ .../game/games/moba/overtime/OvertimeManager.java | 2 +- .../game/arcade/game/games/moba/shop/MobaShop.java | 13 ++++++++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java index 707bc435f..4758aefcd 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java @@ -166,6 +166,9 @@ public class HeroKit extends Kit { PlayerInventory inventory = player.getInventory(); + // This is important + inventory.clear(); + // Give standard items inventory.setItem(AMMO_SLOT, _ammo); inventory.setItem(SHOP_SLOT, SHOP_ITEM); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/overtime/OvertimeManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/overtime/OvertimeManager.java index 9c2989fb4..f22986f4c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/overtime/OvertimeManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/overtime/OvertimeManager.java @@ -20,7 +20,7 @@ import java.util.concurrent.TimeUnit; public class OvertimeManager implements Listener { - private static final long OVERTIME = TimeUnit.MINUTES.toMillis(1); + private static final long OVERTIME = TimeUnit.MINUTES.toMillis(15); private final Moba _host; private boolean _enabled; 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 0fca426e2..efd64d2c9 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,6 +4,7 @@ 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,6 +43,7 @@ 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; @@ -296,11 +298,16 @@ public class MobaShop implements Listener Remove empty potions */ @EventHandler - public void removeEmptyPotions(PlayerItemConsumeEvent event) + public void removeEmptyPotions(UpdateEvent event) { - if (event.getItem().getType() == Material.POTION) + if (event.getType() != UpdateType.FAST) { - _host.getArcadeManager().runSyncLater(() -> event.getPlayer().setItemInHand(null), 1); + return; + } + + for (Player player : _host.GetPlayers(true)) + { + player.getInventory().remove(Material.GLASS_BOTTLE); } } From b8bb25b04dd506fb442a206959c8fbd1272ffa3e Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 29 Jun 2017 00:35:18 +0100 Subject: [PATCH 25/56] Only reset player health upon actual respawn --- .../game/arcade/game/games/moba/minion/MinionWave.java | 2 +- .../game/arcade/game/games/moba/shop/MobaItemEffect.java | 2 +- .../game/arcade/game/games/moba/shop/MobaShop.java | 4 ++-- .../game/games/moba/shop/effects/MobaSpeedEffect.java | 2 +- .../games/moba/shop/effects/MobaTotalHealthEffect.java | 8 ++++++-- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionWave.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionWave.java index 6339d7ed0..2ec589c7e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionWave.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionWave.java @@ -359,7 +359,7 @@ public class MinionWave implements Listener for (MobaBoss boss : bosses) { // Dead, not close enough - if (boss.isDead() || UtilMath.offsetSquared(minion.getEntity(), boss.getEntity()) > DAMAGE_RANGE_SQUARED) + if (boss.isDead() || MobaUtil.isTeamEntity(boss.getEntity(), _owner) || UtilMath.offsetSquared(minion.getEntity(), boss.getEntity()) > DAMAGE_RANGE_SQUARED) { continue; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/MobaItemEffect.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/MobaItemEffect.java index 3e37e1cc4..73b0d1b86 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/MobaItemEffect.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/MobaItemEffect.java @@ -54,7 +54,7 @@ public abstract class MobaItemEffect { } - protected void onRespawn(PlayerGameRespawnEvent event) + protected void onRespawn(PlayerGameRespawnEvent event, boolean fake) { } 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 efd64d2c9..55c40f2af 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 @@ -221,7 +221,7 @@ public class MobaShop implements Listener { if (ownedItem.getEffects() != null) { - ownedItem.getEffects().forEach(effect -> effect.onRespawn(fakeEvent)); + ownedItem.getEffects().forEach(effect -> effect.onRespawn(fakeEvent, true)); } } @@ -530,7 +530,7 @@ public class MobaShop implements Listener for (MobaItemEffect effect : item.getEffects()) { - effect.onRespawn(event); + effect.onRespawn(event, false); } } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaSpeedEffect.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaSpeedEffect.java index 15d7d7196..8505a6eb0 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaSpeedEffect.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaSpeedEffect.java @@ -16,7 +16,7 @@ public class MobaSpeedEffect extends MobaItemEffect } @Override - public void onRespawn(PlayerGameRespawnEvent event) + public void onRespawn(PlayerGameRespawnEvent event, boolean fake) { Player player = event.GetPlayer(); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaTotalHealthEffect.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaTotalHealthEffect.java index 80af5c495..7867ce364 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaTotalHealthEffect.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaTotalHealthEffect.java @@ -17,12 +17,16 @@ public class MobaTotalHealthEffect extends MobaItemEffect } @Override - public void onRespawn(PlayerGameRespawnEvent event) + public void onRespawn(PlayerGameRespawnEvent event, boolean fake) { Player player = event.GetPlayer(); player.setMaxHealth(player.getMaxHealth() + _health); - player.setHealth(player.getMaxHealth()); + + if (!fake) + { + player.setHealth(player.getMaxHealth()); + } } @Override From 7bd5d65823b92dfd9fefecf7fa8e4b54369f91c6 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 29 Jun 2017 00:37:42 +0100 Subject: [PATCH 26/56] Reduce the amount of gems given for gold earned --- .../nautilus/game/arcade/game/games/moba/gold/GoldManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/gold/GoldManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/gold/GoldManager.java index 312aebec7..4ce28a71d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/gold/GoldManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/gold/GoldManager.java @@ -148,7 +148,7 @@ public class GoldManager implements Listener if (amount > 20 && reason != null) { - _host.AddGems(player, (double) amount / 2D, reason, true, true); + _host.AddGems(player, (double) amount / 3D, reason, true, true); player.sendMessage(F.main("Game", C.cGold + "+" + amount + " gold (" + reason + ")" + C.cGray + ".")); } } From 7459a458cd75bf1119800178020e0970ade14e9b Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:28:39 -0400 Subject: [PATCH 27/56] Add gaussian methods to UtilMath --- .../mineplex/core/common/util/UtilMath.java | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) diff --git a/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilMath.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilMath.java index 5e37e0ac5..1b3b40835 100644 --- a/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilMath.java +++ b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilMath.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; import org.bukkit.Location; import org.bukkit.entity.Entity; @@ -13,6 +14,8 @@ import org.bukkit.util.Vector; public class UtilMath { + public static final double TAU = Math.PI * 2D; + public static double trim(int degree, double d) { String format = "#.#"; @@ -332,4 +335,119 @@ public class UtilMath return min; } + + /** + * Creates an array of points, arranged in a circle normal to a vector. + * + * @param center The center of the circle. + * @param normal A vector normal to the circle. + * @param radius The radius of the circle. + * @param points How many points to make up the circle. + * + * @return An array of points of the form double[point #][x=0, y=1, z=3]. + */ + public static double[][] normalCircle(Location center, Vector normal, double radius, int points) + { + return normalCircle(center.toVector(), normal, radius, points); + } + + /** + * Creates an array of points, arranged in a circle normal to a vector. + * + * @param center The center of the circle. + * @param normal A vector normal to the circle. + * @param radius The radius of the circle. + * @param points How many points to make up the circle. + * + * @return An array of points of the form double[point #][x=0, y=1, z=3]. + */ + public static double[][] normalCircle(Vector center, Vector normal, double radius, int points) + { + Vector n = normal.clone().normalize(); + Vector a = n.clone().add(new Vector(1, 1, 1)).crossProduct(n).normalize(); + Vector b = n.getCrossProduct(a).normalize(); + + double[][] data = new double[points][3]; + + double interval = TAU / points; + double theta = 0; + + for (int i = 0; i < points; i++) + { + data[i][0] = center.getX() + (radius * ((Math.cos(theta) * a.getX()) + (Math.sin(theta) * b.getX()))); + data[i][1] = center.getY() + (radius * ((Math.cos(theta) * a.getY()) + (Math.sin(theta) * b.getY()))); + data[i][2] = center.getZ() + (radius * ((Math.cos(theta) * a.getZ()) + (Math.sin(theta) * b.getZ()))); + theta += interval; + } + + return data; + } + + /** + * Slightly randomize a location with a standard deviation of one. + * + * @param location The location to randomize. + * + * @return The original location, now gaussian-randomized. + */ + public static Location gauss(Location location) + { + return gauss(location, 1, 1, 1); + } + + /** + * Slightly randomize a vector with a standard deviation of one. + * + * @param vector The location to randomize. + * + * @return The randomized vector, now gaussian-randomized. + */ + public static Vector gauss(Vector vector) + { + return gauss(vector, 1, 1, 1); + } + + /** + * Slightly randomize a location with a standard deviation of one.
+ * + * This method only accepts positive values for all of its arguments.
+ * + * A good parameter set for small offsets is (loc, 10, 10, 10). + * + * @param location The location to randomize. + * @param x A granularity control for the x-axis, higher numbers = less randomness + * @param y A granularity control for the y-axis, higher numbers = less randomness + * @param z A granularity control for the z-axis, higher numbers = less randomness + * + * @return The original location, now gaussian-randomized + */ + public static Location gauss(Location location, double x, double y, double z) + { + return location.clone().add( + x <= 0 ? 0 : (ThreadLocalRandom.current().nextGaussian() / x), + y <= 0 ? 0 : (ThreadLocalRandom.current().nextGaussian() / y), + z <= 0 ? 0 : (ThreadLocalRandom.current().nextGaussian() / z)); + } + + /** + * Slightly randomize a vector with a standard deviation of one.
+ * + * This method only accepts positive values for all of its arguments.
+ * + * A good parameter set for small offsets is (loc, 10, 10, 10). + * + * @param vector The location to randomize. + * @param x A granularity control for the x-axis, higher numbers = less randomness + * @param y A granularity control for the y-axis, higher numbers = less randomness + * @param z A granularity control for the z-axis, higher numbers = less randomness + * + * @return The randomized vector, now gaussian-randomized + */ + public static Vector gauss(Vector vector, double x, double y, double z) + { + return vector.clone().add(new Vector( + x <= 0 ? 0 : (ThreadLocalRandom.current().nextGaussian() / x), + y <= 0 ? 0 : (ThreadLocalRandom.current().nextGaussian() / y), + z <= 0 ? 0 : (ThreadLocalRandom.current().nextGaussian() / z))); + } } From 93015151dbb068972b3a4ee27ab8e5aac60ff408 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:29:02 -0400 Subject: [PATCH 28/56] Add Hat skin data --- .../src/mineplex/core/common/skin/SkinData.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/skin/SkinData.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/skin/SkinData.java index f803154ce..6b7b7a675 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/skin/SkinData.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/skin/SkinData.java @@ -78,6 +78,8 @@ public class SkinData public static final SkinData LARISSA = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0NjE0MTUxMzQsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9jYThjNDRhOWVmZTY3NzExMDYzMjM5ODEwNDRmOTdjYmM1OWJmZmRlOGI1ODdlMGQzMWE4N2ViMDhhMmExZiJ9fX0=", "Lyac51CrnMK/CI2dWgGQLowAm/ZnQMpf0Ict/gqVrUgJVlGWDIVG77Rd1JyMQDEeESvTmoyivH+usiO0ePW95qjisqT3R43YEmLi85CqctGYqLKeSYpGYwYRz8Euw57LwJAALKOMLhVc2s4h2Or9nTecunG8KSmkCuZc4H1qh3frU+ltuV4HLqgdFUULbIHTggyvqiINov2tBqkkXeEjT7sOcTJCJNgNYU2O7//qg5kJmhso2CKHlRLpmy9LsaUK/Z+BzUmoRbwQgSwr3mz7dFAdlVWWKvKNcgX3nt1et0DIig3JKYmrnQX2Fprg+kWcr3nuizzLgjVwAlADC48P3DN0s/VBty2AYoWie16VNPIM+CV4BF2JRQ34GxZ8XceXbCKURrOjoCBgLGHvIhRW35eicoh26xp3/mwLvk5anPi5StJ/qEuzWJALeWcNbLsnt21m2MZp9h/MxaY6ftWOTzjTr5CYVd/teJyscMnGK4+lcV1dlt12lhbDMv6I+iz8iG9NIzuW5OvGkax90dA/Gq+Cd9FXVThPY4ufxWttHcTqgPB64GfMn6rywRm1B0eO1pJpYc/KlJZlW/PuaO8L1assyJs5KkOypBSy3zc6TO6pzgeOZv+VpQfA/UWpogv6ofmTpgdtwpjLFGSzIKTDXvF6FftALKVlYypG0fYbssA="); public static final SkinData ROWENA = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0Njk1MTcxOTgsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9jNDY1OGExODY4YzNhNjhhZWVhZmZkOTUxZDQyYmZkN2QxYTRjNGZjNDJjZDI2YTlmYzhkNTNmOTkxMTM1ZCJ9fX0=", "OqXMyH9SMmQ/Pwmb21In29YnCxbsN6yqUxfudN6KNgDwRUK6y072XhW6TIoTh9JQLAUKftpeVB53tk0LxHIxnsuBMrIHvETPDQFysIc/6xq3ABogs+zqFzcp5jk6S73HiD78JxLq5pzfUzhgDPMPuZP5Q/u2q1rYbe6B9lVEJ5sUcxBLUTossgucoR4qXYAlWVQdHRhq85Ol8a+OU7ruw3HackNGto6wt6u2MigCtiHVTt9XhJ/AJE4ScodQ3XwW4L6urpl/lV2OMCsr3mCjjjEz2EMhDbCWxrAorQ9aPpMbDkHBS+4TC1tbMGUlKhj5n+EZBYVaeLr4NGPACPSdT35p/2Zra49+DXn9Xn+681yNEB0ghTdsnsgwXg76+HVPHPqRHQMuTBQGQyGZaaTX/zE0tFjH+osMElLdb8dmz3dC7kQA4A13B2phj3YbMSF1FoU4GvnPKIQn6JIuEd6hd+pRLUW7Y+mgYIHHX1FT0ihrXAyVO6lQQ6rs92gSQr7sxC7tnhPSMFcmh7OcJYcbRpn97GMubthPLanOhVy7CKqjmwIkEVtYgP28idigKwNJ+sJuUONrOu7nMKl1UTD5EEapOacc/np6UhdSw8yW+LnWD/x9ueYz9ksnyRrJgcOa41izo/WCbjPK/j3JVezr9Q3x1yveWuFmdl7CGYdXngw="); public static final SkinData BIFF = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0NjEzMDQzNjYsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9mOWMyMTE3ZDY0ZWE0ZmUxMWZiY2NhZmE2YzU5YzhlZjY3NDVkZjVkMTZjM2QwMmI4NmI2OTlmZWJjNTA0OGI1In19fQ==", "mJMpEvQ4A02z0S/chgLm5bKrrrd+zmp7A0012AB7b3KlyIHoLKEDDz+ZJgJtvN6skOqed3P+yNVqkxitugXaZZP8Af9J+/TseHn+vOy6CTK5tykRSY3Zb8Zmw1kn36v/SARAVtDIHD53yuPgJayYSAbVB7aknj1Q8XBQGUmZRMRxWWxeD7rQTOwgRYI4YJeKFf4UL9i6zxvOJuHsOAouJ7scu7VohG8vgR77Js/Z8rSu8/aSG+O9AQdzP6h9ixYNFkkQOHm7DseK/5tsWKHM4FYBgjIDKt3ApQokSbhThzGB55BA1qjXZkfCoOb13y1nOMC8WoIL6Ees1qzxG3VloGx2WAZLh+Q+/irwrFDMxk1zeU5fIRuj1c/UIM2HKdxxWgoRdrZ8ww/Jrll6maiOBx7geMn/0aOUbJ2U7gkTif6RG6YNS5YN9ZQDLh72l/akJMxF3SlmuAPmLs2kBghQ6eD2YQKuxWR/Hf1yS1YXtogFVNsGnzC1nda7F48EGL3zI+kCajbDlAGQ32aRt0btbEQ+Gj575kir3Aa53qiZ0YOIYQlhgZdOsTN2NE2s8uuy/15Rgc6K3ydgEmSZfdqyMyW0Dy7pE5TfVL8DumKRVRXdOceT5WfnW7MyqSmdorP5ab1fw2wLOnAVzhJmW8oXXNSs77WJ1/PURclxOWB4IF8="); + public static final SkinData CANADA_HAT = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTg2MDE5MDYwNzYsInByb2ZpbGVJZCI6IjdkYTJhYjNhOTNjYTQ4ZWU4MzA0OGFmYzNiODBlNjhlIiwicHJvZmlsZU5hbWUiOiJHb2xkYXBmZWwiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2M2MTExNTNmODdmMjZjMzRmOTdkODIxM2ZmOTk1ZGJlNjcyZWJkNGM0NjRkNGFkNzM5MWFlNDNjMWU3YTllIn19fQ", "QMw6e1FXl/Xrt+BbfPKsz3OHyOxL9CEPffS9grxRLD6gbLbMD84OT3+bge5V9lBFn9PPnTyID+WTF24qHj4ADTTgK94ykNedCEO6R1wS0FZKPI1UjwOxMhIG5ZeVr7+HxITgGU4Xz94IigBkvW//f2ZGelMvS0GLCrm4iCovEBMUzyYJ2dZ4xgzFSH6v+9efK4/SBAJaj8mHjXpDxU58/vskTGI3T9t5sWlZLXgId9vHcMj0GH3Un6yvUXiMkh38V/rAEM8/R8q08xUVyW0e2R38qWQV2+eKvsG8GmJmgkU/78wA9cKGZdrEz0pnr80eGNCbvXqQvC/czYhEhDapgxfndcHLX8q/Zk3I8msNr340E4ZrQL61Yl7KcVC1qEUQVu3cosq5A6ckXLGvv//HSwXVO8M9ThUbuEC8QjiS/fMFufnVa18lHrVulnfb/2KQ4yPsoCHK/zvGtRkWtD1sLOIfehN+sxCLiaz80ILBiwN0oHITfNHpJzoa4kF/OrxxCualp4Sv5o5TXBv7aWsO18v9ixb9o9CmJKKE8MUl5xmRVz4HQD4dyOfcwtPuxmfcYjJrxqBijdQMrcgLzqqMs+DUqcZZlxM7M5GaNUoEvL9tJNGpZaB2OrBw0DTk5wx15XfANCH4egx8X4+Iy2RUoFthHX3BsVazG7fjSiDnUtI="); + public static final SkinData AMERICA_HAT = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTg2MDI3MjMyODgsInByb2ZpbGVJZCI6IjNlMjZiMDk3MWFjZDRjNmQ5MzVjNmFkYjE1YjYyMDNhIiwicHJvZmlsZU5hbWUiOiJOYWhlbGUiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzYzMjI0MDhkYzBiZjMxNjU4N2RiNDJiN2Q5ZmViZTUwYWQ4MGY0OGU4Njc5YzI0NTFkOTk3MTdjZmVjNTdkYWQifX19","oRo6DIuhOTaXDkFsgwJ488LWqx5d1QpwtglwG1SdEvkbX1aCMGdZyDm9YIopQRjfBg0uYKQFetOZ1ZkdMmc/aKC5/dm0+Ema7g8AUzjwf4OaSLH1r4C1UJ4ruaNG5diBxNTkYnMa7yT8zvyEr22CA7lUOIgTh8ymBfSGK35RPhsn8jM0hDjdhjemBAlxKpiioByfmAQbwokNBOrXfh/PnKq+iJYg4WpMSZ1zo5Rr0CzLXwu+/T3dvrb6mg7qry7J3Lj5/qn6iIdBcjJBeyvy1sCo45jQ3Rzc6oL/84Vu5Dpn395EqUK8Sa7mdpVpATTcj56TCjkNNtDapXNqyO/IIQuzU4wnBKNQmZefaxRl6LV0DhZ8n8YQaPj6hH/mr2oDsd23+jejjqu6Y95ReTyukp06mIGqgekmrdZV2etML2oMAOTv9ieVvqtfo5gEomYs+NFAL7rMmzjAlhd17VOgqNRMpmJazAHWOYKl8KdOH99wGDe5XcyKHysh+qyHKMvhPJztIeAEaosynF/aGHghH2PM354KCuUVNmdR5G7UZUoG9ZA5ZU3EzZ854jeqxcqw3jzb6qL7A83QNuFqOsb87ugL/jO3QEDdQ9drdf3WAQauQGkU3nYBrls5wxoMrQ+Ceth+FtZw9a1v7dc+DEWOeJKCtOAIskb29pv6OcRe0Wk="); // Comments this out for now, so it doesn't load the player profile // A better way to do this would check for the properties when getting the skull or the skin From 39f11da63444935d7c6d83fd473fef07935a1b3d Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:30:29 -0400 Subject: [PATCH 29/56] Create flag gadget type --- .../core/common/util/banner/CountryFlag.java | 57 +++++++++-- .../cosmetic/ui/button/open/OpenFlags.java | 25 +++++ .../core/cosmetic/ui/page/FlagPage.java | 62 ++++++++++++ .../core/cosmetic/ui/page/GadgetPage.java | 15 ++- .../mineplex/core/cosmetic/ui/page/Menu.java | 84 +++++++++++----- .../core/gadget/types/FlagGadget.java | 95 +++++++++++++++++++ .../core/gadget/types/GadgetType.java | 3 +- 7 files changed, 302 insertions(+), 39 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/open/OpenFlags.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/FlagPage.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/types/FlagGadget.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/banner/CountryFlag.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/banner/CountryFlag.java index d4e48144f..54626d736 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/banner/CountryFlag.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/banner/CountryFlag.java @@ -1,17 +1,30 @@ package mineplex.core.common.util.banner; import org.bukkit.DyeColor; +import org.bukkit.Material; import org.bukkit.block.banner.Pattern; import org.bukkit.block.banner.PatternType; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.BannerMeta; + +import static org.bukkit.DyeColor.*; +import static org.bukkit.block.banner.PatternType.*; public enum CountryFlag { + // Vetted + MINEPLEX("Mineplex", "Mineplexian", BLACK, new Pattern(ORANGE, TRIANGLE_TOP), new Pattern(BLACK, TRIANGLES_TOP), + new Pattern(ORANGE, STRIPE_LEFT), new Pattern(ORANGE, STRIPE_RIGHT), new Pattern(BLACK, BORDER), + new Pattern(BLACK, STRIPE_BOTTOM)), + USA("The United States of America", "American", RED, new Pattern(WHITE, STRIPE_SMALL), new Pattern(BLUE, SQUARE_TOP_RIGHT), + new Pattern(BLUE, SQUARE_TOP_RIGHT), new Pattern(BLUE, SQUARE_TOP_RIGHT)), + + CANADA("Canada", "Canadian", WHITE, new Pattern(RED, CROSS), new Pattern(WHITE, STRIPE_LEFT), new Pattern(RED, STRIPE_MIDDLE), + new Pattern(WHITE, BORDER), new Pattern(RED, STRIPE_TOP), new Pattern(RED, STRIPE_BOTTOM)), + + // Not Vetted BRAZIL(DyeColor.GREEN, new Pattern(DyeColor.YELLOW, PatternType.RHOMBUS_MIDDLE), new Pattern(DyeColor.BLUE, PatternType.CIRCLE_MIDDLE)), - USA(DyeColor.RED, new Pattern(DyeColor.WHITE, PatternType.STRIPE_SMALL), new Pattern(DyeColor.BLUE, PatternType.SQUARE_TOP_RIGHT)), - CANADA(DyeColor.WHITE, new Pattern(DyeColor.RED, PatternType.STRIPE_TOP), new Pattern(DyeColor.RED, PatternType.STRIPE_BOTTOM), - new Pattern(DyeColor.RED, PatternType.CIRCLE_MIDDLE)), UK(DyeColor.BLUE, new Pattern(DyeColor.WHITE, PatternType.STRIPE_DOWNLEFT), new Pattern(DyeColor.WHITE, PatternType.STRIPE_DOWNRIGHT), new Pattern(DyeColor.RED, PatternType.STRAIGHT_CROSS), new Pattern(DyeColor.RED, PatternType.CROSS)), IRELAND(DyeColor.WHITE, new Pattern(DyeColor.LIME, PatternType.STRIPE_TOP), new Pattern(DyeColor.ORANGE, PatternType.STRIPE_BOTTOM)), @@ -54,17 +67,47 @@ public enum CountryFlag new Pattern(DyeColor.GREEN, PatternType.STRIPE_CENTER), new Pattern(DyeColor.BLACK, PatternType.TRIANGLE_BOTTOM)), POLAND(DyeColor.RED, new Pattern(DyeColor.WHITE, PatternType.HALF_VERTICAL_MIRROR)); - private DyeColor _baseColor; - private Pattern[] _patterns; + private final String _country; + private final String _adjective; + private final DyeColor _baseColor; + private final Pattern[] _patterns; - CountryFlag(DyeColor baseColor, Pattern... patterns){ + CountryFlag(String country, String adjective, DyeColor baseColor, Pattern... patterns) + { + _country = country; + _adjective = adjective; _baseColor = baseColor; _patterns = patterns; } + CountryFlag(DyeColor baseColor, Pattern... patterns) + { + this("", "", baseColor, patterns); + } + public ItemStack getBanner() { - return UtilBanner.createBanner(_baseColor, _patterns); + ItemStack banner = new ItemStack(Material.BANNER); + BannerMeta bannerMeta = (BannerMeta) banner.getItemMeta(); + bannerMeta.setBaseColor(_baseColor); + + for (Pattern pattern : _patterns) + { + bannerMeta.addPattern(pattern); + } + + banner.setItemMeta(bannerMeta); + return banner; + } + + public String getCountryName() + { + return _country; + } + + public String getCountryAdjective() + { + return _adjective; } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/open/OpenFlags.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/open/OpenFlags.java new file mode 100644 index 000000000..987d549ac --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/open/OpenFlags.java @@ -0,0 +1,25 @@ +package mineplex.core.cosmetic.ui.button.open; + +import mineplex.core.cosmetic.ui.page.FlagPage; +import mineplex.core.cosmetic.ui.page.HatPage; +import mineplex.core.cosmetic.ui.page.Menu; +import mineplex.core.gadget.types.Gadget; +import org.bukkit.entity.Player; + +/** + * @author J Teissler + * @date 6/26/17 + */ +public class OpenFlags extends OpenPageButton +{ + public OpenFlags(Menu menu, Gadget active) + { + super(menu, active); + } + + @Override + protected void leftClick(Player player) + { + getMenu().getShop().openPageForPlayer(player, new FlagPage(getMenu().getPlugin(), getMenu().getShop(), getMenu().getClientManager(), getMenu().getDonationManager(), "Flags", player)); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/FlagPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/FlagPage.java new file mode 100644 index 000000000..1a2b98635 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/FlagPage.java @@ -0,0 +1,62 @@ +package mineplex.core.cosmetic.ui.page; + +import mineplex.core.account.CoreClientManager; +import mineplex.core.common.util.C; +import mineplex.core.cosmetic.CosmeticManager; +import mineplex.core.cosmetic.ui.CosmeticShop; +import mineplex.core.donation.DonationManager; +import mineplex.core.gadget.types.Gadget; +import mineplex.core.gadget.types.GadgetType; +import mineplex.core.shop.item.IButton; +import mineplex.core.shop.item.ShopItem; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; + +import java.util.List; + +/** + * @author J Teissler + * @date 6/26/17 + */ +public class FlagPage extends GadgetPage +{ + public FlagPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name, + Player player) + { + super(plugin, shop, clientManager, donationManager, name, player); + } + + @Override + protected void buildPage() + { + int slot = 10; + + List list = getPlugin().getGadgetManager().getGadgets(GadgetType.FLAG); + if(list != null) + for (Gadget gadget : list) + { + addGadget(gadget, slot); + + if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.FLAG) == gadget) + { + addGlow(slot); + } + + slot++; + + if (slot % 9 == 8) + { + slot += 2; + } + } + + addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() + { + public void onClick(Player player, ClickType clickType) + { + getShop().openPageForPlayer(getPlayer(), new Menu(getPlugin(), getShop(), getClientManager(), getDonationManager(), player)); + } + }); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/GadgetPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/GadgetPage.java index 657d98b30..12523a911 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/GadgetPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/GadgetPage.java @@ -8,6 +8,7 @@ import java.util.Arrays; import java.util.List; import java.util.Locale; +import mineplex.core.gadget.types.FlagGadget; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; @@ -60,12 +61,16 @@ public class GadgetPage extends ShopPageBase addGadget(gadget, slot); if (getPlugin().getInventoryManager().Get(getPlayer()).getItemCount(gadget.getDisplayName()) > 0) + { addGlow(slot); + } slot++; - if (slot == 17 || slot == 26) + if (slot % 9 == 8) + { slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() @@ -366,7 +371,7 @@ public class GadgetPage extends ShopPageBase meta.setLore(itemLore); gadgetItemStack.setItemMeta(meta); - if (gadget.getGadgetType() == GadgetType.ARROW_TRAIL || gadget.getGadgetType() == GadgetType.DEATH + /*if (gadget.getGadgetType() == GadgetType.ARROW_TRAIL || gadget.getGadgetType() == GadgetType.DEATH || gadget.getGadgetType() == GadgetType.PARTICLE || gadget.getGadgetType() == GadgetType.DOUBLE_JUMP) { if (gadget.getCost(GlobalCurrency.TREASURE_SHARD) == -8) @@ -377,7 +382,7 @@ public class GadgetPage extends ShopPageBase bannerMeta.setLore(meta.getLore()); gadgetItemStack.setItemMeta(bannerMeta); } - } + }*/ addButton(slot, new ShopItem(gadgetItemStack, false, false).hideInfo(), new DeactivateGadgetButton(gadget, this)); } @@ -389,7 +394,7 @@ public class GadgetPage extends ShopPageBase meta.setLore(itemLore); gadgetItemStack.setItemMeta(meta); - if (gadget.getGadgetType() == GadgetType.ARROW_TRAIL || gadget.getGadgetType() == GadgetType.DEATH + /*if (gadget.getGadgetType() == GadgetType.ARROW_TRAIL || gadget.getGadgetType() == GadgetType.DEATH || gadget.getGadgetType() == GadgetType.PARTICLE || gadget.getGadgetType() == GadgetType.DOUBLE_JUMP) { if (gadget.getCost(GlobalCurrency.TREASURE_SHARD) == -8) @@ -400,7 +405,7 @@ public class GadgetPage extends ShopPageBase bannerMeta.setLore(meta.getLore()); gadgetItemStack.setItemMeta(bannerMeta); } - } + }*/ /*if (gadget instanceof MorphStray) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java index 8a27df36e..084025a09 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java @@ -1,11 +1,17 @@ package mineplex.core.cosmetic.ui.page; import java.util.ArrayList; +import java.util.Arrays; import java.util.EnumMap; import java.util.List; import java.util.Map; +import mineplex.core.common.util.banner.CountryFlag; +import mineplex.core.cosmetic.ui.button.open.OpenFlags; +import mineplex.core.itemstack.ItemBuilder; +import org.bukkit.DyeColor; import org.bukkit.Material; +import org.bukkit.block.Banner; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -40,6 +46,10 @@ import mineplex.core.mount.Mount; import mineplex.core.pet.PetType; import mineplex.core.shop.item.ShopItem; import mineplex.core.shop.page.ShopPageBase; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.BannerMeta; +import org.bukkit.inventory.meta.ItemMeta; public class Menu extends ShopPageBase { @@ -64,35 +74,46 @@ public class Menu extends ShopPageBase List shardLore = new ArrayList(); shardLore.add(" "); - shardLore.add(C.cGray + "This seems like it might come in"); - shardLore.add(C.cGray + "handy. Maybe I can collect more!"); + shardLore.add(C.cGray + "These seem like they might come in"); + shardLore.add(C.cGray + "handy. Maybe I should collect more!"); ShopItem shards = new ShopItem(Material.PRISMARINE_SHARD, C.cAqua + C.Bold + treasureShards + " Treasure Shards", shardLore.toArray(new String[0]), 0, false); - // Cosmetic Items - int[] slots = UtilUI.getIndicesFor(15, 0, 5, 1); - /*int particleSlot = 9;//slots[0]; - int arrowSlot = 11;//slots[1]; - int jumpSlot = 13;//slots[2]; - int deathSlot = 15;//slots[3]; - int gadgetSlot = 27;//slots[4]; - int morphSlot = 29;//slots[5]; - int mountSlot = 31;//slots[6]; - int petSlot = 33;//slots[7]; - int hatSlot = 35;//slots[8]; - int costumeSlot = 45;//slots[9]; - int musicSlot = 47;//slots[10]; - int tauntSlot = 49;//slots[11]; - int winEffectSlot = 51; - int gameModifierSlot = 53;*/ - int particleSlot = slots[0], arrowSlot = slots[1], jumpSlot = slots[2], - deathSlot = slots[3], gadgetSlot = slots[4], morphSlot = slots[5], - mountSlot = slots[6], petSlot = slots[7], hatSlot = slots[8], - costumeSlot = slots[9], musicSlot = slots[10], tauntSlot = slots[11], - winEffectSlot = slots[12], gameModifierSlot = slots[13], balloonsSlot = slots[14], - kitSelectorSlot = balloonsSlot + 4; + int deathSlot = 1; + int jumpSlot = 28; + int particleSlot = 10; + int winEffectSlot = 13; + int shardSlot = 22; + int arrowSlot = 19; + int tauntSlot = 31; + int gameModifierSlot = 21; + int kitSelectorSlot = 23; + int musicSlot = 48; + int mountSlot = 50; + int balloonsSlot = 47; + int petSlot = 51; + int gadgetSlot = 49; + int hatSlot = 7; + int flagSlot = 34; + int morphSlot = 25; + int costumeSlot = 16; + + addItem(shardSlot, shards); + + ItemStack pane = new ItemBuilder(Material.STAINED_GLASS_PANE).setData((byte)15).setTitle("").build(); + for (int i = 0; i <= 45; i += 9) addItem(i, pane.clone()); + for (int i = 8; i <= 53; i += 9) addItem(i, pane.clone()); + for (int i = 37; i <= 43; ++i) addItem(i, pane.clone()); + for (int i = 2; i <= 6; ++i) addItem(i, pane.clone()); + for (int i = 11; i <= 29; i += 9) addItem(i, pane.clone()); + for (int i = 15; i <= 33; i += 9) addItem(i, pane.clone()); + addItem(12, pane.clone()); + addItem(14, pane.clone()); + addItem(30, pane.clone()); + addItem(32, pane.clone()); + addItem(46, pane.clone()); + addItem(52, pane.clone()); - addItem(kitSelectorSlot + 2, shards); EnumMap ownedCount = new EnumMap<>(GadgetType.class); EnumMap maxCount = new EnumMap<>(GadgetType.class); @@ -187,7 +208,7 @@ public class Menu extends ShopPageBase if (petActive != null) addGlow(petSlot); type = GadgetType.HAT; - lore = getLore(ownedCount.get(type), maxCount.get(type), "Hats are in this year. Wear them on your head to impress the ladies.", VISIBILITY_HUB, enabled.get(type)); + lore = getLore(ownedCount.get(type), maxCount.get(type), "Hats are in this year. Wear them on your head to impress the others.", VISIBILITY_HUB, enabled.get(type)); addButton(hatSlot, new ShopItem(Material.GOLD_HELMET, "Hats", lore, 1, false), new OpenHats(this, enabled.get(type))); if (enabled.containsKey(type)) addGlow(hatSlot); @@ -227,6 +248,17 @@ public class Menu extends ShopPageBase lore = getLore(ownedCount.get(type), maxCount.get(type), "Click here to select different particles to indicate which kit you have selected!", VISIBILITY_GAME_HUB, enabled.get(type)); addButton(kitSelectorSlot, new ShopItem(Material.LEVER, "Kit Selector Particles", lore, 1, false), new OpenKitSelector(this, enabled.get(type))); if (enabled.containsKey(type)) addGlow(kitSelectorSlot); + + type = GadgetType.FLAG; + lore = getLore(ownedCount.get(type), maxCount.get(type), "Show off your country's flag!", VISIBILITY_HUB, enabled.get(type)); + addButton(flagSlot, new ShopItem(Material.BANNER, "Flags", lore, 1, false), new OpenFlags(this, enabled.get(type))); + if (enabled.containsKey(type)) addGlow(flagSlot); + BannerMeta banner = (BannerMeta) CountryFlag.MINEPLEX.getBanner().getItemMeta(); + BannerMeta meta = ((BannerMeta) getItem(flagSlot).getItemMeta()); + meta.setBaseColor(banner.getBaseColor()); + meta.setPatterns(banner.getPatterns()); + meta.addItemFlags(ItemFlag.HIDE_POTION_EFFECTS); + getItem(flagSlot).setItemMeta(meta); } private String[] getLore(int ownedCount, int maxCount, String info, String visibility, Gadget enabled) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/FlagGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/FlagGadget.java new file mode 100644 index 000000000..d28b45a17 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/FlagGadget.java @@ -0,0 +1,95 @@ +package mineplex.core.gadget.types; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilText; +import mineplex.core.common.util.banner.CountryFlag; +import mineplex.core.disguise.disguises.DisguiseSkeleton; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.gadgets.flag.FlagType; +import mineplex.core.gadget.gadgets.morph.managers.UtilMorph; +import mineplex.core.itemstack.ItemBuilder; +import org.bukkit.Color; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.entity.Skeleton; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.LeatherArmorMeta; + +/** + * @author J Teissler + * @date 6/26/17 + */ +public class FlagGadget extends Gadget +{ + private final FlagType _flag; + + public FlagGadget(GadgetManager manager, FlagType flag) + { + super(manager, GadgetType.FLAG, flag.getFlag().getCountryAdjective() + " Flag", + UtilText.splitLineToArray(C.cGray + "The flag of " + C.cWhite + flag.getFlag().getCountryName(), LineFormat.LORE), + flag.getCost(), Material.WOOL, (byte) 0); + + setDisplayItem(flag.getFlag().getBanner()); + _flag = flag; + } + + public void applyArmor(Player player, boolean message) + { + Manager.removeGadgetType(player, GadgetType.MORPH, this); + Manager.removeGadgetType(player, GadgetType.FLAG, this); + Manager.removeOutfit(player, OutfitGadget.ArmorSlot.HELMET); + + _active.add(player); + + if (message) + { + UtilPlayer.message(player, F.main("Gadget", "You unfurled your " + F.elem(getName()) + ".")); + } + } + + public void removeArmor(Player player) + { + if (_active.remove(player)) + { + UtilPlayer.message(player, F.main("Gadget", "You put away your " + F.elem(getName()) + ".")); + } + } + + @Override + public void enableCustom(Player player, boolean message) + { + applyArmor(player, message); + ItemStack flag = _flag.getFlag().getBanner(); + ItemMeta meta = flag.getItemMeta(); + meta.setDisplayName(getDisplayName()); + flag.setItemMeta(meta); + player.getInventory().setHelmet(flag); + player.updateInventory(); + } + + @Override + public void disableCustom(Player player, boolean message) + { + removeArmor(player); + player.getInventory().setHelmet(new ItemStack(Material.AIR)); + player.updateInventory(); + } + + @EventHandler(priority = EventPriority.LOWEST) + public void playerDeath(PlayerDeathEvent event) + { + disable(event.getEntity()); + } + + public FlagType getFlagType() + { + return _flag; + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/GadgetType.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/GadgetType.java index edc823e6d..386f764a4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/GadgetType.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/GadgetType.java @@ -18,7 +18,8 @@ public enum GadgetType WIN_EFFECT("Win Effects", "activeWinEffect"), GAME_MODIFIER("Game Modifiers", ""), BALLOON("Balloons", ""), - KIT_SELECTOR("Kit Selectors", "activeKitSelector"); + KIT_SELECTOR("Kit Selectors", "activeKitSelector"), + FLAG("Flags", "activeFlag"); private String _name; private String _databaseKey; From c15e8f8f90d6b335200d675249613c88a437eae8 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:30:56 -0400 Subject: [PATCH 30/56] Allow UtilParticle to accept java awt colors --- .../core/common/util/UtilParticle.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilParticle.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilParticle.java index a87bb2565..cc58f5d0d 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilParticle.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilParticle.java @@ -418,4 +418,22 @@ public class UtilParticle PlayParticleToAll(particleType, location, color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1f, count, dist); } + public static void playColoredParticle(java.awt.Color color, ParticleType particleType, Location location, int count, ViewDist dist, Player... players) + { + if (particleType != ParticleType.RED_DUST + && particleType != ParticleType.MOB_SPELL_AMBIENT) + return; + PlayParticle(particleType, location, color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1f, count, dist, players); + } + + public static void playColoredParticleToAll(java.awt.Color color, ParticleType particleType, Location location, int count, ViewDist dist) + { + if (particleType != ParticleType.RED_DUST && particleType != ParticleType.MOB_SPELL_AMBIENT) + { + return; + } + + PlayParticleToAll(particleType, location, color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1f, count, dist); + } + } \ No newline at end of file From 53d29fc9c9104be3697d0d4b1e1957c046377274 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:31:54 -0400 Subject: [PATCH 31/56] Reduce lag on Molten Snake --- .../src/mineplex/core/mount/types/MountTitanData.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitanData.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitanData.java index 137ae9bbe..ff998efee 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitanData.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitanData.java @@ -39,7 +39,7 @@ public class MountTitanData extends MountData //Nodes _nodes = new ArrayList(); - for (int i=0 ; i<30 ; i++) + for (int i=0 ; i<20 ; i++) { ArmorStand node = loc.getWorld().spawn(loc, ArmorStand.class); @@ -81,7 +81,7 @@ public class MountTitanData extends MountData Location infront = _head.getLocation().add(0, -1.5, 0); //Move - for (int i=0 ; i<30 ; i++) + for (int i=0 ; i<20 ; i++) { ArmorStand node = _nodes.get(i); From 4ef477159c5c855aa42452af6d458c8b9cd82bbc Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:33:03 -0400 Subject: [PATCH 32/56] Fix gadget pages --- .../core/cosmetic/ui/page/ArrowTrailPage.java | 10 +++++++--- .../core/cosmetic/ui/page/BalloonsPage.java | 6 +++++- .../core/cosmetic/ui/page/DeathEffectPage.java | 10 +++++++--- .../core/cosmetic/ui/page/DoubleJumpPage.java | 12 ++++++++---- .../src/mineplex/core/cosmetic/ui/page/HatPage.java | 12 ++++++++---- .../core/cosmetic/ui/page/KitSelectorPage.java | 6 +++++- .../mineplex/core/cosmetic/ui/page/MorphPage.java | 12 +++++++++--- .../mineplex/core/cosmetic/ui/page/MountPage.java | 4 +++- .../mineplex/core/cosmetic/ui/page/MusicPage.java | 4 +++- .../core/cosmetic/ui/page/ParticlePage.java | 12 ++++++++---- .../src/mineplex/core/cosmetic/ui/page/PetPage.java | 13 ++++++++++--- .../mineplex/core/cosmetic/ui/page/TauntPage.java | 12 ++++++++---- .../core/cosmetic/ui/page/WinEffectPage.java | 12 ++++++++---- .../ui/page/custompet/name/CustomPetTagPage.java | 6 ++++++ 14 files changed, 95 insertions(+), 36 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ArrowTrailPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ArrowTrailPage.java index 80db4bcd6..e4d1333f9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ArrowTrailPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ArrowTrailPage.java @@ -33,12 +33,16 @@ public class ArrowTrailPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.ARROW_TRAIL) == gadget) - addGlow(slot); + { + addGlow(slot); + } slot++; - if (slot == 17) - slot += 2; + if (slot % 9 == 8) + { + slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/BalloonsPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/BalloonsPage.java index fd0b3cf08..3208e5a05 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/BalloonsPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/BalloonsPage.java @@ -32,12 +32,16 @@ public class BalloonsPage extends GadgetPage addGadget(gadget, slot); if (gadget.isActive(getPlayer())) + { addGlow(slot); + } slot++; - if (slot == 17 || slot == 26) + if (slot % 9 == 8) + { slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DeathEffectPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DeathEffectPage.java index 07dbee136..a54b7f840 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DeathEffectPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DeathEffectPage.java @@ -33,12 +33,16 @@ public class DeathEffectPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.DEATH) == gadget) - addGlow(slot); + { + addGlow(slot); + } slot++; - if (slot == 17) - slot += 2; + if (slot % 9 == 8) + { + slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DoubleJumpPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DoubleJumpPage.java index f9748cb06..8ecddc541 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DoubleJumpPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DoubleJumpPage.java @@ -33,12 +33,16 @@ public class DoubleJumpPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.DOUBLE_JUMP) == gadget) - addGlow(slot); + { + addGlow(slot); + } slot++; - - if (slot == 17) - slot += 2; + + if (slot % 9 == 8) + { + slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/HatPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/HatPage.java index 37f472616..a21f31cea 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/HatPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/HatPage.java @@ -38,12 +38,16 @@ public class HatPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.HAT) == gadget) - addGlow(slot); + { + addGlow(slot); + } slot++; - - if (slot == 17) - slot += 2; + + if (slot % 9 == 8) + { + slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/KitSelectorPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/KitSelectorPage.java index 26b399783..6ce7f5ebd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/KitSelectorPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/KitSelectorPage.java @@ -31,12 +31,16 @@ public class KitSelectorPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.KIT_SELECTOR) == gadget) + { addGlow(slot); + } slot++; - if (slot == 17 || slot == 26 || slot == 35) + if (slot % 9 == 8) + { slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MorphPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MorphPage.java index 682140891..0689b3f07 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MorphPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MorphPage.java @@ -32,13 +32,19 @@ public class MorphPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.MORPH) == gadget) - if (!(gadget instanceof MorphBlock)) - addGlow(slot); + { + if (!(gadget instanceof MorphBlock)) + { + addGlow(slot); + } + } slot++; - if (slot == 17 || slot == 26 || slot == 35) + if (slot % 9 == 8) + { slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MountPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MountPage.java index 6e670effc..0c2b2cd60 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MountPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MountPage.java @@ -46,8 +46,10 @@ public class MountPage extends ShopPageBase addMount(mount, slot); slot++; - if (slot == 17 || slot == 26) + if (slot % 9 == 8) + { slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java index 54ff244d7..97f32d027 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java @@ -34,8 +34,10 @@ public class MusicPage extends GadgetPage slot++; - if (slot == 17) + if (slot % 9 == 8) + { slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ParticlePage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ParticlePage.java index a488c922c..168741d0a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ParticlePage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ParticlePage.java @@ -31,12 +31,16 @@ public class ParticlePage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.PARTICLE) == gadget) - addGlow(slot); + { + addGlow(slot); + } slot++; - - if (slot == 17 || slot == 26 || slot == 35) - slot += 2; + + if (slot % 9 == 8) + { + slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/PetPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/PetPage.java index e7bf684cb..264f73dbe 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/PetPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/PetPage.java @@ -231,16 +231,23 @@ public class PetPage extends ShopPageBase slot++; - if (slot == 17 || slot == 26) + if (slot % 9 == 8) + { slot += 2; + } } slot = 49; for (PetExtra petExtra : PetExtra.values()) { List itemLore = new ArrayList(); - - if (!getPlugin().getPetManager().hasActivePet(getPlayer().getName())) + + if (getPlugin().getPunishManager().GetClient(_player.getName()).IsMuted()) + { + itemLore.add(C.cRed + "You may not rename pets while muted!"); + getInventory().setItem(slot, new ShopItem(petExtra.getMaterial(), (byte)0, C.cRed + petExtra.getName(), itemLore.toArray(new String[itemLore.size()]), 1, true, false).getHandle()); + } + else if (!getPlugin().getPetManager().hasActivePet(getPlayer().getName())) { itemLore.add(C.cWhite + "You must have an active pet to use this!"); getInventory().setItem(slot, new ShopItem(petExtra.getMaterial(), (byte)0, C.cRed + petExtra.getName(), itemLore.toArray(new String[itemLore.size()]), 1, true, false).getHandle()); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/TauntPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/TauntPage.java index 687516e0f..63ef90b24 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/TauntPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/TauntPage.java @@ -38,12 +38,16 @@ public class TauntPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.TAUNT) == gadget) - addGlow(slot); + { + addGlow(slot); + } slot++; - - if (slot == 26) - slot += 2; + + if (slot % 9 == 8) + { + slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/WinEffectPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/WinEffectPage.java index cc116cbac..e66674be4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/WinEffectPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/WinEffectPage.java @@ -49,12 +49,16 @@ public class WinEffectPage extends GadgetPage } if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.WIN_EFFECT) == gadget) - addGlow(slot); + { + addGlow(slot); + } slot++; - - if (slot == 17 || slot == 26) - slot += 2; + + if (slot % 9 == 8) + { + slot += 2; + } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/custompet/name/CustomPetTagPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/custompet/name/CustomPetTagPage.java index 774ecf2d0..2350f8eba 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/custompet/name/CustomPetTagPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/custompet/name/CustomPetTagPage.java @@ -1,9 +1,14 @@ package mineplex.core.cosmetic.ui.page.custompet.name; +import mineplex.core.common.util.C; +import mineplex.core.common.util.UtilItem; +import mineplex.core.itemstack.ItemBuilder; +import mineplex.core.punish.PunishClient; import net.minecraft.server.v1_8_R3.ItemStack; import net.minecraft.server.v1_8_R3.Items; import org.bukkit.ChatColor; +import org.bukkit.Material; import org.bukkit.entity.Player; import mineplex.core.account.CoreClientManager; @@ -34,6 +39,7 @@ public class CustomPetTagPage extends ShopPageBase Date: Wed, 28 Jun 2017 01:34:51 -0400 Subject: [PATCH 33/56] Reorganize packages --- .../core/gadget/commands/LockInfusedCommand.java | 12 ++++++------ .../arrowtrail/{vampire => }/ArrowTrailBlood.java | 2 +- .../{candycane => }/ArrowTrailCandyCane.java | 2 +- .../arrowtrail/{party => }/ArrowTrailConfetti.java | 2 +- .../arrowtrail/{cupidslove => }/ArrowTrailCupid.java | 2 +- .../arrowtrail/{emerald => }/ArrowTrailEmerald.java | 2 +- .../arrowtrail/{wisdom => }/ArrowTrailEnchant.java | 2 +- .../arrowtrail/{freedom => }/ArrowTrailFreedom.java | 2 +- .../{frostlord => }/ArrowTrailFrostLord.java | 2 +- .../{halloween => }/ArrowTrailHalloween.java | 2 +- .../arrowtrail/{music => }/ArrowTrailMusic.java | 2 +- .../arrowtrail/{shadow => }/ArrowTrailShadow.java | 2 +- .../arrowtrail/{spring => }/ArrowTrailSpring.java | 2 +- .../{howlingwinds => }/ArrowTrailStorm.java | 2 +- .../arrowtrail/{titan => }/ArrowTrailTitan.java | 2 +- .../gadgets/death/{vampire => }/DeathBlood.java | 2 +- .../death/{candycane => }/DeathCandyCane.java | 2 +- .../{cupidslove => }/DeathCupidsBrokenHeart.java | 2 +- .../gadgets/death/{emerald => }/DeathEmerald.java | 2 +- .../gadgets/death/{wisdom => }/DeathEnchant.java | 2 +- .../gadgets/death/{freedom => }/DeathFreedom.java | 2 +- .../death/{frostlord => }/DeathFrostLord.java | 2 +- .../gadget/gadgets/death/{music => }/DeathMusic.java | 2 +- .../gadgets/death/{party => }/DeathPinataBurst.java | 2 +- .../death/{christmas => }/DeathPresentDanger.java | 2 +- .../gadgets/death/{shadow => }/DeathShadow.java | 2 +- .../gadgets/death/{spring => }/DeathSpring.java | 2 +- .../gadgets/death/{howlingwinds => }/DeathStorm.java | 2 +- .../gadget/gadgets/death/{titan => }/DeathTitan.java | 2 +- .../doublejump/{vampire => }/DoubleJumpBlood.java | 2 +- .../{candycane => }/DoubleJumpCandyCane.java | 2 +- .../{cupidslove => }/DoubleJumpCupidsWings.java | 2 +- .../doublejump/{emerald => }/DoubleJumpEmerald.java | 2 +- .../doublejump/{wisdom => }/DoubleJumpEnchant.java | 2 +- .../{party => }/DoubleJumpFirecracker.java | 2 +- .../doublejump/{freedom => }/DoubleJumpFreedom.java | 4 ++-- .../{frostlord => }/DoubleJumpFrostLord.java | 2 +- .../{halloween => }/DoubleJumpHalloween.java | 2 +- .../doublejump/{music => }/DoubleJumpMusic.java | 2 +- .../doublejump/{shadow => }/DoubleJumpShadow.java | 2 +- .../doublejump/{spring => }/DoubleJumpSpring.java | 2 +- .../{howlingwinds => }/DoubleJumpStorm.java | 2 +- .../doublejump/{titan => }/DoubleJumpTitan.java | 2 +- .../src/mineplex/core/gadget/set/SetCandyCane.java | 6 +++--- .../src/mineplex/core/gadget/set/SetCupidsLove.java | 6 +++--- .../src/mineplex/core/gadget/set/SetEmerald.java | 6 +++--- .../src/mineplex/core/gadget/set/SetFreedom.java | 9 +++++---- .../src/mineplex/core/gadget/set/SetFrostLord.java | 6 +++--- .../mineplex/core/gadget/set/SetHowlingWinds.java | 6 +++--- .../src/mineplex/core/gadget/set/SetMusic.java | 6 +++--- .../src/mineplex/core/gadget/set/SetParty.java | 6 +++--- .../src/mineplex/core/gadget/set/SetShadow.java | 6 +++--- .../src/mineplex/core/gadget/set/SetSpring.java | 6 +++--- .../src/mineplex/core/gadget/set/SetTitan.java | 6 +++--- .../src/mineplex/core/gadget/set/SetVampire.java | 6 +++--- .../src/mineplex/core/gadget/set/SetWisdom.java | 6 +++--- 56 files changed, 90 insertions(+), 89 deletions(-) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{vampire => }/ArrowTrailBlood.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{candycane => }/ArrowTrailCandyCane.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{party => }/ArrowTrailConfetti.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{cupidslove => }/ArrowTrailCupid.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{emerald => }/ArrowTrailEmerald.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{wisdom => }/ArrowTrailEnchant.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{freedom => }/ArrowTrailFreedom.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{frostlord => }/ArrowTrailFrostLord.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{halloween => }/ArrowTrailHalloween.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{music => }/ArrowTrailMusic.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{shadow => }/ArrowTrailShadow.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{spring => }/ArrowTrailSpring.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{howlingwinds => }/ArrowTrailStorm.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{titan => }/ArrowTrailTitan.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{vampire => }/DeathBlood.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{candycane => }/DeathCandyCane.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{cupidslove => }/DeathCupidsBrokenHeart.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{emerald => }/DeathEmerald.java (93%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{wisdom => }/DeathEnchant.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{freedom => }/DeathFreedom.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{frostlord => }/DeathFrostLord.java (93%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{music => }/DeathMusic.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{party => }/DeathPinataBurst.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{christmas => }/DeathPresentDanger.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{shadow => }/DeathShadow.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{spring => }/DeathSpring.java (98%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{howlingwinds => }/DeathStorm.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{titan => }/DeathTitan.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{vampire => }/DoubleJumpBlood.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{candycane => }/DoubleJumpCandyCane.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{cupidslove => }/DoubleJumpCupidsWings.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{emerald => }/DoubleJumpEmerald.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{wisdom => }/DoubleJumpEnchant.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{party => }/DoubleJumpFirecracker.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{freedom => }/DoubleJumpFreedom.java (92%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{frostlord => }/DoubleJumpFrostLord.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{halloween => }/DoubleJumpHalloween.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{music => }/DoubleJumpMusic.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{shadow => }/DoubleJumpShadow.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{spring => }/DoubleJumpSpring.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{howlingwinds => }/DoubleJumpStorm.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{titan => }/DoubleJumpTitan.java (96%) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/commands/LockInfusedCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/commands/LockInfusedCommand.java index fef74b9fd..a91dcdb3e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/commands/LockInfusedCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/commands/LockInfusedCommand.java @@ -9,12 +9,12 @@ import org.bukkit.entity.Player; import mineplex.core.command.CommandBase; import mineplex.core.common.Rank; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.candycane.ArrowTrailCandyCane; -import mineplex.core.gadget.gadgets.arrowtrail.frostlord.ArrowTrailFrostLord; -import mineplex.core.gadget.gadgets.death.candycane.DeathCandyCane; -import mineplex.core.gadget.gadgets.death.frostlord.DeathFrostLord; -import mineplex.core.gadget.gadgets.doublejump.candycane.DoubleJumpCandyCane; -import mineplex.core.gadget.gadgets.doublejump.frostlord.DoubleJumpFrostLord; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCandyCane; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFrostLord; +import mineplex.core.gadget.gadgets.death.DeathCandyCane; +import mineplex.core.gadget.gadgets.death.DeathFrostLord; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCandyCane; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFrostLord; import mineplex.core.gadget.gadgets.hat.HatType; import mineplex.core.gadget.gadgets.item.ItemCoal; import mineplex.core.gadget.gadgets.item.ItemFreezeCannon; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/vampire/ArrowTrailBlood.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailBlood.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/vampire/ArrowTrailBlood.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailBlood.java index f54c9ae92..180e336de 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/vampire/ArrowTrailBlood.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailBlood.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.vampire; +package mineplex.core.gadget.gadgets.arrowtrail; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/candycane/ArrowTrailCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailCandyCane.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/candycane/ArrowTrailCandyCane.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailCandyCane.java index d45b1b023..58cbee4d9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/candycane/ArrowTrailCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailCandyCane.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.candycane; +package mineplex.core.gadget.gadgets.arrowtrail; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/party/ArrowTrailConfetti.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailConfetti.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/party/ArrowTrailConfetti.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailConfetti.java index d8f06ce45..be2cd9b90 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/party/ArrowTrailConfetti.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailConfetti.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.party; +package mineplex.core.gadget.gadgets.arrowtrail; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/cupidslove/ArrowTrailCupid.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailCupid.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/cupidslove/ArrowTrailCupid.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailCupid.java index c10562f6d..4249c19c3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/cupidslove/ArrowTrailCupid.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailCupid.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.cupidslove; +package mineplex.core.gadget.gadgets.arrowtrail; import org.bukkit.Color; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/emerald/ArrowTrailEmerald.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailEmerald.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/emerald/ArrowTrailEmerald.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailEmerald.java index 8592bc16b..b7b8a6df2 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/emerald/ArrowTrailEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailEmerald.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.emerald; +package mineplex.core.gadget.gadgets.arrowtrail; import mineplex.core.common.util.*; import org.bukkit.Location; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/wisdom/ArrowTrailEnchant.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailEnchant.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/wisdom/ArrowTrailEnchant.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailEnchant.java index 00e47e049..b33723020 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/wisdom/ArrowTrailEnchant.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailEnchant.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.wisdom; +package mineplex.core.gadget.gadgets.arrowtrail; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/freedom/ArrowTrailFreedom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailFreedom.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/freedom/ArrowTrailFreedom.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailFreedom.java index 8921b26cc..fa5f7ade2 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/freedom/ArrowTrailFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailFreedom.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.freedom; +package mineplex.core.gadget.gadgets.arrowtrail; import java.awt.Color; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/frostlord/ArrowTrailFrostLord.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailFrostLord.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/frostlord/ArrowTrailFrostLord.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailFrostLord.java index 6ae8d9b43..3a7c910b5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/frostlord/ArrowTrailFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailFrostLord.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.frostlord; +package mineplex.core.gadget.gadgets.arrowtrail; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/halloween/ArrowTrailHalloween.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailHalloween.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/halloween/ArrowTrailHalloween.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailHalloween.java index 112f272ad..bd5b62563 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/halloween/ArrowTrailHalloween.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailHalloween.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.halloween; +package mineplex.core.gadget.gadgets.arrowtrail; import java.awt.Color; import java.util.HashMap; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/music/ArrowTrailMusic.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailMusic.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/music/ArrowTrailMusic.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailMusic.java index d535035af..6c6a3006e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/music/ArrowTrailMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailMusic.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.music; +package mineplex.core.gadget.gadgets.arrowtrail; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/shadow/ArrowTrailShadow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailShadow.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/shadow/ArrowTrailShadow.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailShadow.java index aec688901..8db14cbdb 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/shadow/ArrowTrailShadow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailShadow.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.shadow; +package mineplex.core.gadget.gadgets.arrowtrail; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/spring/ArrowTrailSpring.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailSpring.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/spring/ArrowTrailSpring.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailSpring.java index c335ce062..59cb064c4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/spring/ArrowTrailSpring.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailSpring.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.spring; +package mineplex.core.gadget.gadgets.arrowtrail; import java.util.ArrayList; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/howlingwinds/ArrowTrailStorm.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailStorm.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/howlingwinds/ArrowTrailStorm.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailStorm.java index a3cc14165..084611017 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/howlingwinds/ArrowTrailStorm.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailStorm.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.howlingwinds; +package mineplex.core.gadget.gadgets.arrowtrail; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/titan/ArrowTrailTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailTitan.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/titan/ArrowTrailTitan.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailTitan.java index 956055929..29c39b7d0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/titan/ArrowTrailTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailTitan.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail.titan; +package mineplex.core.gadget.gadgets.arrowtrail; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/vampire/DeathBlood.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathBlood.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/vampire/DeathBlood.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathBlood.java index 5365e3e14..7101aba36 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/vampire/DeathBlood.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathBlood.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.vampire; +package mineplex.core.gadget.gadgets.death; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/candycane/DeathCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathCandyCane.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/candycane/DeathCandyCane.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathCandyCane.java index 45a7028d0..2d100b3fe 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/candycane/DeathCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathCandyCane.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.candycane; +package mineplex.core.gadget.gadgets.death; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/cupidslove/DeathCupidsBrokenHeart.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathCupidsBrokenHeart.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/cupidslove/DeathCupidsBrokenHeart.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathCupidsBrokenHeart.java index 1c92abc02..d0053f9df 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/cupidslove/DeathCupidsBrokenHeart.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathCupidsBrokenHeart.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.cupidslove; +package mineplex.core.gadget.gadgets.death; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/emerald/DeathEmerald.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathEmerald.java similarity index 93% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/emerald/DeathEmerald.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathEmerald.java index 79ea0b404..85fb2db18 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/emerald/DeathEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathEmerald.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.emerald; +package mineplex.core.gadget.gadgets.death; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/wisdom/DeathEnchant.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathEnchant.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/wisdom/DeathEnchant.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathEnchant.java index 7229b155d..35532906d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/wisdom/DeathEnchant.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathEnchant.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.wisdom; +package mineplex.core.gadget.gadgets.death; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/freedom/DeathFreedom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathFreedom.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/freedom/DeathFreedom.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathFreedom.java index 24d43eb0b..137b68207 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/freedom/DeathFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathFreedom.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.freedom; +package mineplex.core.gadget.gadgets.death; import org.bukkit.ChatColor; import org.bukkit.Location; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/frostlord/DeathFrostLord.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathFrostLord.java similarity index 93% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/frostlord/DeathFrostLord.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathFrostLord.java index 0ce7b546f..72cd2c3cb 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/frostlord/DeathFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathFrostLord.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.frostlord; +package mineplex.core.gadget.gadgets.death; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/music/DeathMusic.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMusic.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/music/DeathMusic.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMusic.java index 2bf566254..d6c4176ad 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/music/DeathMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMusic.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.music; +package mineplex.core.gadget.gadgets.death; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/party/DeathPinataBurst.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathPinataBurst.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/party/DeathPinataBurst.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathPinataBurst.java index 09ccfe10a..0adc3dfb8 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/party/DeathPinataBurst.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathPinataBurst.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.party; +package mineplex.core.gadget.gadgets.death; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/christmas/DeathPresentDanger.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathPresentDanger.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/christmas/DeathPresentDanger.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathPresentDanger.java index e8db5ed6a..c1b07ce33 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/christmas/DeathPresentDanger.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathPresentDanger.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.christmas; +package mineplex.core.gadget.gadgets.death; import java.util.ArrayList; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/shadow/DeathShadow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathShadow.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/shadow/DeathShadow.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathShadow.java index 3adb240f2..f80b4ad9b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/shadow/DeathShadow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathShadow.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.shadow; +package mineplex.core.gadget.gadgets.death; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/spring/DeathSpring.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathSpring.java similarity index 98% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/spring/DeathSpring.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathSpring.java index eb15f5986..bae34473b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/spring/DeathSpring.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathSpring.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.spring; +package mineplex.core.gadget.gadgets.death; import java.util.ArrayList; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/howlingwinds/DeathStorm.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathStorm.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/howlingwinds/DeathStorm.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathStorm.java index 00cf6d607..c3cf2f0da 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/howlingwinds/DeathStorm.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathStorm.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.howlingwinds; +package mineplex.core.gadget.gadgets.death; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/titan/DeathTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathTitan.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/titan/DeathTitan.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathTitan.java index 00b64eace..0e56f8308 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/titan/DeathTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathTitan.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death.titan; +package mineplex.core.gadget.gadgets.death; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/vampire/DoubleJumpBlood.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpBlood.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/vampire/DoubleJumpBlood.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpBlood.java index 882133687..2f910416c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/vampire/DoubleJumpBlood.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpBlood.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.vampire; +package mineplex.core.gadget.gadgets.doublejump; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/candycane/DoubleJumpCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCandyCane.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/candycane/DoubleJumpCandyCane.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCandyCane.java index d6a7620c7..62f3ad6c4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/candycane/DoubleJumpCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCandyCane.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.candycane; +package mineplex.core.gadget.gadgets.doublejump; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/cupidslove/DoubleJumpCupidsWings.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCupidsWings.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/cupidslove/DoubleJumpCupidsWings.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCupidsWings.java index 71a7b66b5..81884a52b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/cupidslove/DoubleJumpCupidsWings.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCupidsWings.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.cupidslove; +package mineplex.core.gadget.gadgets.doublejump; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/emerald/DoubleJumpEmerald.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpEmerald.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/emerald/DoubleJumpEmerald.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpEmerald.java index 0453e0b57..f74859c2c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/emerald/DoubleJumpEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpEmerald.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.emerald; +package mineplex.core.gadget.gadgets.doublejump; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/wisdom/DoubleJumpEnchant.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpEnchant.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/wisdom/DoubleJumpEnchant.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpEnchant.java index ec1120f3b..d9d4db576 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/wisdom/DoubleJumpEnchant.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpEnchant.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.wisdom; +package mineplex.core.gadget.gadgets.doublejump; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/party/DoubleJumpFirecracker.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFirecracker.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/party/DoubleJumpFirecracker.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFirecracker.java index 06ee124f7..65ce9bd80 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/party/DoubleJumpFirecracker.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFirecracker.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.party; +package mineplex.core.gadget.gadgets.doublejump; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/freedom/DoubleJumpFreedom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFreedom.java similarity index 92% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/freedom/DoubleJumpFreedom.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFreedom.java index 7f887e345..820ccd155 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/freedom/DoubleJumpFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFreedom.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.freedom; +package mineplex.core.gadget.gadgets.doublejump; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -18,7 +18,7 @@ public class DoubleJumpFreedom extends DoubleJumpEffectGadget { super(manager, "Leap of Freedom", UtilText.splitLineToArray(UtilText.colorWords("FREEEEEEEEEEEDOM!", ChatColor.RED, ChatColor.WHITE, ChatColor.BLUE), LineFormat.LORE), -8, Material.WOOL, - (byte) 14); + (byte) 0); setDisplayItem(CountryFlag.USA.getBanner()); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/frostlord/DoubleJumpFrostLord.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFrostLord.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/frostlord/DoubleJumpFrostLord.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFrostLord.java index 62325731c..64cc9f962 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/frostlord/DoubleJumpFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFrostLord.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.frostlord; +package mineplex.core.gadget.gadgets.doublejump; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/halloween/DoubleJumpHalloween.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpHalloween.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/halloween/DoubleJumpHalloween.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpHalloween.java index 10155afbd..0f2cc13e8 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/halloween/DoubleJumpHalloween.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpHalloween.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.halloween; +package mineplex.core.gadget.gadgets.doublejump; import java.awt.Color; import java.util.HashMap; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/music/DoubleJumpMusic.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMusic.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/music/DoubleJumpMusic.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMusic.java index 5b7459f0d..2a4d5c1ba 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/music/DoubleJumpMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMusic.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.music; +package mineplex.core.gadget.gadgets.doublejump; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/shadow/DoubleJumpShadow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpShadow.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/shadow/DoubleJumpShadow.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpShadow.java index 005c3403c..c64052bca 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/shadow/DoubleJumpShadow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpShadow.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.shadow; +package mineplex.core.gadget.gadgets.doublejump; import mineplex.core.common.util.C; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/spring/DoubleJumpSpring.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpSpring.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/spring/DoubleJumpSpring.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpSpring.java index 63dabdaf9..c4d06c230 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/spring/DoubleJumpSpring.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpSpring.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.spring; +package mineplex.core.gadget.gadgets.doublejump; import java.util.ArrayList; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/howlingwinds/DoubleJumpStorm.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpStorm.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/howlingwinds/DoubleJumpStorm.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpStorm.java index 6b04d1f00..9cd07ef15 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/howlingwinds/DoubleJumpStorm.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpStorm.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.howlingwinds; +package mineplex.core.gadget.gadgets.doublejump; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/titan/DoubleJumpTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpTitan.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/titan/DoubleJumpTitan.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpTitan.java index 336aaa5bc..9c81a3309 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/titan/DoubleJumpTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpTitan.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump.titan; +package mineplex.core.gadget.gadgets.doublejump; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCandyCane.java index e6f6f5707..9a2d9ce75 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCandyCane.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.candycane.ArrowTrailCandyCane; -import mineplex.core.gadget.gadgets.death.candycane.DeathCandyCane; -import mineplex.core.gadget.gadgets.doublejump.candycane.DoubleJumpCandyCane; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCandyCane; +import mineplex.core.gadget.gadgets.death.DeathCandyCane; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCandyCane; import mineplex.core.gadget.gadgets.particle.candycane.ParticleCandyCane; import mineplex.core.gadget.types.GadgetSet; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCupidsLove.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCupidsLove.java index ccbaf0863..47f1552f7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCupidsLove.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCupidsLove.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.cupidslove.ArrowTrailCupid; -import mineplex.core.gadget.gadgets.death.cupidslove.DeathCupidsBrokenHeart; -import mineplex.core.gadget.gadgets.doublejump.cupidslove.DoubleJumpCupidsWings; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCupid; +import mineplex.core.gadget.gadgets.death.DeathCupidsBrokenHeart; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCupidsWings; import mineplex.core.gadget.gadgets.particle.cupidslove.ParticleHeart; import mineplex.core.gadget.types.GadgetSet; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetEmerald.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetEmerald.java index b34a8f88e..740174dba 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetEmerald.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.emerald.ArrowTrailEmerald; -import mineplex.core.gadget.gadgets.death.emerald.DeathEmerald; -import mineplex.core.gadget.gadgets.doublejump.emerald.DoubleJumpEmerald; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailEmerald; +import mineplex.core.gadget.gadgets.death.DeathEmerald; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpEmerald; import mineplex.core.gadget.gadgets.particle.emerald.ParticleEmerald; import mineplex.core.gadget.types.GadgetSet; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFreedom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFreedom.java index 6196a145b..e8c300adf 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFreedom.java @@ -1,9 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.freedom.ArrowTrailFreedom; -import mineplex.core.gadget.gadgets.death.freedom.DeathFreedom; -import mineplex.core.gadget.gadgets.doublejump.freedom.DoubleJumpFreedom; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFreedom; +import mineplex.core.gadget.gadgets.death.DeathFreedom; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFreedom; +import mineplex.core.gadget.gadgets.particle.ParticleStarSpangled; import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedom; import mineplex.core.gadget.types.GadgetSet; @@ -16,7 +17,7 @@ public class SetFreedom extends GadgetSet manager.getGadget(ArrowTrailFreedom.class), manager.getGadget(DeathFreedom.class), manager.getGadget(DoubleJumpFreedom.class), - manager.getGadget(ParticleFreedom.class)); + manager.getGadget(ParticleStarSpangled.class)); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFrostLord.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFrostLord.java index 6112655a0..6050a0b00 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFrostLord.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.frostlord.ArrowTrailFrostLord; -import mineplex.core.gadget.gadgets.death.frostlord.DeathFrostLord; -import mineplex.core.gadget.gadgets.doublejump.frostlord.DoubleJumpFrostLord; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFrostLord; +import mineplex.core.gadget.gadgets.death.DeathFrostLord; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFrostLord; import mineplex.core.gadget.gadgets.particle.frostlord.ParticleFrostLord; import mineplex.core.gadget.types.GadgetSet; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetHowlingWinds.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetHowlingWinds.java index 120a35c95..672f49bdc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetHowlingWinds.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetHowlingWinds.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.howlingwinds.ArrowTrailStorm; -import mineplex.core.gadget.gadgets.death.howlingwinds.DeathStorm; -import mineplex.core.gadget.gadgets.doublejump.howlingwinds.DoubleJumpStorm; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailStorm; +import mineplex.core.gadget.gadgets.death.DeathStorm; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpStorm; import mineplex.core.gadget.gadgets.particle.howlingwinds.ParticleRain; import mineplex.core.gadget.types.GadgetSet; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetMusic.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetMusic.java index 9e606f0e2..fdd47eacd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetMusic.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.music.ArrowTrailMusic; -import mineplex.core.gadget.gadgets.death.music.DeathMusic; -import mineplex.core.gadget.gadgets.doublejump.music.DoubleJumpMusic; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailMusic; +import mineplex.core.gadget.gadgets.death.DeathMusic; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMusic; import mineplex.core.gadget.gadgets.particle.music.ParticleMusic; import mineplex.core.gadget.types.GadgetSet; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetParty.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetParty.java index f9debaef0..0b99f9f2e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetParty.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetParty.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.party.ArrowTrailConfetti; -import mineplex.core.gadget.gadgets.death.party.DeathPinataBurst; -import mineplex.core.gadget.gadgets.doublejump.party.DoubleJumpFirecracker; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailConfetti; +import mineplex.core.gadget.gadgets.death.DeathPinataBurst; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFirecracker; import mineplex.core.gadget.gadgets.particle.party.ParticlePartyTime; import mineplex.core.gadget.types.GadgetSet; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetShadow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetShadow.java index befc2e27c..1d5fad5dd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetShadow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetShadow.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.shadow.ArrowTrailShadow; -import mineplex.core.gadget.gadgets.death.shadow.DeathShadow; -import mineplex.core.gadget.gadgets.doublejump.shadow.DoubleJumpShadow; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailShadow; +import mineplex.core.gadget.gadgets.death.DeathShadow; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpShadow; import mineplex.core.gadget.gadgets.particle.shadow.ParticleFoot; import mineplex.core.gadget.types.GadgetSet; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetSpring.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetSpring.java index 77727b480..fb21b5f9e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetSpring.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetSpring.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.spring.ArrowTrailSpring; -import mineplex.core.gadget.gadgets.death.spring.DeathSpring; -import mineplex.core.gadget.gadgets.doublejump.spring.DoubleJumpSpring; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailSpring; +import mineplex.core.gadget.gadgets.death.DeathSpring; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpSpring; import mineplex.core.gadget.gadgets.particle.spring.ParticleSpringHalo; import mineplex.core.gadget.types.GadgetSet; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetTitan.java index 7c66a8f6c..0d333818d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetTitan.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.titan.ArrowTrailTitan; -import mineplex.core.gadget.gadgets.death.titan.DeathTitan; -import mineplex.core.gadget.gadgets.doublejump.titan.DoubleJumpTitan; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailTitan; +import mineplex.core.gadget.gadgets.death.DeathTitan; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpTitan; import mineplex.core.gadget.gadgets.particle.titan.ParticleTitan; import mineplex.core.gadget.types.GadgetSet; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetVampire.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetVampire.java index b070122de..7ec9b7f7a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetVampire.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetVampire.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.vampire.ArrowTrailBlood; -import mineplex.core.gadget.gadgets.death.vampire.DeathBlood; -import mineplex.core.gadget.gadgets.doublejump.vampire.DoubleJumpBlood; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailBlood; +import mineplex.core.gadget.gadgets.death.DeathBlood; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpBlood; import mineplex.core.gadget.gadgets.particle.vampire.ParticleBlood; import mineplex.core.gadget.types.GadgetSet; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetWisdom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetWisdom.java index 2d2ff0693..870b70d3f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetWisdom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetWisdom.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.wisdom.ArrowTrailEnchant; -import mineplex.core.gadget.gadgets.death.wisdom.DeathEnchant; -import mineplex.core.gadget.gadgets.doublejump.wisdom.DoubleJumpEnchant; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailEnchant; +import mineplex.core.gadget.gadgets.death.DeathEnchant; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpEnchant; import mineplex.core.gadget.gadgets.particle.wisdom.ParticleEnchant; import mineplex.core.gadget.types.GadgetSet; From b214d43eec3db6feb23c176bfd452a236dca0f60 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:35:22 -0400 Subject: [PATCH 34/56] Update hat and flag type enums --- .../core/gadget/gadgets/flag/FlagType.java | 34 +++++++++++++++++++ .../core/gadget/gadgets/hat/HatType.java | 6 +++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/flag/FlagType.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/flag/FlagType.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/flag/FlagType.java new file mode 100644 index 000000000..7e2c48e28 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/flag/FlagType.java @@ -0,0 +1,34 @@ +package mineplex.core.gadget.gadgets.flag; + +import mineplex.core.common.util.banner.CountryFlag; + +/** + * @author J Teissler + * @date 6/27/17 + */ +public enum FlagType +{ + UNITED_STATES(CountryFlag.USA, -8), + CANADA(CountryFlag.CANADA, -8), + + ; + + private final CountryFlag _flag; + private final int _cost; + + FlagType(CountryFlag flag, int cost) + { + _flag = flag; + _cost = cost; + } + + public CountryFlag getFlag() + { + return _flag; + } + + public int getCost() + { + return _cost; + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/hat/HatType.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/hat/HatType.java index c6f623e20..cabad2568 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/hat/HatType.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/hat/HatType.java @@ -22,7 +22,11 @@ public enum HatType SNOWMAN("Snowman Head", UtilText.splitLineToArray(C.cGray + "Do you want to be a snowman?", LineFormat.LORE), -2, SkinData.SNOWMAN), TEDDY_BEAR("Teddy Bear", UtilText.splitLineToArray(C.cGray + "Aww, it's a cute teddy bear! What shall I name him?", LineFormat.LORE), -6, SkinData.TEDDY_BEAR), UNCLE_SAM("Uncle Sam Hat", UtilText.splitLineToArray(UtilText.colorWords("Uncle Sam has a big hat but now you can too.", ChatColor.RED, ChatColor.WHITE, ChatColor.BLUE), LineFormat.LORE), -8, SkinData.UNCLE_SAM), - PUMPKIN("Pumpkin Hat", UtilText.splitLineToArray(C.cGray + "Pumpkin on the head, don't end up dead!", LineFormat.LORE), -9, Material.PUMPKIN); + PUMPKIN("Pumpkin Hat", UtilText.splitLineToArray(C.cGray + "Pumpkin on the head, don't end up dead!", LineFormat.LORE), -9, Material.PUMPKIN), + CANADA("Warm Canadian Hat", UtilText.splitLineToArray(C.cGray + "Keep your ears nice and warm while up north.", LineFormat.LORE), -8, SkinData.CANADA_HAT), + AMERICA("Patriotic American Hat", UtilText.splitLineToArray(C.cGray + "Careful not to get a big head.", LineFormat.LORE), -8, SkinData.AMERICA_HAT), + + ; private final String _name; private final String[] _lore; From e04d4678304e8437ec42f86cffb5b7d7cb2c8e35 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:35:57 -0400 Subject: [PATCH 35/56] Add new cosmetic items --- .../core/common/shape/ShapeWings.java | 35 +++- .../arrowtrail/ArrowTrailRedWhite.java | 78 ++++++++ .../gadget/gadgets/death/DeathMapleLeaf.java | 44 +++++ .../gadgets/doublejump/DoubleJumpMaple.java | 114 ++++++++++++ .../particle/ParticleAuraNiceness.java | 176 ++++++++++++++++++ .../gadgets/particle/ParticleCanadian.java | 68 +++++++ .../particle/ParticleFreedomFireworks.java | 57 ++++++ .../particle/ParticleStarSpangled.java | 80 ++++++++ .../mineplex/core/gadget/set/SetCanadian.java | 26 +++ 9 files changed, 677 insertions(+), 1 deletion(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailRedWhite.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMaple.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleAuraNiceness.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCanadian.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFreedomFireworks.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleStarSpangled.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCanadian.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/shape/ShapeWings.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/shape/ShapeWings.java index 3c9a78a56..4026dad3f 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/shape/ShapeWings.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/shape/ShapeWings.java @@ -166,7 +166,40 @@ public class ShapeWings extends ShapeGrid implements CosmeticShape "0$#######$0", "$#########$" }; - + + public static final String[] MAPLE_LEAF = new String[] + { + "000000000000000000000000000$000000000000000000000000000", + "00000000000000000000000000$$$00000000000000000000000000", + "0000000000000000000000000$$#$$0000000000000000000000000", + "000000000000000000000000$$###$$000000000000000000000000", + "00000000000000000000000$$#####$$00000000000000000000000", + "0000000000000000$$$000$$#######$$000$$$0000000000000000", + "0000000000000000$#$$$$$#########$$$$$#$0000000000000000", + "0000000000000000$$###################$$0000000000000000", + "00000000000000000$###################$00000000000000000", + "00000000000$$0000$$#################$$0000$$00000000000", + "0$$$000000$$$$$000$#################$000$$$$$000000$$$0", + "00$$$$$$$$$###$$$0$$###############$$0$$$###$$$$$$$$$00", + "00$$############$$$$###############$$$$############$$00", + "000$$#############$$###############$$#############$$000", + "0000$$###########################################$$0000", + "00$$$#############################################$$$00", + "$$$#################################################$$$", + "00$$$$###########################################$$$$00", + "00000$$$#######################################$$$00000", + "00000000$$$$###############################$$$$00000000", + "00000000000$$$###########################$$$00000000000", + "0000000000000$$#########################$$0000000000000", + "0000000000000$$#########################$$0000000000000", + "0000000000000$##$$$$$$$$$$$#$$$$$$$$$$$##$0000000000000", + "000000000000$$$$$000000000$#$000000000$$$$$000000000000", + "00000000000000000000000000$#$00000000000000000000000000", + "00000000000000000000000000$#$00000000000000000000000000", + "00000000000000000000000000$#$00000000000000000000000000", + "00000000000000000000000000$#$00000000000000000000000000", + "00000000000000000000000000$$$00000000000000000000000000" + }; /** * Default rotation to give the wings a little tilt when displayed on players for instance diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailRedWhite.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailRedWhite.java new file mode 100644 index 000000000..e9a3c19e1 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailRedWhite.java @@ -0,0 +1,78 @@ +package mineplex.core.gadget.gadgets.arrowtrail; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilAlg; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilText; +import mineplex.core.common.util.banner.CountryFlag; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.types.ArrowEffectGadget; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.banner.Pattern; +import org.bukkit.entity.Arrow; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.BannerMeta; +import org.bukkit.util.Vector; + +import java.awt.*; + +public class ArrowTrailRedWhite extends ArrowEffectGadget +{ + public ArrowTrailRedWhite(GadgetManager manager) + { + super(manager, "Red & White Arrows", + UtilText.splitLineToArray(C.cRed + "Killing you nicely.", LineFormat.LORE), + -8, Material.WOOL, (byte)0); + + setDisplayItem(CountryFlag.CANADA.getBanner()); + } + + @Override + public void doTrail(Arrow arrow) + { + Vector v = arrow.getVelocity(); + Vector up = UtilAlg.getUp(v); + Vector left = UtilAlg.getLeft(v); + + Location loc = arrow.getLocation(); + + double amount = 2; + double ticks = 15; + + for(int i = 0; i < amount; i++) + { + double rad = Math.PI*2.0; + rad += i/amount * rad; + rad += Math.PI*2*(arrow.getTicksLived()%ticks)/ticks; + double l = -Math.sin(rad); + double u = Math.cos(rad); + + Vector vel = v.clone().add(up.clone().multiply(u)).add(left.clone().multiply(l)); + vel.multiply(0.4); + + if (i == 0) + { + for(int j = 0; j < 3; ++j) + { + UtilParticle.playColoredParticleToAll(Color.RED, UtilParticle.ParticleType.RED_DUST, loc.clone().add(vel), 0, UtilParticle.ViewDist.NORMAL); + } + } + else + { + for(int j = 0; j < 3; ++j) + { + UtilParticle.playColoredParticleToAll(Color.WHITE, UtilParticle.ParticleType.RED_DUST, loc.clone().add(vel), 0, UtilParticle.ViewDist.NORMAL); + } + } + } + } + + @Override + public void doHitEffect(Arrow arrow) + { + //UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.EXPLODE, arrow.getLocation(), 0.35f, 0.35f, 0.35f, 1f, 15, UtilParticle.ViewDist.LONGER); + UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.EXPLODE, arrow.getLocation(), 0, 0, 0, 0, 3, UtilParticle.ViewDist.LONGER); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java new file mode 100644 index 000000000..b1a0e9955 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java @@ -0,0 +1,44 @@ +package mineplex.core.gadget.gadgets.death; + +import mineplex.core.blood.BloodEvent; +import mineplex.core.common.shape.ShapeWings; +import mineplex.core.common.util.C; +import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilShapes; +import mineplex.core.common.util.UtilText; +import mineplex.core.common.util.banner.CountryFlag; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.types.DeathEffectGadget; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +/** + * @author J Teissler + * @date 6/26/17 + */ +public class DeathMapleLeaf extends DeathEffectGadget +{ + private final ShapeWings _leafOuter = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1.0, 0, 0), 1, 0, false, 0, ShapeWings.MAPLE_LEAF); + private final ShapeWings _leafInner = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(0.7, 0, 0), 1, 0, false, 0, ShapeWings.MAPLE_LEAF); + + public DeathMapleLeaf(GadgetManager manager) + { + super(manager, "Fallen Maple Leaf", + UtilText.splitLineToArray(C.cGray + "When you die in " + C.cRed + "Canada" + C.cGray + " you die in real life.", LineFormat.LORE), + -8, Material.WOOL, (byte) 0); + + setDisplayItem(CountryFlag.CANADA.getBanner()); + } + + @Override + public void onBlood(Player player, BloodEvent event) + { + event.setCancelled(true); + Location loc = player.getLocation().add(0, 3, 0); + _leafOuter.display(loc); + _leafInner.display(loc); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMaple.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMaple.java new file mode 100644 index 000000000..1b1396463 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMaple.java @@ -0,0 +1,114 @@ +package mineplex.core.gadget.gadgets.doublejump; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilAlg; +import mineplex.core.common.util.UtilColor; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilText; +import mineplex.core.common.util.banner.CountryFlag; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.types.DoubleJumpEffectGadget; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; +import org.bukkit.Color; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.util.Vector; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +public class DoubleJumpMaple extends DoubleJumpEffectGadget +{ + /** + * Amount of particles played per tick as a player flies through the air. + */ + private static final int PARTICLES = 50; + + /** + * Vertical offset of the animation's center from the player's location. + */ + private static final float Y_OFFSET = 0.95f; + + /** + * Divisor of the gaussian distribution of particles as the player flies through the air. + */ + private static final int DISTRIBUTION = 2; + + /** + * Particle ring count when a player launches from the ground. + */ + private static final int LAUNCH_RINGS = 6; + + /** + * The distance between launch rings. + */ + private static final float RING_SPACING = 0.4f; + + /** + * Particles played per 1 unit radius. + */ + private static final int RING_DENSITY = 8; + + private HashMap _playerMap = new HashMap<>(); + + public DoubleJumpMaple(GadgetManager manager) + { + super(manager, "Maple Leap", + UtilText.splitLineToArray(C.cGray + "Jump higher than the maple trees!", LineFormat.LORE), + -8, Material.WOOL, (byte)0); + setDisplayItem(CountryFlag.CANADA.getBanner()); + } + + @Override + public void doEffect(Player player) + { + _playerMap.put(player, System.currentTimeMillis() + 1000); + + float limit = (LAUNCH_RINGS * RING_SPACING) + RING_SPACING; + + for (float r = RING_SPACING; r < limit; r++) + { + double[][] points = UtilMath.normalCircle(player.getLocation(), player.getVelocity(), r, Math.round(RING_DENSITY * r)); + + for (int i = 0; i < points.length; i++) + { + UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.EXPLODE, new Location(player.getWorld(), points[i][0], points[i][1], points[i][2]), + null, 0, 1, UtilParticle.ViewDist.NORMAL); + } + } + } + + @EventHandler + public void onUpdate(UpdateEvent event) + { + if(event.getType() != UpdateType.FASTEST) + { + return; + } + + for(Iterator> it = _playerMap.entrySet().iterator(); it.hasNext();) + { + Map.Entry e = it.next(); + + if(e.getValue() <= System.currentTimeMillis()) + { + it.remove(); + continue; + } + + Location loc = e.getKey().getLocation().add(0, Y_OFFSET, 0); + + for (int i = 0; i < PARTICLES; ++i) + { + UtilParticle.playColoredParticleToAll(java.awt.Color.RED, UtilParticle.ParticleType.RED_DUST, + UtilMath.gauss(loc, DISTRIBUTION, DISTRIBUTION, DISTRIBUTION), 0, UtilParticle.ViewDist.NORMAL); + } + } + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleAuraNiceness.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleAuraNiceness.java new file mode 100644 index 000000000..39b20d946 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleAuraNiceness.java @@ -0,0 +1,176 @@ +package mineplex.core.gadget.gadgets.particle; + +import mineplex.core.arcadeevents.CoreGameStartEvent; +import mineplex.core.arcadeevents.CoreGameStopEvent; +import mineplex.core.blockrestore.BlockRestore; +import mineplex.core.common.util.C; +import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilShapes; +import mineplex.core.common.util.UtilSound; +import mineplex.core.common.util.UtilText; +import mineplex.core.common.util.banner.CountryFlag; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.types.ParticleGadget; +import mineplex.core.treasure.event.TreasureFinishEvent; +import mineplex.core.treasure.event.TreasureStartEvent; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.block.BlockFadeEvent; +import org.bukkit.event.block.BlockPhysicsEvent; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.util.Vector; + +import java.awt.Color; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.Collectors; + +/** + * @author J Teissler + * @date 6/26/17 + */ +public class ParticleAuraNiceness extends ParticleGadget +{ + /** Radius within which flowers not allowed near treasure chests */ + private static final int TREASURE_RADIUS = 4; + + private static final double H_FIELD = 0.5; + private static final double V_FIELD = 0.35; + private static final int ROSE_PROBABILITY = 30; + private static final double ROSE_RADIUS = 2.5; + + private final Set _blocks = new HashSet<>(); + + /** Locations at which treasure is currently being opened */ + private final Map _openingTreasure = new HashMap<>(); + + private boolean _enabled = true; + + public ParticleAuraNiceness(GadgetManager manager) + { + super(manager, "Aura of Niceness", + UtilText.splitLineToArray(C.cGray + "Canadians are always nice online.", LineFormat.LORE), -8, Material.WOOL, + (byte) 0); + + setDisplayItem(CountryFlag.CANADA.getBanner()); + } + + @Override + public void playParticle(Player player, UpdateEvent event) + { + if (event.getType() != UpdateType.FASTER) + { + return; + } + + for (Location location : _openingTreasure.values()) + { + if (location.toVector().isInSphere(player.getLocation().toVector(), TREASURE_RADIUS)) + { + return; + } + } + + UtilShapes.getCircle(player.getLocation().subtract(0, 0.5, 0), false, ROSE_RADIUS).stream().map(Location::getBlock) + .collect(Collectors.toSet()).forEach(block -> + { + if (ThreadLocalRandom.current().nextInt(ROSE_PROBABILITY) == 0) + { + Block b = block.getRelative(BlockFace.UP); + + if (b.isEmpty() && UtilBlock.fullSolid(block) && !UtilBlock.bottomSlab(block)) + { + Location loc = b.getLocation().add(H_FIELD, V_FIELD, H_FIELD); + + if (_enabled) + { + _blocks.add(b); + Manager.getBlockRestore().add(b, Material.RED_ROSE.getId(), (byte) 3, 5000); + } + + for (int i = 0; i < 20; ++i) + { + UtilParticle.playColoredParticleToAll(Color.RED, UtilParticle.ParticleType.RED_DUST, UtilMath.gauss(loc, 4, 4, 4), 0, UtilParticle.ViewDist.NORMAL); + UtilParticle.playColoredParticleToAll(Color.WHITE, UtilParticle.ParticleType.RED_DUST, UtilMath.gauss(loc, 4, 4, 4), 0, UtilParticle.ViewDist.NORMAL); + } + } + } + }); + + for(Iterator it = _blocks.iterator(); it.hasNext();) + { + Block b = it.next(); + + if (b.getType() != Material.RED_ROSE) + { + it.remove(); + Location loc = b.getLocation().add(H_FIELD, V_FIELD, H_FIELD); + for (int i = 0; i < 10; ++i) + { + UtilParticle.playColoredParticleToAll(Color.RED, UtilParticle.ParticleType.RED_DUST, UtilMath.gauss(loc, 6, 6, 6), 0, UtilParticle.ViewDist.NORMAL); + UtilParticle.playColoredParticleToAll(Color.WHITE, UtilParticle.ParticleType.RED_DUST, UtilMath.gauss(loc, 6, 6, 6), 0, UtilParticle.ViewDist.NORMAL); + } + } + } + } + + @EventHandler + public void onBlockFade(BlockPhysicsEvent event) + { + if (_blocks.contains(event.getBlock())) + { + event.setCancelled(true); + } + } + + /** + * Disable flowers in the area around treasure being opened. + */ + @EventHandler(priority = EventPriority.LOW) + public void disableOnTreasureStart(TreasureStartEvent event) + { + _openingTreasure.put(event.getPlayer().getUniqueId(), event.getPlayer().getLocation()); + Manager.getBlockRestore().restoreBlockAround(Material.CARPET, event.getPlayer().getLocation(), TREASURE_RADIUS); + } + + /** + * Enable flowers in the area around treasure no longer being opened. + */ + @EventHandler(priority = EventPriority.HIGH) + public void enableOnTreasureFinish(TreasureFinishEvent event) + { + if (_openingTreasure.containsKey(event.getPlayer().getUniqueId())) + { + _openingTreasure.remove(event.getPlayer().getUniqueId()); + } + } + + @EventHandler + public void onGameStart(CoreGameStartEvent event) + { + _enabled = false; + } + + @EventHandler + public void onGameEnd(CoreGameStopEvent event) + { + _enabled = true; + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCanadian.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCanadian.java new file mode 100644 index 000000000..10f87fe29 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCanadian.java @@ -0,0 +1,68 @@ +package mineplex.core.gadget.gadgets.particle; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilText; +import mineplex.core.common.util.banner.CountryFlag; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.types.ParticleGadget; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.BannerMeta; + +import java.awt.Color; + +/** + * @author J Teissler + * @date 6/26/17 + */ +public class ParticleCanadian extends ParticleGadget +{ + private static final int STRAND_COUNT = 9; + private static final double STRAND_SPACING = 0.124; + private static final double DISTANCE_FROM_FLOOR = 0.43; + + public ParticleCanadian(GadgetManager manager) + { + super(manager, "Canadian Trail", + UtilText.splitLineToArray(C.cGray + "Lead the way to freedom!", LineFormat.LORE), + -8, Material.WOOL, (byte) 0); + + ItemStack stack = CountryFlag.CANADA.getBanner(); + System.out.println(((BannerMeta)stack.getItemMeta()).getBaseColor().getColor().toString()); + setDisplayItem(stack); + } + + @Override + public void playParticle(Player player, UpdateEvent event) + { + if (event.getType() != UpdateType.TICK) + { + return; + } + + Location center = player.getLocation().add(0, DISTANCE_FROM_FLOOR, 0); + + if (Manager.isMoving(player)) + { + for (int i = 0; i < STRAND_COUNT; i++) + { + if (i < 3 || i > 5) + { + UtilParticle.playColoredParticleToAll(Color.RED, UtilParticle.ParticleType.RED_DUST, + center.add(0, STRAND_SPACING, 0), 0, UtilParticle.ViewDist.NORMAL); + } + else + { + UtilParticle.playColoredParticleToAll(Color.WHITE, UtilParticle.ParticleType.RED_DUST, + center.add(0, STRAND_SPACING, 0), 0, UtilParticle.ViewDist.NORMAL); + } + } + } + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFreedomFireworks.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFreedomFireworks.java new file mode 100644 index 000000000..92721b705 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFreedomFireworks.java @@ -0,0 +1,57 @@ +package mineplex.core.gadget.gadgets.particle; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilText; +import mineplex.core.common.util.banner.CountryFlag; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.types.ParticleGadget; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +import java.util.concurrent.ThreadLocalRandom; + +/** + * @author J Teissler + * @date 6/26/17 + */ +public class ParticleFreedomFireworks extends ParticleGadget +{ + private static final Material[] BLOCKTYPES = { + Material.REDSTONE_BLOCK, + Material.LAPIS_BLOCK, + Material.QUARTZ_BLOCK + }; + + public ParticleFreedomFireworks(GadgetManager manager) + { + super(manager, "Freedom Fireworks", + UtilText.splitLineToArray(C.cGray + "Keep your patriotism close.", LineFormat.LORE), + -8, Material.WOOL, (byte) 0); + + setDisplayItem(CountryFlag.USA.getBanner()); + } + + @Override + public void playParticle(Player player, UpdateEvent event) + { + if (event.getType() != UpdateType.FAST) + { + return; + } + + String particle = UtilParticle.ParticleType.BLOCK_CRACK.getParticle(BLOCKTYPES[ThreadLocalRandom.current().nextInt(0, BLOCKTYPES.length)], 0); + Location location = UtilMath.gauss(player.getEyeLocation(), 1, 1, 1); + + for (int i = 0; i < 20; ++i) + { + UtilParticle.PlayParticleToAll(particle, location, null, 3.0f, 1, UtilParticle.ViewDist.NORMAL); + } + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleStarSpangled.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleStarSpangled.java new file mode 100644 index 000000000..ead0bc411 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleStarSpangled.java @@ -0,0 +1,80 @@ +package mineplex.core.gadget.gadgets.particle; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilText; +import mineplex.core.common.util.banner.CountryFlag; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.types.ParticleGadget; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; +import net.minecraft.server.v1_8_R3.MinecraftServer; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; + +import java.awt.*; + + +/** + * @author J Teissler + * @date 6/26/17 + */ +public class ParticleStarSpangled extends ParticleGadget +{ + private static final int STRAND_COUNT = 9; + private static final double STRAND_SPACING = 0.124; + private static final double DISTANCE_FROM_FLOOR = 0.43; + + private static final Color BLUE = new Color(29, 26, 120); + + public ParticleStarSpangled(GadgetManager manager) + { + super(manager, "Star Spangled Stripe", + UtilText.splitLineToArray(C.cGray + "Blaze a trail of freedom!", LineFormat.LORE), + -8, Material.WOOL, (byte) 0); + setDisplayItem(CountryFlag.USA.getBanner()); + } + + @Override + public void playParticle(Player player, UpdateEvent event) + { + if (event.getType() != UpdateType.TICK) + { + return; + } + + Location center = player.getLocation().add(0, DISTANCE_FROM_FLOOR, 0); + + if (Manager.isMoving(player)) + { + for (int i = 0; i < STRAND_COUNT; i++) + { + if (i == 3 || i == 7) + { + if (player.getTicksLived() % 3 == 0) + { + UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.FIREWORKS_SPARK, + center.add(0, STRAND_SPACING, 0), 0f, 0f, 0f, 0f, 0, UtilParticle.ViewDist.NORMAL); + continue; + } + } + else if (i == 5) + { + if (player.getTicksLived() + 1 % 3 == 0) + { + UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.FIREWORKS_SPARK, + center.add(0, STRAND_SPACING, 0), 0f, 0f, 0f, 0f, 0, UtilParticle.ViewDist.NORMAL); + continue; + } + } + + UtilParticle.playColoredParticleToAll(BLUE, UtilParticle.ParticleType.RED_DUST, + center.add(0, STRAND_SPACING, 0), 0, UtilParticle.ViewDist.NORMAL); + } + } + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCanadian.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCanadian.java new file mode 100644 index 000000000..a295bb9da --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCanadian.java @@ -0,0 +1,26 @@ +package mineplex.core.gadget.set; + +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFreedom; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailRedWhite; +import mineplex.core.gadget.gadgets.death.DeathFreedom; +import mineplex.core.gadget.gadgets.death.DeathMapleLeaf; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFreedom; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMaple; +import mineplex.core.gadget.gadgets.particle.ParticleCanadian; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedom; +import mineplex.core.gadget.types.GadgetSet; + +public class SetCanadian extends GadgetSet +{ + + public SetCanadian(GadgetManager manager) + { + super(manager, "Canadian", "2x Holiday Points while active (Titles)", + manager.getGadget(ArrowTrailRedWhite.class), + manager.getGadget(DeathMapleLeaf.class), + manager.getGadget(DoubleJumpMaple.class), + manager.getGadget(ParticleCanadian.class)); + } + +} From 4cc10680552cd2134f5ba7ea987ff014e47f4ffa Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:36:21 -0400 Subject: [PATCH 36/56] Allow Flags to interact with costumes and hats correctly --- .../src/mineplex/core/gadget/types/HatGadget.java | 2 +- .../src/mineplex/core/gadget/types/MorphGadget.java | 3 ++- .../src/mineplex/core/gadget/types/OutfitGadget.java | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/HatGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/HatGadget.java index b6becadc1..38df4c367 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/HatGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/HatGadget.java @@ -47,7 +47,7 @@ public abstract class HatGadget extends OutfitGadget public void applyArmor(Player player, boolean message) { Manager.removeGadgetType(player, GadgetType.MORPH, this); - + Manager.removeGadgetType(player, GadgetType.FLAG, this); Manager.removeOutfit(player, _slot); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MorphGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MorphGadget.java index 4fb2b5ed9..7240ed1d5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MorphGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MorphGadget.java @@ -26,7 +26,8 @@ public abstract class MorphGadget extends Gadget public void applyArmor(Player player, boolean message) { Manager.removeGadgetType(player, GadgetType.MORPH, this); - Manager.removeGadgetType(player, GadgetType.COSTUME); + Manager.removeGadgetType(player, GadgetType.COSTUME, this); + Manager.removeGadgetType(player, GadgetType.FLAG, this); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java index 6ce4d70b7..e5ab85cb3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java @@ -60,7 +60,7 @@ public abstract class OutfitGadget extends Gadget public void applyArmor(Player player, boolean message) { Manager.removeGadgetType(player, GadgetType.MORPH, this); - + Manager.removeGadgetType(player, GadgetType.FLAG, this); Manager.removeOutfit(player, _slot); _active.add(player); From 5387d3b580b4d049494fd4107f2e8bd3dd6604e3 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:36:49 -0400 Subject: [PATCH 37/56] Add cosmetics to chests --- .../core/cosmetic/CosmeticManager.java | 26 ++- .../mineplex/core/gadget/GadgetManager.java | 163 +++++++++++------- .../mineplex/core/reward/RewardManager.java | 112 +++++++----- .../core/treasure/gui/TreasurePage.java | 66 +++++-- 4 files changed, 249 insertions(+), 118 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/CosmeticManager.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/CosmeticManager.java index d1ae7b491..9f0552d86 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/CosmeticManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/CosmeticManager.java @@ -1,5 +1,7 @@ package mineplex.core.cosmetic; +import mineplex.core.chat.Chat; +import mineplex.core.punish.Punish; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -41,19 +43,23 @@ import mineplex.core.twofactor.TwoFactorAuth; public class CosmeticManager extends MiniPlugin { private final TwoFactorAuth _twofactor = Managers.require(TwoFactorAuth.class); - private InventoryManager _inventoryManager; - private GadgetManager _gadgetManager; - private MountManager _mountManager; - private PetManager _petManager; - private TreasureManager _treasureManager; - private BoosterManager _boosterManager; + private final InventoryManager _inventoryManager; + private final GadgetManager _gadgetManager; + private final MountManager _mountManager; + private final PetManager _petManager; + private final TreasureManager _treasureManager; + private final BoosterManager _boosterManager; + private final Punish _punish; private CosmeticShop _shop; private boolean _showInterface = true; private int _interfaceSlot = 4; - public CosmeticManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, InventoryManager inventoryManager, GadgetManager gadgetManager, MountManager mountManager, PetManager petManager, TreasureManager treasureManager, BoosterManager boosterManager) + public CosmeticManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, + InventoryManager inventoryManager, GadgetManager gadgetManager, MountManager mountManager, + PetManager petManager, TreasureManager treasureManager, BoosterManager boosterManager, + Punish punish) { super("Cosmetic Manager", plugin); @@ -63,6 +69,7 @@ public class CosmeticManager extends MiniPlugin _petManager = petManager; _treasureManager = treasureManager; _boosterManager = boosterManager; + _punish = punish; _shop = new CosmeticShop(this, clientManager, donationManager, _moduleName); } @@ -242,6 +249,11 @@ public class CosmeticManager extends MiniPlugin { return _boosterManager; } + + public Punish getPunishManager() + { + return _punish; + } public void displayUI(Player player) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java index e0d211e34..18afeb5f7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java @@ -10,7 +10,18 @@ import java.util.Set; import java.util.UUID; import java.util.function.Predicate; +import mineplex.core.common.util.banner.CountryFlag; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailRedWhite; +import mineplex.core.gadget.gadgets.death.DeathMapleLeaf; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMaple; +import mineplex.core.gadget.gadgets.flag.FlagType; import mineplex.core.gadget.gadgets.morph.MorphBobRoss; +import mineplex.core.gadget.gadgets.particle.ParticleAuraNiceness; +import mineplex.core.gadget.gadgets.particle.ParticleCanadian; +import mineplex.core.gadget.gadgets.particle.ParticleFreedomFireworks; +import mineplex.core.gadget.gadgets.particle.ParticleStarSpangled; +import mineplex.core.gadget.set.SetCanadian; +import mineplex.core.gadget.types.FlagGadget; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -47,50 +58,50 @@ import mineplex.core.gadget.event.GadgetCollideEntityEvent; import mineplex.core.gadget.event.GadgetEnableEvent; import mineplex.core.gadget.event.PlayerToggleSwimEvent; import mineplex.core.gadget.event.TauntCommandEvent; -import mineplex.core.gadget.gadgets.arrowtrail.candycane.ArrowTrailCandyCane; -import mineplex.core.gadget.gadgets.arrowtrail.cupidslove.ArrowTrailCupid; -import mineplex.core.gadget.gadgets.arrowtrail.emerald.ArrowTrailEmerald; -import mineplex.core.gadget.gadgets.arrowtrail.freedom.ArrowTrailFreedom; -import mineplex.core.gadget.gadgets.arrowtrail.frostlord.ArrowTrailFrostLord; -import mineplex.core.gadget.gadgets.arrowtrail.halloween.ArrowTrailHalloween; -import mineplex.core.gadget.gadgets.arrowtrail.howlingwinds.ArrowTrailStorm; -import mineplex.core.gadget.gadgets.arrowtrail.music.ArrowTrailMusic; -import mineplex.core.gadget.gadgets.arrowtrail.party.ArrowTrailConfetti; -import mineplex.core.gadget.gadgets.arrowtrail.shadow.ArrowTrailShadow; -import mineplex.core.gadget.gadgets.arrowtrail.spring.ArrowTrailSpring; -import mineplex.core.gadget.gadgets.arrowtrail.titan.ArrowTrailTitan; -import mineplex.core.gadget.gadgets.arrowtrail.vampire.ArrowTrailBlood; -import mineplex.core.gadget.gadgets.arrowtrail.wisdom.ArrowTrailEnchant; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCandyCane; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCupid; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailEmerald; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFreedom; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFrostLord; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailHalloween; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailStorm; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailMusic; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailConfetti; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailShadow; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailSpring; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailTitan; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailBlood; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailEnchant; import mineplex.core.gadget.gadgets.balloons.BalloonItem; import mineplex.core.gadget.gadgets.balloons.BalloonType; -import mineplex.core.gadget.gadgets.death.candycane.DeathCandyCane; -import mineplex.core.gadget.gadgets.death.christmas.DeathPresentDanger; -import mineplex.core.gadget.gadgets.death.cupidslove.DeathCupidsBrokenHeart; -import mineplex.core.gadget.gadgets.death.emerald.DeathEmerald; -import mineplex.core.gadget.gadgets.death.freedom.DeathFreedom; -import mineplex.core.gadget.gadgets.death.frostlord.DeathFrostLord; -import mineplex.core.gadget.gadgets.death.howlingwinds.DeathStorm; -import mineplex.core.gadget.gadgets.death.music.DeathMusic; -import mineplex.core.gadget.gadgets.death.party.DeathPinataBurst; -import mineplex.core.gadget.gadgets.death.shadow.DeathShadow; -import mineplex.core.gadget.gadgets.death.spring.DeathSpring; -import mineplex.core.gadget.gadgets.death.titan.DeathTitan; -import mineplex.core.gadget.gadgets.death.vampire.DeathBlood; -import mineplex.core.gadget.gadgets.death.wisdom.DeathEnchant; -import mineplex.core.gadget.gadgets.doublejump.candycane.DoubleJumpCandyCane; -import mineplex.core.gadget.gadgets.doublejump.cupidslove.DoubleJumpCupidsWings; -import mineplex.core.gadget.gadgets.doublejump.emerald.DoubleJumpEmerald; -import mineplex.core.gadget.gadgets.doublejump.freedom.DoubleJumpFreedom; -import mineplex.core.gadget.gadgets.doublejump.frostlord.DoubleJumpFrostLord; -import mineplex.core.gadget.gadgets.doublejump.halloween.DoubleJumpHalloween; -import mineplex.core.gadget.gadgets.doublejump.howlingwinds.DoubleJumpStorm; -import mineplex.core.gadget.gadgets.doublejump.music.DoubleJumpMusic; -import mineplex.core.gadget.gadgets.doublejump.party.DoubleJumpFirecracker; -import mineplex.core.gadget.gadgets.doublejump.shadow.DoubleJumpShadow; -import mineplex.core.gadget.gadgets.doublejump.spring.DoubleJumpSpring; -import mineplex.core.gadget.gadgets.doublejump.titan.DoubleJumpTitan; -import mineplex.core.gadget.gadgets.doublejump.vampire.DoubleJumpBlood; -import mineplex.core.gadget.gadgets.doublejump.wisdom.DoubleJumpEnchant; +import mineplex.core.gadget.gadgets.death.DeathCandyCane; +import mineplex.core.gadget.gadgets.death.DeathPresentDanger; +import mineplex.core.gadget.gadgets.death.DeathCupidsBrokenHeart; +import mineplex.core.gadget.gadgets.death.DeathEmerald; +import mineplex.core.gadget.gadgets.death.DeathFreedom; +import mineplex.core.gadget.gadgets.death.DeathFrostLord; +import mineplex.core.gadget.gadgets.death.DeathStorm; +import mineplex.core.gadget.gadgets.death.DeathMusic; +import mineplex.core.gadget.gadgets.death.DeathPinataBurst; +import mineplex.core.gadget.gadgets.death.DeathShadow; +import mineplex.core.gadget.gadgets.death.DeathSpring; +import mineplex.core.gadget.gadgets.death.DeathTitan; +import mineplex.core.gadget.gadgets.death.DeathBlood; +import mineplex.core.gadget.gadgets.death.DeathEnchant; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCandyCane; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCupidsWings; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpEmerald; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFreedom; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFrostLord; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpHalloween; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpStorm; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMusic; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFirecracker; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpShadow; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpSpring; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpTitan; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpBlood; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpEnchant; import mineplex.core.gadget.gadgets.gamemodifiers.GameModifierType; import mineplex.core.gadget.gadgets.gamemodifiers.gemhunters.GameModifierMount; import mineplex.core.gadget.gadgets.gamemodifiers.gemhunters.MountType; @@ -366,6 +377,7 @@ public class GadgetManager extends MiniPlugin addSet(new SetMusic(this)); addSet(new SetFreedom(this)); addSet(new SetSpring(this)); + addSet(new SetCanadian(this)); } private void createGadgets() @@ -459,31 +471,40 @@ public class GadgetManager extends MiniPlugin // Particles addGadget(new ParticleFoot(this)); - addGadget(new ParticleFireRings(this)); - addGadget(new ParticleFairy(this)); - addGadget(new ParticleLegend(this)); - addGadget(new ParticleFrostLord(this)); - addGadget(new ParticleTitan(this)); - addGadget(new ParticleCandyCane(this)); - addGadget(new ParticleCoalFumes(this)); - addGadget(new ParticlePartyTime(this)); - addGadget(new ParticleHeart(this)); addGadget(new ParticleEmerald(this)); - addGadget(new ParticleWingsDemons(this)); - addGadget(new ParticleEnchant(this)); addGadget(new ParticleRain(this)); addGadget(new ParticleBlood(this)); + addGadget(new ParticleEnchant(this)); addGadget(new ParticleMusic(this)); - addGadget(new ParticleWingsAngel(this)); - addGadget(new ParticleWingsInfernal(this)); - addGadget(new ParticleWingsPixie(this)); + addGadget(new ParticlePartyTime(this)); + + addGadget(new ParticleHeart(this)); + addGadget(new ParticleCandyCane(this)); + addGadget(new ParticleFrostLord(this)); + addGadget(new ParticleLegend(this)); + addGadget(new ParticleTitan(this)); addGadget(new ParticleYinYang(this)); - addGadget(new ParticleFreedom(this)); - addGadget(new ParticleChristmasTree(this)); + addGadget(new ParticleKing(this, _castleManager)); + + addGadget(new ParticleWingsPixie(this)); + addGadget(new ParticleWingsDemons(this)); + addGadget(new ParticleWingsInfernal(this)); + addGadget(new ParticleWingsAngel(this)); addGadget(new ParticleWingsLove(this)); + addGadget(new ParticleFireRings(this)); + addGadget(new ParticleFairy(this)); + + addGadget(new ParticleChristmasTree(this)); + addGadget(new ParticleCoalFumes(this)); addGadget(new ParticleSpringHalo(this)); addGadget(new ParticleWingsBee(this)); - addGadget(new ParticleKing(this, _castleManager)); + + addGadget(new ParticleFreedom(this)); + addGadget(new ParticleFreedomFireworks(this)); + addGadget(new ParticleStarSpangled(this)); + addGadget(new ParticleAuraNiceness(this)); + addGadget(new ParticleCanadian(this)); + // Arrow Trails addGadget(new ArrowTrailFrostLord(this)); @@ -500,6 +521,7 @@ public class GadgetManager extends MiniPlugin addGadget(new ArrowTrailFreedom(this)); addGadget(new ArrowTrailHalloween(this)); addGadget(new ArrowTrailSpring(this)); + addGadget(new ArrowTrailRedWhite(this)); // Death Effect addGadget(new DeathFrostLord(this)); @@ -516,6 +538,7 @@ public class GadgetManager extends MiniPlugin addGadget(new DeathFreedom(this)); addGadget(new DeathPresentDanger(this)); addGadget(new DeathSpring(this)); + addGadget(new DeathMapleLeaf(this)); // Double Jump addGadget(new DoubleJumpFrostLord(this)); @@ -532,6 +555,7 @@ public class GadgetManager extends MiniPlugin addGadget(new DoubleJumpFreedom(this)); addGadget(new DoubleJumpHalloween(this)); addGadget(new DoubleJumpSpring(this)); + addGadget(new DoubleJumpMaple(this)); // Hat for (HatType hatType : HatType.values()) @@ -625,6 +649,10 @@ public class GadgetManager extends MiniPlugin addGadget(new BlowAKissTaunt(this)); addGadget(new RainbowTaunt(this)); + // Flags + addGadget(new FlagGadget(this, FlagType.UNITED_STATES)); + addGadget(new FlagGadget(this, FlagType.CANADA)); + // Kit Selectors addGadget(new WaterWingsKitSelector(this)); addGadget(new HaloKitSelector(this)); @@ -830,6 +858,23 @@ public class GadgetManager extends MiniPlugin return null; } + public FlagGadget getFlagGadget(FlagType type) + { + for (Gadget gadget : getGadgets(GadgetType.FLAG)) + { + if(gadget instanceof FlagGadget) + { + FlagGadget flagGadget = (FlagGadget) gadget; + + if (type.equals(flagGadget.getFlagType())) + { + return flagGadget; + } + } + } + return null; + } + public BalloonGadget getBalloonGadget(BalloonType balloonType) { for (Gadget gadget : getGadgets(GadgetType.BALLOON)) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java index 5f4e5fb16..eabf8e7e4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java @@ -5,6 +5,14 @@ import java.util.EnumMap; import java.util.List; import java.util.Random; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailRedWhite; +import mineplex.core.gadget.gadgets.death.DeathMapleLeaf; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMaple; +import mineplex.core.gadget.gadgets.flag.FlagType; +import mineplex.core.gadget.gadgets.particle.ParticleAuraNiceness; +import mineplex.core.gadget.gadgets.particle.ParticleCanadian; +import mineplex.core.gadget.gadgets.particle.ParticleFreedomFireworks; +import mineplex.core.gadget.gadgets.particle.ParticleStarSpangled; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -15,46 +23,46 @@ import mineplex.core.common.Rank; import mineplex.core.common.util.banner.CountryFlag; import mineplex.core.donation.DonationManager; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.halloween.ArrowTrailHalloween; -import mineplex.core.gadget.gadgets.arrowtrail.candycane.ArrowTrailCandyCane; -import mineplex.core.gadget.gadgets.arrowtrail.cupidslove.ArrowTrailCupid; -import mineplex.core.gadget.gadgets.arrowtrail.emerald.ArrowTrailEmerald; -import mineplex.core.gadget.gadgets.arrowtrail.freedom.ArrowTrailFreedom; -import mineplex.core.gadget.gadgets.arrowtrail.frostlord.ArrowTrailFrostLord; -import mineplex.core.gadget.gadgets.arrowtrail.howlingwinds.ArrowTrailStorm; -import mineplex.core.gadget.gadgets.arrowtrail.music.ArrowTrailMusic; -import mineplex.core.gadget.gadgets.arrowtrail.party.ArrowTrailConfetti; -import mineplex.core.gadget.gadgets.arrowtrail.shadow.ArrowTrailShadow; -import mineplex.core.gadget.gadgets.arrowtrail.spring.ArrowTrailSpring; -import mineplex.core.gadget.gadgets.arrowtrail.vampire.ArrowTrailBlood; -import mineplex.core.gadget.gadgets.arrowtrail.wisdom.ArrowTrailEnchant; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailHalloween; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCandyCane; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCupid; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailEmerald; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFreedom; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFrostLord; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailStorm; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailMusic; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailConfetti; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailShadow; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailSpring; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailBlood; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailEnchant; import mineplex.core.gadget.gadgets.balloons.BalloonType; -import mineplex.core.gadget.gadgets.death.candycane.DeathCandyCane; -import mineplex.core.gadget.gadgets.death.christmas.DeathPresentDanger; -import mineplex.core.gadget.gadgets.death.cupidslove.DeathCupidsBrokenHeart; -import mineplex.core.gadget.gadgets.death.emerald.DeathEmerald; -import mineplex.core.gadget.gadgets.death.freedom.DeathFreedom; -import mineplex.core.gadget.gadgets.death.frostlord.DeathFrostLord; -import mineplex.core.gadget.gadgets.death.howlingwinds.DeathStorm; -import mineplex.core.gadget.gadgets.death.music.DeathMusic; -import mineplex.core.gadget.gadgets.death.party.DeathPinataBurst; -import mineplex.core.gadget.gadgets.death.shadow.DeathShadow; -import mineplex.core.gadget.gadgets.death.spring.DeathSpring; -import mineplex.core.gadget.gadgets.death.vampire.DeathBlood; -import mineplex.core.gadget.gadgets.death.wisdom.DeathEnchant; -import mineplex.core.gadget.gadgets.doublejump.halloween.DoubleJumpHalloween; -import mineplex.core.gadget.gadgets.doublejump.candycane.DoubleJumpCandyCane; -import mineplex.core.gadget.gadgets.doublejump.cupidslove.DoubleJumpCupidsWings; -import mineplex.core.gadget.gadgets.doublejump.emerald.DoubleJumpEmerald; -import mineplex.core.gadget.gadgets.doublejump.freedom.DoubleJumpFreedom; -import mineplex.core.gadget.gadgets.doublejump.frostlord.DoubleJumpFrostLord; -import mineplex.core.gadget.gadgets.doublejump.howlingwinds.DoubleJumpStorm; -import mineplex.core.gadget.gadgets.doublejump.music.DoubleJumpMusic; -import mineplex.core.gadget.gadgets.doublejump.party.DoubleJumpFirecracker; -import mineplex.core.gadget.gadgets.doublejump.shadow.DoubleJumpShadow; -import mineplex.core.gadget.gadgets.doublejump.spring.DoubleJumpSpring; -import mineplex.core.gadget.gadgets.doublejump.vampire.DoubleJumpBlood; -import mineplex.core.gadget.gadgets.doublejump.wisdom.DoubleJumpEnchant; +import mineplex.core.gadget.gadgets.death.DeathCandyCane; +import mineplex.core.gadget.gadgets.death.DeathPresentDanger; +import mineplex.core.gadget.gadgets.death.DeathCupidsBrokenHeart; +import mineplex.core.gadget.gadgets.death.DeathEmerald; +import mineplex.core.gadget.gadgets.death.DeathFreedom; +import mineplex.core.gadget.gadgets.death.DeathFrostLord; +import mineplex.core.gadget.gadgets.death.DeathStorm; +import mineplex.core.gadget.gadgets.death.DeathMusic; +import mineplex.core.gadget.gadgets.death.DeathPinataBurst; +import mineplex.core.gadget.gadgets.death.DeathShadow; +import mineplex.core.gadget.gadgets.death.DeathSpring; +import mineplex.core.gadget.gadgets.death.DeathBlood; +import mineplex.core.gadget.gadgets.death.DeathEnchant; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpHalloween; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCandyCane; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCupidsWings; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpEmerald; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFreedom; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFrostLord; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpStorm; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMusic; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFirecracker; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpShadow; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpSpring; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpBlood; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpEnchant; import mineplex.core.gadget.gadgets.gamemodifiers.minestrike.MineStrikeSkin; import mineplex.core.gadget.gadgets.hat.HatType; import mineplex.core.gadget.gadgets.item.ItemBatGun; @@ -318,6 +326,10 @@ public class RewardManager addHat(Type.WINTER_HOLIDAY, HatType.PRESENT, rarity, 5); addHat(Type.WINTER_HOLIDAY, HatType.SNOWMAN, rarity, 5); + // FREEDOM + addGadget(Type.FREEDOM, getGadget(ArrowTrailRedWhite.class), rarity, 150); + addGadget(Type.FREEDOM, getGadget(ArrowTrailFreedom.class), rarity, 150); + // Omega items addMusicReward(Type.OMEGA, "Blocks Disc", rarity, 25); addMusicReward(Type.OMEGA, "Cat Disc", rarity, 25); @@ -484,9 +496,12 @@ public class RewardManager // FREEDOM addHat(Type.FREEDOM, HatType.UNCLE_SAM, rarity, 100); + addHat(Type.FREEDOM, HatType.AMERICA, rarity, 120); + addHat(Type.FREEDOM, HatType.CANADA, rarity, 120); addGadget(Type.FREEDOM, getGadget(DoubleJumpFreedom.class), rarity, 50); - addGadget(Type.FREEDOM, getGadget(ArrowTrailFreedom.class), rarity, 10); + addGadget(Type.FREEDOM, getGadget(DoubleJumpMaple.class), rarity, 50); addGadget(Type.FREEDOM, getGadget(DeathFreedom.class), rarity, 75); + addGadget(Type.FREEDOM, getGadget(DeathMapleLeaf.class), rarity, 75); // Omega Chest addGadget(Type.OMEGA, getGadget(DoubleJumpFreedom.class), rarity, 5); @@ -758,6 +773,12 @@ public class RewardManager addMount(Type.FREEDOM, getMount(MountFreedomHorse.class), rarity, 1); addGadget(Type.FREEDOM, getGadget(MorphUncleSam.class), rarity, 5); addGadget(Type.FREEDOM, getGadget(ParticleFreedom.class), rarity, 50); + addGadget(Type.FREEDOM, getGadget(ParticleFreedomFireworks.class), rarity, 95); + addGadget(Type.FREEDOM, getGadget(ParticleAuraNiceness.class), rarity, 40); + addGadget(Type.FREEDOM, getGadget(ParticleCanadian.class), rarity, 10); + addGadget(Type.FREEDOM, getGadget(ParticleStarSpangled.class), rarity, 10); + addFlag(Type.FREEDOM, FlagType.CANADA, rarity, 35); + addFlag(Type.FREEDOM, FlagType.UNITED_STATES, rarity, 35); // Omega items addPetReward(Type.OMEGA, PetType.VILLAGER, rarity, 1); @@ -1013,6 +1034,17 @@ public class RewardManager return addGadget(type, gadget, gadget.getDisplayName(), rarity, weight, shards); } + public UnknownPackageReward addFlag(Type type, FlagType flagType, RewardRarity rarity, int weight) + { + return addFlag(type, flagType, rarity, weight, getShards(rarity)); + } + + public UnknownPackageReward addFlag(Type type, FlagType flagType, RewardRarity rarity, int weight, int shards) + { + Gadget gadget = _gadgetManager.getFlagGadget(flagType); + return addGadget(type, gadget, gadget.getDisplayName(), rarity, weight, shards); + } + public UnknownPackageReward addBalloon(Type type, BalloonType balloonType, RewardRarity rarity, int weight) { return addBalloon(type, balloonType, rarity, weight, getShards(rarity)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java index 030e3dc1d..de56e4730 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java @@ -4,6 +4,15 @@ import java.io.File; import java.util.ArrayList; import java.util.List; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailRedWhite; +import mineplex.core.gadget.gadgets.death.DeathMapleLeaf; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMaple; +import mineplex.core.gadget.gadgets.flag.FlagType; +import mineplex.core.gadget.gadgets.hat.HatType; +import mineplex.core.gadget.gadgets.particle.ParticleAuraNiceness; +import mineplex.core.gadget.gadgets.particle.ParticleCanadian; +import mineplex.core.gadget.gadgets.particle.ParticleFreedomFireworks; +import mineplex.core.gadget.gadgets.particle.ParticleStarSpangled; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -20,9 +29,9 @@ import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilText; import mineplex.core.donation.DonationManager; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.freedom.ArrowTrailFreedom; -import mineplex.core.gadget.gadgets.death.freedom.DeathFreedom; -import mineplex.core.gadget.gadgets.doublejump.freedom.DoubleJumpFreedom; +import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFreedom; +import mineplex.core.gadget.gadgets.death.DeathFreedom; +import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFreedom; import mineplex.core.gadget.gadgets.morph.MorphUncleSam; import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedom; import mineplex.core.gadget.types.Gadget; @@ -141,7 +150,7 @@ public class TreasurePage extends ShopPageBase int springCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.SPRING.getItemName()); boolean availableChristmas = false; - boolean availableFreedom = false; + boolean availableFreedom = true; boolean availableHaunted = false; boolean availableTrick = false; boolean availableThank = false; @@ -152,8 +161,8 @@ public class TreasurePage extends ShopPageBase List shardLore = new ArrayList<>(); shardLore.add(" "); - shardLore.add(C.cGray + "This seems like it might come in"); - shardLore.add(C.cGray + "handy. Maybe I can collect more!"); + shardLore.add(C.cGray + "These seem like they might come in"); + shardLore.add(C.cGray + "handy. Maybe I should collect more!"); List basicLore = new ArrayList<>(); basicLore.add(" "); @@ -254,14 +263,36 @@ public class TreasurePage extends ShopPageBase freedomLore.add(C.cGray + "carved this chest himself from the wood"); freedomLore.add(C.cGray + "of the apple tree he cut down..."); freedomLore.add(" "); - if (freedomCount > 0 && !hasAllFreedomItems(getPlayer())) - freedomLore.add(C.cGreen + "Click to Open!"); + + if (freedomCount > 0) + { + if (hasAllFreedomItems(getPlayer())) + { + freedomLore.add(C.cWhite + "You own all treasures from this chest."); + } + else + { + freedomLore.add(C.cGreen + "Click to Open!"); + } + } else { - freedomLore.add(C.cRed + "This item is no longer available!"); + if (!availableFreedom) + { + freedomLore.add(C.cRed + "This item is no longer available!"); + } + else if (hasAllFreedomItems(getPlayer())) + { + freedomLore.add(C.cWhite + "You own all treasures from this chest."); + } + else + { + freedomLore.add(ChatColor.RESET + "Purchase at: " + C.cYellow + "www.mineplex.com/shop"); + } } + freedomLore.add(" "); - freedomLore.add(ChatColor.RESET + C.cGreen + getFreedomUnlockedAmount(getPlayer()) + "/7 Unlocked"); + freedomLore.add(ChatColor.RESET + C.cGreen + getFreedomUnlockedAmount(getPlayer()) + "/18 Unlocked"); List omegaLore = new ArrayList<>(); omegaLore.add(" "); @@ -699,7 +730,7 @@ public class TreasurePage extends ShopPageBase public int getFreedomUnlockedAmount(Player player) { if (hasAllFreedomItems(player)) - return 7; + return 18; int amount = 0; Gadget[] gadgets = new Gadget[] { @@ -708,7 +739,18 @@ public class TreasurePage extends ShopPageBase _gadgetManager.getGadget(ArrowTrailFreedom.class), _gadgetManager.getGadget(DoubleJumpFreedom.class), _gadgetManager.getGadget(DeathFreedom.class), - _gadgetManager.getGadget(MorphUncleSam.class) + _gadgetManager.getGadget(MorphUncleSam.class), + _gadgetManager.getGadget(ArrowTrailRedWhite.class), + _gadgetManager.getGadget(DeathMapleLeaf.class), + _gadgetManager.getGadget(DoubleJumpMaple.class), + _gadgetManager.getGadget(ParticleAuraNiceness.class), + _gadgetManager.getGadget(ParticleCanadian.class), + _gadgetManager.getGadget(ParticleFreedomFireworks.class), + _gadgetManager.getGadget(ParticleStarSpangled.class), + _gadgetManager.getHatGadget(HatType.AMERICA), + _gadgetManager.getHatGadget(HatType.CANADA), + _gadgetManager.getFlagGadget(FlagType.CANADA), + _gadgetManager.getFlagGadget(FlagType.UNITED_STATES), }; Mount freedomMount = _gadgetManager.getMountManager().getMount("Freedom Mount"); if (freedomMount != null) From ea8c7be5f08088e54990ea2b2b6cb2d6e8d15d50 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:37:06 -0400 Subject: [PATCH 38/56] Disallow eternal taunt disguising an already disguised player --- .../gadget/gadgets/taunts/EternalTaunt.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java index 103efacd2..1e0c943b7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; import java.util.UUID; +import mineplex.core.disguise.disguises.DisguiseBase; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.FireworkEffect; @@ -41,7 +42,8 @@ public class EternalTaunt extends TauntGadget private static final int COOLDOWN = 30000; private static final int PVP_COOLDOWN = 10000; - private Map> _clocks = new HashMap<>(); + private final Map> _clocks = new HashMap<>(); + private final Map _disguises = new HashMap<>(); public EternalTaunt(GadgetManager manager) { @@ -68,8 +70,12 @@ public class EternalTaunt extends TauntGadget Bukkit.broadcastMessage(F.main("Taunt", F.name(player.getName()) + " waited so long they turned to bones.")); - DisguiseSkeleton disguiseSkeleton = new DisguiseSkeleton(player); - UtilMorph.disguise(player, disguiseSkeleton, Manager); + if (!Manager.getDisguiseManager().isDisguised(player)) + { + DisguiseSkeleton disguiseSkeleton = new DisguiseSkeleton(player); + UtilMorph.disguise(player, disguiseSkeleton, Manager); + _disguises.put(player.getUniqueId(), disguiseSkeleton); + } } @Override @@ -114,7 +120,11 @@ public class EternalTaunt extends TauntGadget @Override public void onFinish(Player player) { - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + if (_disguises.containsKey(player.getUniqueId())) + { + Manager.getDisguiseManager().undisguise(_disguises.remove(player.getUniqueId())); + } + if (_clocks.containsKey(player.getUniqueId())) { _clocks.get(player.getUniqueId()).forEach(c -> c.remove()); From f7ac7994769cc899a9514e41095667c4b219f0f2 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:37:20 -0400 Subject: [PATCH 39/56] Overhaul legend particle --- .../gadgets/particle/ParticleLegend.java | 182 +++++++++++++++++- 1 file changed, 180 insertions(+), 2 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleLegend.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleLegend.java index f99338a75..51911de42 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleLegend.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleLegend.java @@ -1,6 +1,9 @@ package mineplex.core.gadget.gadgets.particle; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; import org.bukkit.Effect; +import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -16,13 +19,46 @@ import mineplex.core.inventory.ClientItem; import mineplex.core.inventory.data.Item; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; +import org.bukkit.util.Vector; + +import java.awt.Color; +import java.util.Random; public class ParticleLegend extends ParticleGadget { + private static final double PI = Math.PI; + private static final int BASE_PILLARS = 9; + private static final int PILLAR_VARIANCE = 7; + private static final int COLOR_VARIANCE = 5; + private static final int MOVING_PARTICLES = 8; + private static final double VERTICAL_SPEED = 0.1; + private static final double HEIGHT_VARIANCE = 0.8; + private static final double ROTATIONAL_SPEED = .03; + private static final double RADIAL_VARIANCE = 0.09; + private static final double DARK_PARTICLE_CHANCE = 0.5; + private static final double BASE_RADIUS = 1.30; + private static final double HEIGHT_MODIFIER_BASE = 0.1; + private static final double HEIGHT_MODIFIER_MAX = 1.3; + private static final double HEIGHT_MODIFIER_INTERVAL = 0.2; + private static final Color[] SELECTABLE_COLORS = { + new Color(170, 100, 170), + new Color(50, 10, 60), + new Color(120, 10, 170), + new Color(65, 20, 80) + }; + + private final int _pillars = pillars(); + private final Color[] _colors = colors(); + private final double[] _heights = heights(); + private final double[] _verticals = verticals(); + private final double[] _variance = variances(); + private final double[] _thetas = thetas(); + private final double[] _radii = radii(); + public ParticleLegend(GadgetManager manager) { super(manager, "Legendary Aura", - UtilText.splitLineToArray(C.cGray + "This particle will be updated soon! Yay!", LineFormat.LORE), + UtilText.splitLineToArray(C.cGray + "Let the energy of the End protect you.", LineFormat.LORE), -1, Material.ENDER_PORTAL_FRAME, (byte)0); } @@ -31,9 +67,151 @@ public class ParticleLegend extends ParticleGadget public void playParticle(Player player, UpdateEvent event) { if (event.getType() != UpdateType.TICK) + { return; + } - player.getWorld().playEffect(player.getLocation().add(0, 1, 0), Effect.ENDER_SIGNAL, 0); + if (Manager.isMoving(player)) + { + Location loc = player.getLocation().add(0, 1.5, 0); + + for (int i = 0; i < MOVING_PARTICLES; i++) + { + UtilParticle.playColoredParticleToAll(_colors[i], UtilParticle.ParticleType.RED_DUST, + UtilMath.gauss(loc, 8, 4, 8), 0, UtilParticle.ViewDist.NORMAL); + } + } + else + { + if (event.getTick() % (ROTATIONAL_SPEED * 100) == 0) + { + for (int i = 0; i < _pillars; i++) + { + _thetas[i] = rollover(_thetas[i], ROTATIONAL_SPEED); + _heights[i] = rollover(_heights[i], _verticals[i]); + + double x = (_radii[i] * Math.cos(_thetas[i])) + player.getLocation().getX(); + double z = (_radii[i] * Math.sin(_thetas[i])) + player.getLocation().getZ(); + double y = (Math.sin(_heights[i]) * _variance[i]) + player.getLocation().getY(); + + for (double h = HEIGHT_MODIFIER_BASE; h <= HEIGHT_MODIFIER_MAX; h+= HEIGHT_MODIFIER_INTERVAL) + { + UtilParticle.playColoredParticleToAll(_colors[i], UtilParticle.ParticleType.RED_DUST, + new Location(player.getWorld(), x, y + h, z), 0, UtilParticle.ViewDist.NORMAL); + + if (Math.random() < DARK_PARTICLE_CHANCE) + { + UtilParticle.playColoredParticleToAll(Color.BLACK, UtilParticle.ParticleType.RED_DUST, + new Location(player.getWorld(), x, y + h, z), 0, UtilParticle.ViewDist.NORMAL); + } + } + } + } + } + } + + private double[] heights() + { + double[] array = new double[_pillars]; + + for (int i = 0; i < _pillars; i++) + { + array[i] = 6.28 * Math.random(); + } + + return array; + } + + private double[] variances() + { + double[] array = new double[_pillars]; + + for (int i = 0; i < _pillars; i++) + { + array[i] = Math.random() * HEIGHT_VARIANCE; + } + + return array; + } + + private double[] verticals() + { + double[] array = new double[_pillars]; + + for (int i = 0; i < _pillars; i++) + { + array[i] = Math.random() * VERTICAL_SPEED; + } + + return array; + } + + private double[] thetas() + { + double[] array = new double[_pillars]; + double theta = 0; + double interval = (2 * PI) / _pillars; + + for (int i = 0; i < _pillars; i++) + { + array[i] = theta; + theta += interval; + } + + return array; + } + + private double[] radii() + { + double[] array = new double[_pillars]; + + for (int i = 0; i < _pillars; i++) + { + array[i] = BASE_RADIUS + (Math.random() * RADIAL_VARIANCE); + } + + return array; + } + + private Color[] colors() + { + Random random = new Random(); + + Color[] array = new Color[_pillars]; + + for (int i = 0; i < _pillars; i++) + { + Color color = SELECTABLE_COLORS[i % SELECTABLE_COLORS.length]; + + int r = color.getRed() + (int) (random.nextGaussian() * COLOR_VARIANCE); + int g = color.getGreen() + (int) (random.nextGaussian() * COLOR_VARIANCE); + int b = color.getBlue() + (int) (random.nextGaussian() * COLOR_VARIANCE); + + r = Math.min(255, Math.max(0, r)); + g = Math.min(255, Math.max(0, g)); + b = Math.min(255, Math.max(0, b)); + + array[i] = new Color(r, g, b); + } + + return array; + } + + private int pillars() + { + return BASE_PILLARS + (int) ((Math.random() * PILLAR_VARIANCE) - (PILLAR_VARIANCE / 2)); + } + + private double rollover(double value, double additive) + { + value += additive; + + if (value >= 2 * PI) + { + value = value - (2 * PI); + } + + return value; } @EventHandler From 7d17fa0f290bbd680b2ab8d7cc4938acf81202f8 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:37:33 -0400 Subject: [PATCH 40/56] Update hubs with new CosmeticManager constructor --- .../Mineplex.Hub.Clans/src/mineplex/clanshub/HubManager.java | 2 +- Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java | 2 +- .../Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java | 2 +- .../mavericks-review-hub/src/mineplex/mavericks/review/Hub.java | 2 +- .../src/mineplex/gemhunters/GemHunters.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/HubManager.java b/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/HubManager.java index 29e6ab472..b02d21718 100644 --- a/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/HubManager.java +++ b/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/HubManager.java @@ -233,7 +233,7 @@ public class HubManager extends MiniPlugin implements IChatMessageFormatter _treasureManager.addTreasureLocation(loc); } - new CosmeticManager(_plugin, clientManager, donationManager, _inventoryManager, _gadgetManager, _mountManager, petManager, _treasureManager, boosterManager); + new CosmeticManager(_plugin, clientManager, donationManager, _inventoryManager, _gadgetManager, _mountManager, petManager, _treasureManager, boosterManager, punish); new MenuManager(_plugin); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java index bc02c3628..eb7242bde 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java @@ -235,7 +235,7 @@ public class HubManager extends MiniClientPlugin implements IChatMess _bonusManager = new BonusManager(plugin, null, playWireManager, clientManager, donationManager, pollManager , npcManager, hologramManager, statsManager, _inventoryManager, petManager, facebookManager, youtubeManager, _gadgetManager, thankManager, "Carl"); _treasureManager = new TreasureManager(_plugin, clientManager, serverStatusManager, donationManager, _inventoryManager, petManager, _gadgetManager, _blockRestore, hologramManager, statsManager, _bonusManager.getRewardManager()); - CosmeticManager cosmeticManager = new CosmeticManager(_plugin, clientManager, donationManager, _inventoryManager, _gadgetManager, _mountManager, petManager, _treasureManager, boosterManager); + CosmeticManager cosmeticManager = new CosmeticManager(_plugin, clientManager, donationManager, _inventoryManager, _gadgetManager, _mountManager, petManager, _treasureManager, boosterManager, punish); _mavericksManager = new MavericksManager(plugin, cosmeticManager, hologramManager, this); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java index ebf57b8d0..5f75dde80 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java @@ -201,7 +201,7 @@ public class Arcade extends JavaPlugin GadgetManager gadgetManager = new GadgetManager(this, _clientManager, _donationManager, inventoryManager, mountManager, petManager, preferenceManager, disguiseManager, blockRestore, projectileManager, achievementManager, packetHandler, hologramManager, incognito, castleManager); ThankManager thankManager = new ThankManager(this, _clientManager, _donationManager); BoosterManager boosterManager = new BoosterManager(this, _serverConfiguration.getServerGroup().getBoosterGroup(), _clientManager, _donationManager, inventoryManager, thankManager); - CosmeticManager cosmeticManager = new CosmeticManager(this, _clientManager, _donationManager, inventoryManager, gadgetManager, mountManager, petManager, null, boosterManager); + CosmeticManager cosmeticManager = new CosmeticManager(this, _clientManager, _donationManager, inventoryManager, gadgetManager, mountManager, petManager, null, boosterManager, punish); cosmeticManager.setInterfaceSlot(6); gadgetManager.setActiveItemSlot(3); cosmeticManager.disableTeamArmor(); diff --git a/Plugins/mavericks-review-hub/src/mineplex/mavericks/review/Hub.java b/Plugins/mavericks-review-hub/src/mineplex/mavericks/review/Hub.java index ebc01ac9c..4fbb830fa 100644 --- a/Plugins/mavericks-review-hub/src/mineplex/mavericks/review/Hub.java +++ b/Plugins/mavericks-review-hub/src/mineplex/mavericks/review/Hub.java @@ -138,7 +138,7 @@ public class Hub extends JavaPlugin RewardManager rewardManager = new RewardManager(_clientManager, _donationManager, inventoryManager, petManager, gadgetManager, statsManager); TreasureManager treasureManager = new TreasureManager(this, _clientManager, serverStatusManager, _donationManager, inventoryManager, petManager, gadgetManager, blockRestore, hologramManager, statsManager, rewardManager); CosmeticManager cosmeticManager = new CosmeticManager(this, _clientManager, _donationManager, inventoryManager, gadgetManager, - mountManager, petManager, treasureManager, boosterManager); + mountManager, petManager, treasureManager, boosterManager, punish); cosmeticManager.setInterfaceSlot(7); cosmeticManager.disableTeamArmor(); diff --git a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java index d4e557763..b0df81d54 100644 --- a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java +++ b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java @@ -258,7 +258,7 @@ public class GemHunters extends JavaPlugin GadgetManager gadgetManager = new GadgetManager(this, clientManager, donationManager, inventoryManager, mountManager, petManager, preferenceManager, disguiseManager, blockRestore, projectileManager, achievementManager, packetHandler, hologramManager, incognito, castleManager); ThankManager thankManager = new ThankManager(this, clientManager, donationManager); BoosterManager boosterManager = new BoosterManager(this, null, clientManager, donationManager, inventoryManager, thankManager); - CosmeticManager cosmeticManager = new CosmeticManager(this, clientManager, donationManager, inventoryManager, gadgetManager, mountManager, petManager, null, boosterManager); + CosmeticManager cosmeticManager = new CosmeticManager(this, clientManager, donationManager, inventoryManager, gadgetManager, mountManager, petManager, null, boosterManager, punish); cosmeticManager.setActive(false); cosmeticManager.setHideParticles(true); From aba684ad9516627eac23d79ab2c559d0005d8e1e Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 01:40:46 -0400 Subject: [PATCH 41/56] Remove unnecessary packages --- .../mineplex/core/gadget/GadgetManager.java | 31 +++++++++---------- .../gadget/commands/LockInfusedCommand.java | 2 +- .../particle/{vampire => }/ParticleBlood.java | 2 +- .../{candycane => }/ParticleCandyCane.java | 2 +- .../{emerald => }/ParticleEmerald.java | 2 +- .../{wisdom => }/ParticleEnchant.java | 2 +- .../particle/{shadow => }/ParticleFoot.java | 2 +- .../{frostlord => }/ParticleFrostLord.java | 2 +- .../{cupidslove => }/ParticleHeart.java | 2 +- .../particle/{music => }/ParticleMusic.java | 2 +- .../{party => }/ParticlePartyTime.java | 2 +- .../{howlingwinds => }/ParticleRain.java | 2 +- .../particle/{titan => }/ParticleTitan.java | 2 +- .../{ => freedom}/ParticleAuraNiceness.java | 2 +- .../{ => freedom}/ParticleCanadian.java | 2 +- .../ParticleFreedomFireworks.java | 2 +- .../{ => freedom}/ParticleStarSpangled.java | 2 +- .../mineplex/core/gadget/set/SetCanadian.java | 6 +--- .../core/gadget/set/SetCandyCane.java | 2 +- .../core/gadget/set/SetCupidsLove.java | 2 +- .../mineplex/core/gadget/set/SetEmerald.java | 2 +- .../mineplex/core/gadget/set/SetFreedom.java | 3 +- .../core/gadget/set/SetFrostLord.java | 2 +- .../core/gadget/set/SetHowlingWinds.java | 2 +- .../mineplex/core/gadget/set/SetMusic.java | 2 +- .../mineplex/core/gadget/set/SetParty.java | 2 +- .../mineplex/core/gadget/set/SetShadow.java | 2 +- .../mineplex/core/gadget/set/SetTitan.java | 2 +- .../mineplex/core/gadget/set/SetVampire.java | 2 +- .../mineplex/core/gadget/set/SetWisdom.java | 2 +- .../mineplex/core/reward/RewardManager.java | 28 ++++++++--------- .../core/treasure/gui/TreasurePage.java | 8 ++--- 32 files changed, 62 insertions(+), 68 deletions(-) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{vampire => }/ParticleBlood.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{candycane => }/ParticleCandyCane.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{emerald => }/ParticleEmerald.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{wisdom => }/ParticleEnchant.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{shadow => }/ParticleFoot.java (98%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{frostlord => }/ParticleFrostLord.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{cupidslove => }/ParticleHeart.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{music => }/ParticleMusic.java (98%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{party => }/ParticlePartyTime.java (98%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{howlingwinds => }/ParticleRain.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{titan => }/ParticleTitan.java (98%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => freedom}/ParticleAuraNiceness.java (98%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => freedom}/ParticleCanadian.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => freedom}/ParticleFreedomFireworks.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => freedom}/ParticleStarSpangled.java (97%) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java index 18afeb5f7..69e331174 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java @@ -10,16 +10,15 @@ import java.util.Set; import java.util.UUID; import java.util.function.Predicate; -import mineplex.core.common.util.banner.CountryFlag; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailRedWhite; import mineplex.core.gadget.gadgets.death.DeathMapleLeaf; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMaple; import mineplex.core.gadget.gadgets.flag.FlagType; import mineplex.core.gadget.gadgets.morph.MorphBobRoss; -import mineplex.core.gadget.gadgets.particle.ParticleAuraNiceness; -import mineplex.core.gadget.gadgets.particle.ParticleCanadian; -import mineplex.core.gadget.gadgets.particle.ParticleFreedomFireworks; -import mineplex.core.gadget.gadgets.particle.ParticleStarSpangled; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleAuraNiceness; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleCanadian; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedomFireworks; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleStarSpangled; import mineplex.core.gadget.set.SetCanadian; import mineplex.core.gadget.types.FlagGadget; import org.bukkit.Bukkit; @@ -196,19 +195,19 @@ import mineplex.core.gadget.gadgets.particle.ParticleWingsInfernal; import mineplex.core.gadget.gadgets.particle.ParticleWingsLove; import mineplex.core.gadget.gadgets.particle.ParticleWingsPixie; import mineplex.core.gadget.gadgets.particle.ParticleYinYang; -import mineplex.core.gadget.gadgets.particle.candycane.ParticleCandyCane; -import mineplex.core.gadget.gadgets.particle.cupidslove.ParticleHeart; -import mineplex.core.gadget.gadgets.particle.emerald.ParticleEmerald; +import mineplex.core.gadget.gadgets.particle.ParticleCandyCane; +import mineplex.core.gadget.gadgets.particle.ParticleHeart; +import mineplex.core.gadget.gadgets.particle.ParticleEmerald; import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedom; -import mineplex.core.gadget.gadgets.particle.frostlord.ParticleFrostLord; -import mineplex.core.gadget.gadgets.particle.howlingwinds.ParticleRain; -import mineplex.core.gadget.gadgets.particle.music.ParticleMusic; -import mineplex.core.gadget.gadgets.particle.party.ParticlePartyTime; -import mineplex.core.gadget.gadgets.particle.shadow.ParticleFoot; +import mineplex.core.gadget.gadgets.particle.ParticleFrostLord; +import mineplex.core.gadget.gadgets.particle.ParticleRain; +import mineplex.core.gadget.gadgets.particle.ParticleMusic; +import mineplex.core.gadget.gadgets.particle.ParticlePartyTime; +import mineplex.core.gadget.gadgets.particle.ParticleFoot; import mineplex.core.gadget.gadgets.particle.spring.ParticleSpringHalo; -import mineplex.core.gadget.gadgets.particle.titan.ParticleTitan; -import mineplex.core.gadget.gadgets.particle.vampire.ParticleBlood; -import mineplex.core.gadget.gadgets.particle.wisdom.ParticleEnchant; +import mineplex.core.gadget.gadgets.particle.ParticleTitan; +import mineplex.core.gadget.gadgets.particle.ParticleBlood; +import mineplex.core.gadget.gadgets.particle.ParticleEnchant; import mineplex.core.gadget.gadgets.taunts.BlowAKissTaunt; import mineplex.core.gadget.gadgets.taunts.EternalTaunt; import mineplex.core.gadget.gadgets.taunts.RainbowTaunt; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/commands/LockInfusedCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/commands/LockInfusedCommand.java index a91dcdb3e..d57b89228 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/commands/LockInfusedCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/commands/LockInfusedCommand.java @@ -21,7 +21,7 @@ import mineplex.core.gadget.gadgets.item.ItemFreezeCannon; import mineplex.core.gadget.gadgets.item.ItemPartyPopper; import mineplex.core.gadget.gadgets.item.ItemSnowball; import mineplex.core.gadget.gadgets.morph.MorphSnowman; -import mineplex.core.gadget.gadgets.particle.frostlord.ParticleFrostLord; +import mineplex.core.gadget.gadgets.particle.ParticleFrostLord; import mineplex.core.gadget.types.Gadget; import mineplex.core.mount.Mount; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/vampire/ParticleBlood.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleBlood.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/vampire/ParticleBlood.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleBlood.java index a33078067..0c3c3546a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/vampire/ParticleBlood.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleBlood.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle.vampire; +package mineplex.core.gadget.gadgets.particle; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/candycane/ParticleCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCandyCane.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/candycane/ParticleCandyCane.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCandyCane.java index 4d8b223fc..5f31b13fb 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/candycane/ParticleCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCandyCane.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle.candycane; +package mineplex.core.gadget.gadgets.particle; import java.util.HashMap; import java.util.UUID; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/emerald/ParticleEmerald.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleEmerald.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/emerald/ParticleEmerald.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleEmerald.java index 417587dbb..f81361c66 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/emerald/ParticleEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleEmerald.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle.emerald; +package mineplex.core.gadget.gadgets.particle; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/wisdom/ParticleEnchant.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleEnchant.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/wisdom/ParticleEnchant.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleEnchant.java index f8d734e74..706c32fbd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/wisdom/ParticleEnchant.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleEnchant.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle.wisdom; +package mineplex.core.gadget.gadgets.particle; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/shadow/ParticleFoot.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFoot.java similarity index 98% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/shadow/ParticleFoot.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFoot.java index 9c3b8be54..fd315fc04 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/shadow/ParticleFoot.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFoot.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle.shadow; +package mineplex.core.gadget.gadgets.particle; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/frostlord/ParticleFrostLord.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFrostLord.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/frostlord/ParticleFrostLord.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFrostLord.java index 62c1388b3..32f947e47 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/frostlord/ParticleFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFrostLord.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle.frostlord; +package mineplex.core.gadget.gadgets.particle; import org.bukkit.Material; import org.bukkit.Sound; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/cupidslove/ParticleHeart.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleHeart.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/cupidslove/ParticleHeart.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleHeart.java index dea6a85aa..ca008bc75 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/cupidslove/ParticleHeart.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleHeart.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle.cupidslove; +package mineplex.core.gadget.gadgets.particle; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/music/ParticleMusic.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleMusic.java similarity index 98% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/music/ParticleMusic.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleMusic.java index 04874fffc..e0bbb3537 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/music/ParticleMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleMusic.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle.music; +package mineplex.core.gadget.gadgets.particle; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/party/ParticlePartyTime.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticlePartyTime.java similarity index 98% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/party/ParticlePartyTime.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticlePartyTime.java index 3aab6f928..a3944317c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/party/ParticlePartyTime.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticlePartyTime.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle.party; +package mineplex.core.gadget.gadgets.particle; import java.util.Arrays; import java.util.Collections; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/howlingwinds/ParticleRain.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleRain.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/howlingwinds/ParticleRain.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleRain.java index f2c45007c..4311666c0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/howlingwinds/ParticleRain.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleRain.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle.howlingwinds; +package mineplex.core.gadget.gadgets.particle; import java.util.ArrayList; import java.util.List; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/titan/ParticleTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleTitan.java similarity index 98% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/titan/ParticleTitan.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleTitan.java index b5f02de23..7d062f713 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/titan/ParticleTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleTitan.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle.titan; +package mineplex.core.gadget.gadgets.particle; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleAuraNiceness.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java similarity index 98% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleAuraNiceness.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java index 39b20d946..8b72b935c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleAuraNiceness.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.freedom; import mineplex.core.arcadeevents.CoreGameStartEvent; import mineplex.core.arcadeevents.CoreGameStopEvent; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCanadian.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCanadian.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java index 10f87fe29..7984af254 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCanadian.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.freedom; import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFreedomFireworks.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedomFireworks.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFreedomFireworks.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedomFireworks.java index 92721b705..4234a257b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFreedomFireworks.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedomFireworks.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.freedom; import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleStarSpangled.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleStarSpangled.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleStarSpangled.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleStarSpangled.java index ead0bc411..cf65cb0dd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleStarSpangled.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleStarSpangled.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.freedom; import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCanadian.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCanadian.java index a295bb9da..0b18eca18 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCanadian.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCanadian.java @@ -1,14 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFreedom; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailRedWhite; -import mineplex.core.gadget.gadgets.death.DeathFreedom; import mineplex.core.gadget.gadgets.death.DeathMapleLeaf; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFreedom; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMaple; -import mineplex.core.gadget.gadgets.particle.ParticleCanadian; -import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedom; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleCanadian; import mineplex.core.gadget.types.GadgetSet; public class SetCanadian extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCandyCane.java index 9a2d9ce75..c9b059480 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCandyCane.java @@ -4,7 +4,7 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCandyCane; import mineplex.core.gadget.gadgets.death.DeathCandyCane; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCandyCane; -import mineplex.core.gadget.gadgets.particle.candycane.ParticleCandyCane; +import mineplex.core.gadget.gadgets.particle.ParticleCandyCane; import mineplex.core.gadget.types.GadgetSet; public class SetCandyCane extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCupidsLove.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCupidsLove.java index 47f1552f7..dca2f191c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCupidsLove.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCupidsLove.java @@ -4,7 +4,7 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCupid; import mineplex.core.gadget.gadgets.death.DeathCupidsBrokenHeart; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCupidsWings; -import mineplex.core.gadget.gadgets.particle.cupidslove.ParticleHeart; +import mineplex.core.gadget.gadgets.particle.ParticleHeart; import mineplex.core.gadget.types.GadgetSet; public class SetCupidsLove extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetEmerald.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetEmerald.java index 740174dba..26df2fd6f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetEmerald.java @@ -4,7 +4,7 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailEmerald; import mineplex.core.gadget.gadgets.death.DeathEmerald; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpEmerald; -import mineplex.core.gadget.gadgets.particle.emerald.ParticleEmerald; +import mineplex.core.gadget.gadgets.particle.ParticleEmerald; import mineplex.core.gadget.types.GadgetSet; public class SetEmerald extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFreedom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFreedom.java index e8c300adf..a64e2caf3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFreedom.java @@ -4,8 +4,7 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFreedom; import mineplex.core.gadget.gadgets.death.DeathFreedom; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFreedom; -import mineplex.core.gadget.gadgets.particle.ParticleStarSpangled; -import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedom; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleStarSpangled; import mineplex.core.gadget.types.GadgetSet; public class SetFreedom extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFrostLord.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFrostLord.java index 6050a0b00..311600e5e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFrostLord.java @@ -4,7 +4,7 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFrostLord; import mineplex.core.gadget.gadgets.death.DeathFrostLord; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFrostLord; -import mineplex.core.gadget.gadgets.particle.frostlord.ParticleFrostLord; +import mineplex.core.gadget.gadgets.particle.ParticleFrostLord; import mineplex.core.gadget.types.GadgetSet; public class SetFrostLord extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetHowlingWinds.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetHowlingWinds.java index 672f49bdc..668503111 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetHowlingWinds.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetHowlingWinds.java @@ -4,7 +4,7 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailStorm; import mineplex.core.gadget.gadgets.death.DeathStorm; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpStorm; -import mineplex.core.gadget.gadgets.particle.howlingwinds.ParticleRain; +import mineplex.core.gadget.gadgets.particle.ParticleRain; import mineplex.core.gadget.types.GadgetSet; public class SetHowlingWinds extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetMusic.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetMusic.java index fdd47eacd..50eef82a0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetMusic.java @@ -4,7 +4,7 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailMusic; import mineplex.core.gadget.gadgets.death.DeathMusic; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMusic; -import mineplex.core.gadget.gadgets.particle.music.ParticleMusic; +import mineplex.core.gadget.gadgets.particle.ParticleMusic; import mineplex.core.gadget.types.GadgetSet; public class SetMusic extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetParty.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetParty.java index 0b99f9f2e..f22ce959e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetParty.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetParty.java @@ -4,7 +4,7 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailConfetti; import mineplex.core.gadget.gadgets.death.DeathPinataBurst; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFirecracker; -import mineplex.core.gadget.gadgets.particle.party.ParticlePartyTime; +import mineplex.core.gadget.gadgets.particle.ParticlePartyTime; import mineplex.core.gadget.types.GadgetSet; public class SetParty extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetShadow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetShadow.java index 1d5fad5dd..80b751d7d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetShadow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetShadow.java @@ -4,7 +4,7 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailShadow; import mineplex.core.gadget.gadgets.death.DeathShadow; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpShadow; -import mineplex.core.gadget.gadgets.particle.shadow.ParticleFoot; +import mineplex.core.gadget.gadgets.particle.ParticleFoot; import mineplex.core.gadget.types.GadgetSet; public class SetShadow extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetTitan.java index 0d333818d..360d86270 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetTitan.java @@ -4,7 +4,7 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailTitan; import mineplex.core.gadget.gadgets.death.DeathTitan; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpTitan; -import mineplex.core.gadget.gadgets.particle.titan.ParticleTitan; +import mineplex.core.gadget.gadgets.particle.ParticleTitan; import mineplex.core.gadget.types.GadgetSet; public class SetTitan extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetVampire.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetVampire.java index 7ec9b7f7a..1a5541085 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetVampire.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetVampire.java @@ -4,7 +4,7 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailBlood; import mineplex.core.gadget.gadgets.death.DeathBlood; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpBlood; -import mineplex.core.gadget.gadgets.particle.vampire.ParticleBlood; +import mineplex.core.gadget.gadgets.particle.ParticleBlood; import mineplex.core.gadget.types.GadgetSet; public class SetVampire extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetWisdom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetWisdom.java index 870b70d3f..5bbae55da 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetWisdom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetWisdom.java @@ -4,7 +4,7 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailEnchant; import mineplex.core.gadget.gadgets.death.DeathEnchant; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpEnchant; -import mineplex.core.gadget.gadgets.particle.wisdom.ParticleEnchant; +import mineplex.core.gadget.gadgets.particle.ParticleEnchant; import mineplex.core.gadget.types.GadgetSet; public class SetWisdom extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java index eabf8e7e4..783e16317 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java @@ -9,10 +9,10 @@ import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailRedWhite; import mineplex.core.gadget.gadgets.death.DeathMapleLeaf; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMaple; import mineplex.core.gadget.gadgets.flag.FlagType; -import mineplex.core.gadget.gadgets.particle.ParticleAuraNiceness; -import mineplex.core.gadget.gadgets.particle.ParticleCanadian; -import mineplex.core.gadget.gadgets.particle.ParticleFreedomFireworks; -import mineplex.core.gadget.gadgets.particle.ParticleStarSpangled; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleAuraNiceness; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleCanadian; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedomFireworks; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleStarSpangled; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -124,18 +124,18 @@ import mineplex.core.gadget.gadgets.particle.ParticleWingsInfernal; import mineplex.core.gadget.gadgets.particle.ParticleWingsLove; import mineplex.core.gadget.gadgets.particle.ParticleWingsPixie; import mineplex.core.gadget.gadgets.particle.ParticleYinYang; -import mineplex.core.gadget.gadgets.particle.candycane.ParticleCandyCane; -import mineplex.core.gadget.gadgets.particle.cupidslove.ParticleHeart; -import mineplex.core.gadget.gadgets.particle.emerald.ParticleEmerald; +import mineplex.core.gadget.gadgets.particle.ParticleCandyCane; +import mineplex.core.gadget.gadgets.particle.ParticleHeart; +import mineplex.core.gadget.gadgets.particle.ParticleEmerald; import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedom; -import mineplex.core.gadget.gadgets.particle.frostlord.ParticleFrostLord; -import mineplex.core.gadget.gadgets.particle.howlingwinds.ParticleRain; -import mineplex.core.gadget.gadgets.particle.music.ParticleMusic; -import mineplex.core.gadget.gadgets.particle.party.ParticlePartyTime; -import mineplex.core.gadget.gadgets.particle.shadow.ParticleFoot; +import mineplex.core.gadget.gadgets.particle.ParticleFrostLord; +import mineplex.core.gadget.gadgets.particle.ParticleRain; +import mineplex.core.gadget.gadgets.particle.ParticleMusic; +import mineplex.core.gadget.gadgets.particle.ParticlePartyTime; +import mineplex.core.gadget.gadgets.particle.ParticleFoot; import mineplex.core.gadget.gadgets.particle.spring.ParticleSpringHalo; -import mineplex.core.gadget.gadgets.particle.vampire.ParticleBlood; -import mineplex.core.gadget.gadgets.particle.wisdom.ParticleEnchant; +import mineplex.core.gadget.gadgets.particle.ParticleBlood; +import mineplex.core.gadget.gadgets.particle.ParticleEnchant; import mineplex.core.gadget.gadgets.taunts.BlowAKissTaunt; import mineplex.core.gadget.gadgets.taunts.RainbowTaunt; import mineplex.core.gadget.gadgets.wineffect.WinEffectBabyChicken; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java index de56e4730..6c79d08c8 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java @@ -9,10 +9,10 @@ import mineplex.core.gadget.gadgets.death.DeathMapleLeaf; import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMaple; import mineplex.core.gadget.gadgets.flag.FlagType; import mineplex.core.gadget.gadgets.hat.HatType; -import mineplex.core.gadget.gadgets.particle.ParticleAuraNiceness; -import mineplex.core.gadget.gadgets.particle.ParticleCanadian; -import mineplex.core.gadget.gadgets.particle.ParticleFreedomFireworks; -import mineplex.core.gadget.gadgets.particle.ParticleStarSpangled; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleAuraNiceness; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleCanadian; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedomFireworks; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleStarSpangled; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; From 1e289271c6230cda88de148cb47ced76c7dca41a Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 02:02:57 -0400 Subject: [PATCH 42/56] Clean up and add comments --- .../core/cosmetic/CosmeticManager.java | 1 - .../core/cosmetic/ui/page/CostumePage.java | 3 -- .../core/cosmetic/ui/page/FlagPage.java | 4 -- .../core/cosmetic/ui/page/GadgetPage.java | 29 ------------- .../mineplex/core/cosmetic/ui/page/Menu.java | 7 +--- .../core/cosmetic/ui/page/MusicPage.java | 3 -- .../arrowtrail/ArrowTrailRedWhite.java | 11 +++-- .../gadget/gadgets/death/DeathMapleLeaf.java | 9 ++-- .../gadgets/doublejump/DoubleJumpMaple.java | 4 -- .../core/gadget/gadgets/flag/FlagType.java | 3 +- .../freedom/ParticleAuraNiceness.java | 42 +++++++++++++------ .../particle/freedom/ParticleCanadian.java | 12 +++--- .../freedom/ParticleFreedomFireworks.java | 10 +++-- .../core/gadget/types/FlagGadget.java | 13 ++---- .../src/mineplex/core/reward/Reward.java | 3 -- .../src/mineplex/core/reward/RewardData.java | 3 -- .../mineplex/core/reward/RewardRarity.java | 3 -- .../treasure/event/TreasureFinishEvent.java | 2 +- .../treasure/event/TreasurePreStartEvent.java | 2 +- .../treasure/event/TreasureStartEvent.java | 3 ++ 20 files changed, 64 insertions(+), 103 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/CosmeticManager.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/CosmeticManager.java index 9f0552d86..7cb686de7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/CosmeticManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/CosmeticManager.java @@ -1,6 +1,5 @@ package mineplex.core.cosmetic; -import mineplex.core.chat.Chat; import mineplex.core.punish.Punish; import org.bukkit.Bukkit; import org.bukkit.ChatColor; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/CostumePage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/CostumePage.java index 73af59a89..c1a606358 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/CostumePage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/CostumePage.java @@ -22,9 +22,6 @@ import mineplex.core.gadget.types.OutfitGadget; import mineplex.core.shop.item.IButton; import mineplex.core.shop.item.ShopItem; -/** - * Created by shaun on 14-09-15. - */ public class CostumePage extends GadgetPage { public CostumePage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name, Player player) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/FlagPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/FlagPage.java index 1a2b98635..8de6f4cdf 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/FlagPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/FlagPage.java @@ -15,10 +15,6 @@ import org.bukkit.event.inventory.ClickType; import java.util.List; -/** - * @author J Teissler - * @date 6/26/17 - */ public class FlagPage extends GadgetPage { public FlagPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name, diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/GadgetPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/GadgetPage.java index 12523a911..03efda5ce 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/GadgetPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/GadgetPage.java @@ -8,12 +8,10 @@ import java.util.Arrays; import java.util.List; import java.util.Locale; -import mineplex.core.gadget.types.FlagGadget; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.BannerMeta; import org.bukkit.inventory.meta.ItemMeta; import mineplex.core.account.CoreClientManager; @@ -22,7 +20,6 @@ import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilText; -import mineplex.core.common.util.banner.CountryFlag; import mineplex.core.cosmetic.CosmeticManager; import mineplex.core.cosmetic.ui.CosmeticShop; import mineplex.core.cosmetic.ui.button.GadgetButton; @@ -371,19 +368,6 @@ public class GadgetPage extends ShopPageBase meta.setLore(itemLore); gadgetItemStack.setItemMeta(meta); - /*if (gadget.getGadgetType() == GadgetType.ARROW_TRAIL || gadget.getGadgetType() == GadgetType.DEATH - || gadget.getGadgetType() == GadgetType.PARTICLE || gadget.getGadgetType() == GadgetType.DOUBLE_JUMP) - { - if (gadget.getCost(GlobalCurrency.TREASURE_SHARD) == -8) - { - gadgetItemStack = CountryFlag.USA.getBanner(); - BannerMeta bannerMeta = (BannerMeta) gadgetItemStack.getItemMeta(); - bannerMeta.setDisplayName(C.cGreen + C.Bold + gadget.getName()); - bannerMeta.setLore(meta.getLore()); - gadgetItemStack.setItemMeta(bannerMeta); - } - }*/ - addButton(slot, new ShopItem(gadgetItemStack, false, false).hideInfo(), new DeactivateGadgetButton(gadget, this)); } else @@ -394,19 +378,6 @@ public class GadgetPage extends ShopPageBase meta.setLore(itemLore); gadgetItemStack.setItemMeta(meta); - /*if (gadget.getGadgetType() == GadgetType.ARROW_TRAIL || gadget.getGadgetType() == GadgetType.DEATH - || gadget.getGadgetType() == GadgetType.PARTICLE || gadget.getGadgetType() == GadgetType.DOUBLE_JUMP) - { - if (gadget.getCost(GlobalCurrency.TREASURE_SHARD) == -8) - { - gadgetItemStack = CountryFlag.USA.getBanner(); - BannerMeta bannerMeta = (BannerMeta) gadgetItemStack.getItemMeta(); - bannerMeta.setDisplayName(C.cGreen + C.Bold + gadget.getName()); - bannerMeta.setLore(meta.getLore()); - gadgetItemStack.setItemMeta(bannerMeta); - } - }*/ - /*if (gadget instanceof MorphStray) { gadgetItemStack = UtilItem.getVersionSpecificItem(_player, UtilPlayer.PlayerVersion._1_9, gadgetItemStack); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java index 084025a09..a3275ea39 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java @@ -1,7 +1,6 @@ package mineplex.core.cosmetic.ui.page; import java.util.ArrayList; -import java.util.Arrays; import java.util.EnumMap; import java.util.List; import java.util.Map; @@ -9,9 +8,7 @@ import java.util.Map; import mineplex.core.common.util.banner.CountryFlag; import mineplex.core.cosmetic.ui.button.open.OpenFlags; import mineplex.core.itemstack.ItemBuilder; -import org.bukkit.DyeColor; import org.bukkit.Material; -import org.bukkit.block.Banner; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -20,7 +17,6 @@ import mineplex.core.common.currency.GlobalCurrency; import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilText; -import mineplex.core.common.util.UtilUI; import mineplex.core.cosmetic.CosmeticManager; import mineplex.core.cosmetic.ui.CosmeticShop; import mineplex.core.cosmetic.ui.button.open.OpenArrowTrails; @@ -49,7 +45,6 @@ import mineplex.core.shop.page.ShopPageBase; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BannerMeta; -import org.bukkit.inventory.meta.ItemMeta; public class Menu extends ShopPageBase { @@ -253,6 +248,8 @@ public class Menu extends ShopPageBase lore = getLore(ownedCount.get(type), maxCount.get(type), "Show off your country's flag!", VISIBILITY_HUB, enabled.get(type)); addButton(flagSlot, new ShopItem(Material.BANNER, "Flags", lore, 1, false), new OpenFlags(this, enabled.get(type))); if (enabled.containsKey(type)) addGlow(flagSlot); + + // Copy over banner design BannerMeta banner = (BannerMeta) CountryFlag.MINEPLEX.getBanner().getItemMeta(); BannerMeta meta = ((BannerMeta) getItem(flagSlot).getItemMeta()); meta.setBaseColor(banner.getBaseColor()); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java index 97f32d027..49fa65cf7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java @@ -14,9 +14,6 @@ import mineplex.core.gadget.types.GadgetType; import mineplex.core.shop.item.ShopItem; import mineplex.core.shop.item.IButton; -/** - * Created by shaun on 14-09-15. - */ public class MusicPage extends GadgetPage { public MusicPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name, Player player) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailRedWhite.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailRedWhite.java index e9a3c19e1..37934c81f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailRedWhite.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailRedWhite.java @@ -10,14 +10,14 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.types.ArrowEffectGadget; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.block.banner.Pattern; import org.bukkit.entity.Arrow; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.BannerMeta; import org.bukkit.util.Vector; -import java.awt.*; +import java.awt.Color; +/** + * Trails a red and white double helix behind the arrow. + */ public class ArrowTrailRedWhite extends ArrowEffectGadget { public ArrowTrailRedWhite(GadgetManager manager) @@ -72,7 +72,6 @@ public class ArrowTrailRedWhite extends ArrowEffectGadget @Override public void doHitEffect(Arrow arrow) { - //UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.EXPLODE, arrow.getLocation(), 0.35f, 0.35f, 0.35f, 1f, 15, UtilParticle.ViewDist.LONGER); - UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.EXPLODE, arrow.getLocation(), 0, 0, 0, 0, 3, UtilParticle.ViewDist.LONGER); + UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.EXPLODE, arrow.getLocation(), 0, 0, 0, 0, 3, UtilParticle.ViewDist.NORMAL); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java index b1a0e9955..194a2b6d4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java @@ -5,7 +5,6 @@ import mineplex.core.common.shape.ShapeWings; import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilParticle; -import mineplex.core.common.util.UtilShapes; import mineplex.core.common.util.UtilText; import mineplex.core.common.util.banner.CountryFlag; import mineplex.core.gadget.GadgetManager; @@ -16,11 +15,13 @@ import org.bukkit.entity.Player; import org.bukkit.util.Vector; /** - * @author J Teissler - * @date 6/26/17 + * Displays a giant maple leaf at the point of death. */ public class DeathMapleLeaf extends DeathEffectGadget { + /** height off the ground of the leaf */ + private static final double HEIGHT = 3; + private final ShapeWings _leafOuter = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1.0, 0, 0), 1, 0, false, 0, ShapeWings.MAPLE_LEAF); private final ShapeWings _leafInner = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(0.7, 0, 0), 1, 0, false, 0, ShapeWings.MAPLE_LEAF); @@ -37,7 +38,7 @@ public class DeathMapleLeaf extends DeathEffectGadget public void onBlood(Player player, BloodEvent event) { event.setCancelled(true); - Location loc = player.getLocation().add(0, 3, 0); + Location loc = player.getLocation().add(0, HEIGHT, 0); _leafOuter.display(loc); _leafInner.display(loc); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMaple.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMaple.java index 1b1396463..4b9d08338 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMaple.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMaple.java @@ -2,8 +2,6 @@ package mineplex.core.gadget.gadgets.doublejump; import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; -import mineplex.core.common.util.UtilAlg; -import mineplex.core.common.util.UtilColor; import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilText; @@ -12,12 +10,10 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.types.DoubleJumpEffectGadget; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; -import org.bukkit.Color; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; -import org.bukkit.util.Vector; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/flag/FlagType.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/flag/FlagType.java index 7e2c48e28..aec958dd9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/flag/FlagType.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/flag/FlagType.java @@ -3,8 +3,7 @@ package mineplex.core.gadget.gadgets.flag; import mineplex.core.common.util.banner.CountryFlag; /** - * @author J Teissler - * @date 6/27/17 + * Cosmetic flags representing countries. */ public enum FlagType { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java index 8b72b935c..99a22fff4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java @@ -2,14 +2,12 @@ package mineplex.core.gadget.gadgets.particle.freedom; import mineplex.core.arcadeevents.CoreGameStartEvent; import mineplex.core.arcadeevents.CoreGameStopEvent; -import mineplex.core.blockrestore.BlockRestore; import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilShapes; -import mineplex.core.common.util.UtilSound; import mineplex.core.common.util.UtilText; import mineplex.core.common.util.banner.CountryFlag; import mineplex.core.gadget.GadgetManager; @@ -18,19 +16,14 @@ import mineplex.core.treasure.event.TreasureFinishEvent; import mineplex.core.treasure.event.TreasureStartEvent; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; -import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.block.BlockFadeEvent; import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.util.Vector; import java.awt.Color; import java.util.HashMap; @@ -43,24 +36,38 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.stream.Collectors; /** - * @author J Teissler - * @date 6/26/17 + * Places flowers around the player with poofs of red and white */ public class ParticleAuraNiceness extends ParticleGadget { /** Radius within which flowers not allowed near treasure chests */ private static final int TREASURE_RADIUS = 4; + /** Horizontal offset for particle spawns */ private static final double H_FIELD = 0.5; + + /** Vertical offset for particle spawns */ private static final double V_FIELD = 0.35; - private static final int ROSE_PROBABILITY = 30; + + /** How likely a flower is to be spawned (1/n) */ + private static final int ROSE_PROBABILITY = 40; + + /** Radius in which flowers are spawned */ private static final double ROSE_RADIUS = 2.5; + /** How many particles accompany each flower spawn */ + private static final int PARTICLE_COUNT = 20; + + /** List of blocks that have flowers in them */ private final Set _blocks = new HashSet<>(); + /** Milliseconds for which flowers persist */ + private final long DURATION = 5000; + /** Locations at which treasure is currently being opened */ private final Map _openingTreasure = new HashMap<>(); + /** Whether flowers can be spawned in addition to particles */ private boolean _enabled = true; public ParticleAuraNiceness(GadgetManager manager) @@ -102,10 +109,10 @@ public class ParticleAuraNiceness extends ParticleGadget if (_enabled) { _blocks.add(b); - Manager.getBlockRestore().add(b, Material.RED_ROSE.getId(), (byte) 3, 5000); + Manager.getBlockRestore().add(b, Material.RED_ROSE.getId(), (byte) 3, DURATION); } - for (int i = 0; i < 20; ++i) + for (int i = 0; i < PARTICLE_COUNT; ++i) { UtilParticle.playColoredParticleToAll(Color.RED, UtilParticle.ParticleType.RED_DUST, UtilMath.gauss(loc, 4, 4, 4), 0, UtilParticle.ViewDist.NORMAL); UtilParticle.playColoredParticleToAll(Color.WHITE, UtilParticle.ParticleType.RED_DUST, UtilMath.gauss(loc, 4, 4, 4), 0, UtilParticle.ViewDist.NORMAL); @@ -122,7 +129,7 @@ public class ParticleAuraNiceness extends ParticleGadget { it.remove(); Location loc = b.getLocation().add(H_FIELD, V_FIELD, H_FIELD); - for (int i = 0; i < 10; ++i) + for (int i = 0; i < PARTICLE_COUNT / 2; ++i) { UtilParticle.playColoredParticleToAll(Color.RED, UtilParticle.ParticleType.RED_DUST, UtilMath.gauss(loc, 6, 6, 6), 0, UtilParticle.ViewDist.NORMAL); UtilParticle.playColoredParticleToAll(Color.WHITE, UtilParticle.ParticleType.RED_DUST, UtilMath.gauss(loc, 6, 6, 6), 0, UtilParticle.ViewDist.NORMAL); @@ -131,6 +138,9 @@ public class ParticleAuraNiceness extends ParticleGadget } } + /** + * Stop flowers from popping off of blocks + */ @EventHandler public void onBlockFade(BlockPhysicsEvent event) { @@ -162,12 +172,18 @@ public class ParticleAuraNiceness extends ParticleGadget } } + /** + * Disable flowers on game start + */ @EventHandler public void onGameStart(CoreGameStartEvent event) { _enabled = false; } + /** + * Enable flowers on game end + */ @EventHandler public void onGameEnd(CoreGameStopEvent event) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java index 7984af254..c9efa6b5c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java @@ -18,13 +18,17 @@ import org.bukkit.inventory.meta.BannerMeta; import java.awt.Color; /** - * @author J Teissler - * @date 6/26/17 + * Leaves a trail behind the player with the colors of the Canadian flag. */ public class ParticleCanadian extends ParticleGadget { + /** # of lines of particles */ private static final int STRAND_COUNT = 9; + + /** How far apart each line of particles is */ private static final double STRAND_SPACING = 0.124; + + /** How far off the floor the particles begin */ private static final double DISTANCE_FROM_FLOOR = 0.43; public ParticleCanadian(GadgetManager manager) @@ -33,9 +37,7 @@ public class ParticleCanadian extends ParticleGadget UtilText.splitLineToArray(C.cGray + "Lead the way to freedom!", LineFormat.LORE), -8, Material.WOOL, (byte) 0); - ItemStack stack = CountryFlag.CANADA.getBanner(); - System.out.println(((BannerMeta)stack.getItemMeta()).getBaseColor().getColor().toString()); - setDisplayItem(stack); + setDisplayItem(CountryFlag.CANADA.getBanner()); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedomFireworks.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedomFireworks.java index 4234a257b..a7a18702e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedomFireworks.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedomFireworks.java @@ -13,22 +13,24 @@ import mineplex.core.updater.event.UpdateEvent; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; -import org.bukkit.util.Vector; import java.util.concurrent.ThreadLocalRandom; /** - * @author J Teissler - * @date 6/26/17 + * Small fireworks which explode around the player */ public class ParticleFreedomFireworks extends ParticleGadget { + /** Block types to source for particles */ private static final Material[] BLOCKTYPES = { Material.REDSTONE_BLOCK, Material.LAPIS_BLOCK, Material.QUARTZ_BLOCK }; + /** Amount of particles for each firework */ + private static final int PARTICLE_COUNT = 20; + public ParticleFreedomFireworks(GadgetManager manager) { super(manager, "Freedom Fireworks", @@ -49,7 +51,7 @@ public class ParticleFreedomFireworks extends ParticleGadget String particle = UtilParticle.ParticleType.BLOCK_CRACK.getParticle(BLOCKTYPES[ThreadLocalRandom.current().nextInt(0, BLOCKTYPES.length)], 0); Location location = UtilMath.gauss(player.getEyeLocation(), 1, 1, 1); - for (int i = 0; i < 20; ++i) + for (int i = 0; i < PARTICLE_COUNT; ++i) { UtilParticle.PlayParticleToAll(particle, location, null, 3.0f, 1, UtilParticle.ViewDist.NORMAL); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/FlagGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/FlagGadget.java index d28b45a17..7b7d71883 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/FlagGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/FlagGadget.java @@ -5,26 +5,18 @@ import mineplex.core.common.util.F; import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilText; -import mineplex.core.common.util.banner.CountryFlag; -import mineplex.core.disguise.disguises.DisguiseSkeleton; import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.flag.FlagType; -import mineplex.core.gadget.gadgets.morph.managers.UtilMorph; -import mineplex.core.itemstack.ItemBuilder; -import org.bukkit.Color; import org.bukkit.Material; import org.bukkit.entity.Player; -import org.bukkit.entity.Skeleton; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.inventory.meta.LeatherArmorMeta; /** - * @author J Teissler - * @date 6/26/17 + * Flags which sit upon players head. */ public class FlagGadget extends Gadget { @@ -88,6 +80,9 @@ public class FlagGadget extends Gadget disable(event.getEntity()); } + /** + * @return The specific gadget which this represents. + */ public FlagType getFlagType() { return _flag; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/Reward.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/Reward.java index ef209276e..281374325 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/Reward.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/Reward.java @@ -6,9 +6,6 @@ import org.bukkit.entity.Player; import mineplex.core.common.util.Callback; -/** - * Created by Shaun on 9/2/2014. - */ public abstract class Reward { protected static final Random RANDOM = new Random(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardData.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardData.java index 8179dbb98..6f3acd00b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardData.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardData.java @@ -2,9 +2,6 @@ package mineplex.core.reward; import org.bukkit.inventory.ItemStack; -/** - * Created by shaun on 14-09-18. - */ public class RewardData { private final String _header; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardRarity.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardRarity.java index 759769234..eff019430 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardRarity.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardRarity.java @@ -7,9 +7,6 @@ import org.bukkit.inventory.meta.ItemMeta; import mineplex.core.common.util.C; import static mineplex.core.common.util.C.*; -/** - * Created by Shaun on 9/2/2014. - */ public enum RewardRarity { /** diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureFinishEvent.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureFinishEvent.java index ca001e6a5..15a85c4dd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureFinishEvent.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureFinishEvent.java @@ -7,7 +7,7 @@ import org.bukkit.event.HandlerList; import mineplex.core.treasure.Treasure; /** - * Created by shaun on 14-09-12. + * Called once a player has finished with the treasure opening process. */ public class TreasureFinishEvent extends Event { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasurePreStartEvent.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasurePreStartEvent.java index d384c61db..29355cfd1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasurePreStartEvent.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasurePreStartEvent.java @@ -7,7 +7,7 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; /** - * Created by shaun on 14-09-12. + * Called when a player selects a chest to open. */ public class TreasurePreStartEvent extends Event implements Cancellable { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureStartEvent.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureStartEvent.java index 70c891f52..37d59dc74 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureStartEvent.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureStartEvent.java @@ -10,6 +10,9 @@ import org.bukkit.event.HandlerList; import mineplex.core.reward.Reward; import mineplex.core.treasure.Treasure; +/** + * Called when a player is able to begin opening chests. + */ public class TreasureStartEvent extends Event { private static final HandlerList handlers = new HandlerList(); From 36ec3014bf250946a21f7fb276dd9a3cd858a1e1 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:31:39 -0400 Subject: [PATCH 43/56] Swap cosmetic menu positions of items --- .../src/mineplex/core/cosmetic/ui/page/Menu.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java index a3275ea39..9814c081b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java @@ -74,12 +74,12 @@ public class Menu extends ShopPageBase ShopItem shards = new ShopItem(Material.PRISMARINE_SHARD, C.cAqua + C.Bold + treasureShards + " Treasure Shards", shardLore.toArray(new String[0]), 0, false); - int deathSlot = 1; + int deathSlot = 19; int jumpSlot = 28; - int particleSlot = 10; + int particleSlot = 1; int winEffectSlot = 13; int shardSlot = 22; - int arrowSlot = 19; + int arrowSlot = 10; int tauntSlot = 31; int gameModifierSlot = 21; int kitSelectorSlot = 23; @@ -95,7 +95,7 @@ public class Menu extends ShopPageBase addItem(shardSlot, shards); - ItemStack pane = new ItemBuilder(Material.STAINED_GLASS_PANE).setData((byte)15).setTitle("").build(); + ItemStack pane = new ItemBuilder(Material.STAINED_GLASS_PANE).setData((byte)15).setTitle(C.cBlack).build(); for (int i = 0; i <= 45; i += 9) addItem(i, pane.clone()); for (int i = 8; i <= 53; i += 9) addItem(i, pane.clone()); for (int i = 37; i <= 43; ++i) addItem(i, pane.clone()); From 0495b2d1ec86b9b9a2bec4d6cf0f214e29f40be7 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:31:48 -0400 Subject: [PATCH 44/56] Add cosmetics unlock command for all players --- .../commands/UnlockCosmeticsCommand.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/commands/UnlockCosmeticsCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/commands/UnlockCosmeticsCommand.java index 43e1a4756..69e6f863d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/commands/UnlockCosmeticsCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/commands/UnlockCosmeticsCommand.java @@ -41,13 +41,30 @@ public class UnlockCosmeticsCommand extends CommandBase { addCosmetics(null, caller); } - else if (args.length == 1) + else if (args.length >= 1) { - Player player = Bukkit.getPlayer(args[0]); - if (player != null) + if (args[0].equalsIgnoreCase("all")) { - addCosmetics(null, player); - UtilPlayer.message(caller, F.main("Unlock Cosmetics", "Added all the cosmetics to " + F.name(player.getName()) + "!")); + for (Player player : UtilServer.getPlayers()) + { + if (player != null) + { + addCosmetics(null, player); + UtilPlayer.message(caller, F.main("Unlock Cosmetics", "Added all the cosmetics to " + F.name(player.getName()) + "!")); + } + } + } + else + { + for (int i = 0; i < args.length; ++i) + { + Player player = Bukkit.getPlayer(args[i]); + if (player != null) + { + addCosmetics(null, player); + UtilPlayer.message(caller, F.main("Unlock Cosmetics", "Added all the cosmetics to " + F.name(player.getName()) + "!")); + } + } } } } From 5a3e79a63f0c1547bc50974a8696e9dc57e4d9bd Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:32:00 -0400 Subject: [PATCH 45/56] Add white to maple leaf death effect --- .../src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java index 194a2b6d4..3cfeeb034 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java @@ -22,7 +22,7 @@ public class DeathMapleLeaf extends DeathEffectGadget /** height off the ground of the leaf */ private static final double HEIGHT = 3; - private final ShapeWings _leafOuter = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1.0, 0, 0), 1, 0, false, 0, ShapeWings.MAPLE_LEAF); + private final ShapeWings _leafOuter = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1.0, 1.0, 1.0), 1, 0, false, 0, ShapeWings.MAPLE_LEAF); private final ShapeWings _leafInner = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(0.7, 0, 0), 1, 0, false, 0, ShapeWings.MAPLE_LEAF); public DeathMapleLeaf(GadgetManager manager) From 816f1467aa082a9bcb5eda844ad43efd02f90f23 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:32:12 -0400 Subject: [PATCH 46/56] Remove green from candy cane cosmetics --- .../core/gadget/gadgets/doublejump/DoubleJumpCandyCane.java | 2 +- .../core/gadget/gadgets/particle/ParticleCandyCane.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCandyCane.java index 62f3ad6c4..209da4b7c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCandyCane.java @@ -30,7 +30,7 @@ public class DoubleJumpCandyCane extends DoubleJumpEffectGadget Location loc = player.getLocation(); UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 15), loc, 0, 0, 0, 0.15f, 100, ViewDist.NORMAL); UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 1), loc, 0, 0, 0, 0.15f, 100, ViewDist.NORMAL); - UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 2), loc, 0, 0, 0, 0.15f, 100, ViewDist.NORMAL); + UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 15), loc, 0, 0, 0, 0.15f, 100, ViewDist.NORMAL); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCandyCane.java index 5f31b13fb..e9e572f19 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCandyCane.java @@ -63,7 +63,7 @@ public class ParticleCandyCane extends ParticleGadget UtilParticle.playParticleFor(player, UtilParticle.ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 15), loc, w, y, w, 0, a, UtilParticle.ViewDist.NORMAL); UtilParticle.playParticleFor(player, UtilParticle.ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 1), loc, w, y, w, 0, a, UtilParticle.ViewDist.NORMAL); - UtilParticle.playParticleFor(player, UtilParticle.ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 2), loc, w, y, w, 0, a, UtilParticle.ViewDist.NORMAL); + UtilParticle.playParticleFor(player, UtilParticle.ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 15), loc, w, y, w, 0, a, UtilParticle.ViewDist.NORMAL); } @EventHandler From a9311e7457ef553e3745ec3b3d496f7624c71cae Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:32:19 -0400 Subject: [PATCH 47/56] Reduce coal fume particles --- .../core/gadget/gadgets/particle/ParticleCoalFumes.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCoalFumes.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCoalFumes.java index 236bc1e8a..651993fb9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCoalFumes.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCoalFumes.java @@ -1,5 +1,6 @@ package mineplex.core.gadget.gadgets.particle; +import mineplex.core.common.util.UtilMath; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -27,7 +28,7 @@ public class ParticleCoalFumes extends ParticleGadget @Override public void playParticle(Player player, UpdateEvent event) { - if(event.getType() != UpdateType.TICK) return; + if(event.getType() != UpdateType.FASTER) return; float xz = 1; int amount = 5; @@ -39,6 +40,6 @@ public class ParticleCoalFumes extends ParticleGadget amount = 2; } - UtilParticle.playParticleFor(player, type, player.getLocation(), xz, 0, xz, 0, amount, ViewDist.NORMAL); + UtilParticle.playParticleFor(player, type, UtilMath.gauss(player.getLocation(), 2, 6, 2), xz, 0, xz, 0, amount, ViewDist.NORMAL); } } From c2b025e8837cd77ed880cc3d8dffb049d2576fda Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:32:39 -0400 Subject: [PATCH 48/56] Distribute heart particles using a gaussian curve --- .../mineplex/core/gadget/gadgets/particle/ParticleHeart.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleHeart.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleHeart.java index ca008bc75..c48b0ddb4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleHeart.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleHeart.java @@ -1,5 +1,6 @@ package mineplex.core.gadget.gadgets.particle; +import mineplex.core.common.util.UtilMath; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -37,11 +38,11 @@ public class ParticleHeart extends ParticleGadget { if(getSet() == null || !getSet().isActive(player)) return; - UtilParticle.playParticleFor(player, ParticleType.HEART, player.getLocation().add(0, 1, 0), null, 0, 1, ViewDist.NORMAL); + UtilParticle.playParticleFor(player, ParticleType.HEART, player.getLocation().add(0, 1.2, 0), null, 0, 1, ViewDist.NORMAL); } else { - UtilParticle.playParticleFor(player, ParticleType.HEART, player.getLocation().add(0, 1, 0), 0.5f, 0.5f, 0.5f, 0, 1, ViewDist.NORMAL); + UtilParticle.playParticleFor(player, ParticleType.HEART, UtilMath.gauss(player.getLocation(), 1, 3, 1).add(0, 1.2, 0), null, 0, 1, ViewDist.NORMAL); } } From 2021a7e321bf45c5cc6667a5d9d3ae95453c9913 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:32:52 -0400 Subject: [PATCH 49/56] Correctly handle taunt cooldowns --- .../gadget/gadgets/taunts/BlowAKissTaunt.java | 8 ++++++-- .../gadget/gadgets/taunts/EternalTaunt.java | 20 +++++++++++++------ .../gadget/gadgets/taunts/RainbowTaunt.java | 8 ++++++-- .../core/gadget/types/TauntGadget.java | 8 +++++--- 4 files changed, 31 insertions(+), 13 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/BlowAKissTaunt.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/BlowAKissTaunt.java index fdc5da288..c246b2975 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/BlowAKissTaunt.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/BlowAKissTaunt.java @@ -35,10 +35,12 @@ public class BlowAKissTaunt extends TauntGadget } @Override - public void onStart(Player player) + public boolean onStart(Player player) { if (!Recharge.Instance.use(player, getName(), COOLDOWN, true, false, "Cosmetics")) - return; + { + return false; + } HashSet ignore = new HashSet<>(); ignore.add(Material.AIR); @@ -46,6 +48,8 @@ public class BlowAKissTaunt extends TauntGadget BlowAKissEffect blowAKissEffect = new BlowAKissEffect(player, loc, this); blowAKissEffect.start(); + + return true; } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java index 1e0c943b7..59d3c5484 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java @@ -29,9 +29,7 @@ import mineplex.core.common.util.UtilText; import mineplex.core.disguise.disguises.DisguiseSkeleton; import mineplex.core.events.EnableArcadeSpawnEvent; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.morph.managers.UtilMorph; import mineplex.core.gadget.types.TauntGadget; -import mineplex.core.game.GameDisplay; import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; @@ -52,18 +50,21 @@ public class EternalTaunt extends TauntGadget C.cWhite + "Use /taunt in game to show how long you've been waiting.", C.cRed + "Cannot be used while in PvP!"}, LineFormat.LORE), -15, Material.WATCH, (byte) 0); + setCanPlayWithPvp(false); setPvpCooldown(PVP_COOLDOWN); setShouldPlay(true); setEventType(UpdateType.FAST); - addDisabledGames(GameDisplay.Smash, GameDisplay.SmashTeams, GameDisplay.SmashDomination); } @Override - public void onStart(Player player) + public boolean onStart(Player player) { if (!Recharge.Instance.use(player, getName(), COOLDOWN, true, false, "Cosmetics")) - return; + { + return false; + } + UtilFirework.playFirework(player.getLocation(), FireworkEffect.builder().with(FireworkEffect.Type.BALL_LARGE).withColor(Color.fromRGB(255, 175, 175)).withFade(Color.RED).build()); _clocks.put(player.getUniqueId(), new ArrayList<>()); @@ -73,16 +74,23 @@ public class EternalTaunt extends TauntGadget if (!Manager.getDisguiseManager().isDisguised(player)) { DisguiseSkeleton disguiseSkeleton = new DisguiseSkeleton(player); - UtilMorph.disguise(player, disguiseSkeleton, Manager); + disguiseSkeleton.setName(player.getName()); + disguiseSkeleton.setCustomNameVisible(true); + disguiseSkeleton.showArmor(); + Manager.getDisguiseManager().disguise(disguiseSkeleton); _disguises.put(player.getUniqueId(), disguiseSkeleton); } + + return true; } @Override public void onPlay(Player player) { if (!_clocks.containsKey(player.getUniqueId())) + { return; + } int i = getPlayerTicks(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/RainbowTaunt.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/RainbowTaunt.java index de81b6a1b..6a49fe8c4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/RainbowTaunt.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/RainbowTaunt.java @@ -36,10 +36,12 @@ public class RainbowTaunt extends TauntGadget } @Override - public void onStart(Player player) + public boolean onStart(Player player) { if (!Recharge.Instance.use(player, getName(), COOLDOWN, true, false, "Cosmetics")) - return; + { + return false; + } Vector dir = player.getLocation().getDirection(); Vector sideA = dir.clone().setX(-dir.getZ()).setZ(dir.getX()); @@ -51,6 +53,8 @@ public class RainbowTaunt extends TauntGadget RainbowTauntEffect rainbowTauntEffect = new RainbowTauntEffect(start, Manager.getPlugin()); rainbowTauntEffect.setTargetLocation(new EffectLocation(end)); rainbowTauntEffect.start(); + + return true; } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/TauntGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/TauntGadget.java index 991a7425b..c0b11870d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/TauntGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/TauntGadget.java @@ -76,11 +76,13 @@ public abstract class TauntGadget extends Gadget public void start(Player player) { - onStart(player); - _ticksPerPlayer.put(player.getUniqueId(), 0); + if (onStart(player)) + { + _ticksPerPlayer.put(player.getUniqueId(), 0); + } } - public abstract void onStart(Player player); + public abstract boolean onStart(Player player); public void play(Player player) { From c33c8998f8c52698151cfe5dfe542750ad798068 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:33:00 -0400 Subject: [PATCH 50/56] Change Legend Aura to green --- .../gadgets/particle/ParticleLegend.java | 59 ++++++++----------- 1 file changed, 25 insertions(+), 34 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleLegend.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleLegend.java index 51911de42..8337efae4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleLegend.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleLegend.java @@ -2,7 +2,6 @@ package mineplex.core.gadget.gadgets.particle; import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilParticle; -import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -19,32 +18,27 @@ import mineplex.core.inventory.ClientItem; import mineplex.core.inventory.data.Item; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; -import org.bukkit.util.Vector; import java.awt.Color; -import java.util.Random; public class ParticleLegend extends ParticleGadget { private static final double PI = Math.PI; private static final int BASE_PILLARS = 9; - private static final int PILLAR_VARIANCE = 7; - private static final int COLOR_VARIANCE = 5; + private static final int PILLAR_VARIANCE = 8; private static final int MOVING_PARTICLES = 8; private static final double VERTICAL_SPEED = 0.1; private static final double HEIGHT_VARIANCE = 0.8; private static final double ROTATIONAL_SPEED = .03; private static final double RADIAL_VARIANCE = 0.09; - private static final double DARK_PARTICLE_CHANCE = 0.5; private static final double BASE_RADIUS = 1.30; private static final double HEIGHT_MODIFIER_BASE = 0.1; private static final double HEIGHT_MODIFIER_MAX = 1.3; - private static final double HEIGHT_MODIFIER_INTERVAL = 0.2; + private static final double HEIGHT_MODIFIER_INTERVAL = 0.15; private static final Color[] SELECTABLE_COLORS = { - new Color(170, 100, 170), - new Color(50, 10, 60), - new Color(120, 10, 170), - new Color(65, 20, 80) + new Color(60, 170, 25), + new Color(33, 92, 13), + new Color(0, 0, 0) }; private final int _pillars = pillars(); @@ -58,7 +52,7 @@ public class ParticleLegend extends ParticleGadget public ParticleLegend(GadgetManager manager) { super(manager, "Legendary Aura", - UtilText.splitLineToArray(C.cGray + "Let the energy of the End protect you.", LineFormat.LORE), + UtilText.splitLineToArray(C.cGray + "Legendary energy protects you.", LineFormat.LORE), -1, Material.ENDER_PORTAL_FRAME, (byte)0); } @@ -73,12 +67,19 @@ public class ParticleLegend extends ParticleGadget if (Manager.isMoving(player)) { - Location loc = player.getLocation().add(0, 1.5, 0); for (int i = 0; i < MOVING_PARTICLES; i++) { - UtilParticle.playColoredParticleToAll(_colors[i], UtilParticle.ParticleType.RED_DUST, - UtilMath.gauss(loc, 8, 4, 8), 0, UtilParticle.ViewDist.NORMAL); + if (_colors[i].getGreen() == 0) + { + UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.SMOKE, + UtilMath.gauss(player.getLocation(), 8, 4, 8), null, 0, 1, UtilParticle.ViewDist.NORMAL); + } + else + { + UtilParticle.playColoredParticleToAll(_colors[i], UtilParticle.ParticleType.RED_DUST, + UtilMath.gauss(player.getLocation(), 8, 4, 8), 0, UtilParticle.ViewDist.NORMAL); + } } } else @@ -96,12 +97,14 @@ public class ParticleLegend extends ParticleGadget for (double h = HEIGHT_MODIFIER_BASE; h <= HEIGHT_MODIFIER_MAX; h+= HEIGHT_MODIFIER_INTERVAL) { - UtilParticle.playColoredParticleToAll(_colors[i], UtilParticle.ParticleType.RED_DUST, - new Location(player.getWorld(), x, y + h, z), 0, UtilParticle.ViewDist.NORMAL); - - if (Math.random() < DARK_PARTICLE_CHANCE) + if (_colors[i].getGreen() == 0) { - UtilParticle.playColoredParticleToAll(Color.BLACK, UtilParticle.ParticleType.RED_DUST, + UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.SMOKE, + new Location(player.getWorld(), x, y + h, z), null, 0, 1, UtilParticle.ViewDist.NORMAL); + } + else + { + UtilParticle.playColoredParticleToAll(_colors[i], UtilParticle.ParticleType.RED_DUST, new Location(player.getWorld(), x, y + h, z), 0, UtilParticle.ViewDist.NORMAL); } } @@ -175,23 +178,11 @@ public class ParticleLegend extends ParticleGadget private Color[] colors() { - Random random = new Random(); - Color[] array = new Color[_pillars]; for (int i = 0; i < _pillars; i++) { - Color color = SELECTABLE_COLORS[i % SELECTABLE_COLORS.length]; - - int r = color.getRed() + (int) (random.nextGaussian() * COLOR_VARIANCE); - int g = color.getGreen() + (int) (random.nextGaussian() * COLOR_VARIANCE); - int b = color.getBlue() + (int) (random.nextGaussian() * COLOR_VARIANCE); - - r = Math.min(255, Math.max(0, r)); - g = Math.min(255, Math.max(0, g)); - b = Math.min(255, Math.max(0, b)); - - array[i] = new Color(r, g, b); + array[i] = SELECTABLE_COLORS[i % SELECTABLE_COLORS.length]; } return array; @@ -213,7 +204,7 @@ public class ParticleLegend extends ParticleGadget return value; } - + @EventHandler public void legendOwner(PlayerJoinEvent event) { From 732c996e94c60d2165ab410957ac6670afe46e3a Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:33:18 -0400 Subject: [PATCH 51/56] Spawn trail particles behind player model --- .../core/gadget/gadgets/particle/freedom/ParticleCanadian.java | 3 ++- .../gadget/gadgets/particle/freedom/ParticleStarSpangled.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java index c9efa6b5c..4770908b9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java @@ -48,7 +48,8 @@ public class ParticleCanadian extends ParticleGadget return; } - Location center = player.getLocation().add(0, DISTANCE_FROM_FLOOR, 0); + Location center = player.getLocation().subtract(player.getLocation().getDirection().multiply(0.4)) + .subtract(0, 0.1, 0).add(0, DISTANCE_FROM_FLOOR, 0); if (Manager.isMoving(player)) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleStarSpangled.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleStarSpangled.java index cf65cb0dd..7ad601f9a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleStarSpangled.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleStarSpangled.java @@ -47,7 +47,8 @@ public class ParticleStarSpangled extends ParticleGadget return; } - Location center = player.getLocation().add(0, DISTANCE_FROM_FLOOR, 0); + Location center = player.getLocation().subtract(player.getLocation().getDirection().multiply(0.4)) + .subtract(0, 0.1, 0).add(0, DISTANCE_FROM_FLOOR, 0); if (Manager.isMoving(player)) { From c97506fe0ef4d209facee733a05e50bc9a93d6ad Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:33:28 -0400 Subject: [PATCH 52/56] Align flowers correctly in spring leap --- .../core/gadget/gadgets/doublejump/DoubleJumpSpring.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpSpring.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpSpring.java index c4d06c230..527b44b0f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpSpring.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpSpring.java @@ -38,7 +38,7 @@ public class DoubleJumpSpring extends DoubleJumpEffectGadget { for (int i = 50; i < 60; i++) { - Item sunflower = player.getWorld().dropItem(player.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.DOUBLE_PLANT, (byte) 0, 1, " " + i)); + Item sunflower = player.getWorld().dropItem(player.getLocation().add(0.0, 0.2, 0.0), ItemStackFactory.Instance.CreateStack(Material.DOUBLE_PLANT, (byte) 0, 1, " " + i)); _items.add(sunflower); Vector vel = new Vector(Math.sin(i * 9/5d), 0, Math.cos(i * 9/5d)); From eeb8fabafece4ceff2b9403a9926176541785387 Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:33:49 -0400 Subject: [PATCH 53/56] Change niceness aura to use red and white tulips --- .../gadget/gadgets/particle/freedom/ParticleAuraNiceness.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java index 99a22fff4..2e68270e5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java @@ -108,8 +108,10 @@ public class ParticleAuraNiceness extends ParticleGadget if (_enabled) { + byte data = ThreadLocalRandom.current().nextInt(2) == 0 ? (byte) 4 : 6; + _blocks.add(b); - Manager.getBlockRestore().add(b, Material.RED_ROSE.getId(), (byte) 3, DURATION); + Manager.getBlockRestore().add(b, Material.RED_ROSE.getId(), data, DURATION); } for (int i = 0; i < PARTICLE_COUNT; ++i) From 6639d6eaed5297d0be0aa19b7c3908961fc8799e Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:36:59 -0400 Subject: [PATCH 54/56] Update disabled games for eternal taunt --- .../src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java index 59d3c5484..6e0a7e133 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java @@ -7,6 +7,7 @@ import java.util.Map; import java.util.UUID; import mineplex.core.disguise.disguises.DisguiseBase; +import mineplex.core.game.GameDisplay; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.FireworkEffect; @@ -55,6 +56,7 @@ public class EternalTaunt extends TauntGadget setPvpCooldown(PVP_COOLDOWN); setShouldPlay(true); setEventType(UpdateType.FAST); + addDisabledGames(GameDisplay.Smash, GameDisplay.SmashTeams, GameDisplay.SmashDomination, GameDisplay.SmashTraining); } @Override From 13f4211739636f35d17e7e219ce31d004931accf Mon Sep 17 00:00:00 2001 From: Graphica Date: Wed, 28 Jun 2017 18:40:24 -0400 Subject: [PATCH 55/56] Stop outfits from taking off flags --- .../src/mineplex/core/gadget/types/OutfitGadget.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java index e5ab85cb3..78471a943 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java @@ -60,7 +60,12 @@ public abstract class OutfitGadget extends Gadget public void applyArmor(Player player, boolean message) { Manager.removeGadgetType(player, GadgetType.MORPH, this); - Manager.removeGadgetType(player, GadgetType.FLAG, this); + + if (_slot == ArmorSlot.HELMET) + { + Manager.removeGadgetType(player, GadgetType.FLAG, this); + } + Manager.removeOutfit(player, _slot); _active.add(player); From dfe2a61b8f09d84e8ce23c899b6716d3c1358704 Mon Sep 17 00:00:00 2001 From: cnr Date: Wed, 28 Jun 2017 23:43:30 -0700 Subject: [PATCH 56/56] Revert freedom chest cosmetics --- .../mineplex/core/common/util/UtilMath.java | 118 ----------- .../core/common/shape/ShapeWings.java | 35 +--- .../mineplex/core/common/skin/SkinData.java | 2 - .../core/common/util/UtilParticle.java | 18 -- .../core/common/util/banner/CountryFlag.java | 57 +---- .../core/cosmetic/CosmeticManager.java | 25 +-- .../cosmetic/ui/button/open/OpenFlags.java | 25 --- .../core/cosmetic/ui/page/ArrowTrailPage.java | 10 +- .../core/cosmetic/ui/page/BalloonsPage.java | 6 +- .../core/cosmetic/ui/page/CostumePage.java | 3 + .../cosmetic/ui/page/DeathEffectPage.java | 10 +- .../core/cosmetic/ui/page/DoubleJumpPage.java | 12 +- .../core/cosmetic/ui/page/FlagPage.java | 58 ------ .../core/cosmetic/ui/page/GadgetPage.java | 34 ++- .../core/cosmetic/ui/page/HatPage.java | 12 +- .../cosmetic/ui/page/KitSelectorPage.java | 6 +- .../mineplex/core/cosmetic/ui/page/Menu.java | 83 +++----- .../core/cosmetic/ui/page/MorphPage.java | 12 +- .../core/cosmetic/ui/page/MountPage.java | 4 +- .../core/cosmetic/ui/page/MusicPage.java | 7 +- .../core/cosmetic/ui/page/ParticlePage.java | 12 +- .../core/cosmetic/ui/page/PetPage.java | 13 +- .../core/cosmetic/ui/page/TauntPage.java | 12 +- .../core/cosmetic/ui/page/WinEffectPage.java | 12 +- .../page/custompet/name/CustomPetTagPage.java | 6 - .../mineplex/core/gadget/GadgetManager.java | 190 +++++++---------- .../gadget/commands/LockInfusedCommand.java | 14 +- .../commands/UnlockCosmeticsCommand.java | 27 +-- .../arrowtrail/ArrowTrailRedWhite.java | 77 ------- .../{ => candycane}/ArrowTrailCandyCane.java | 2 +- .../{ => cupidslove}/ArrowTrailCupid.java | 2 +- .../{ => emerald}/ArrowTrailEmerald.java | 2 +- .../{ => freedom}/ArrowTrailFreedom.java | 2 +- .../{ => frostlord}/ArrowTrailFrostLord.java | 2 +- .../{ => halloween}/ArrowTrailHalloween.java | 2 +- .../{ => howlingwinds}/ArrowTrailStorm.java | 2 +- .../{ => music}/ArrowTrailMusic.java | 2 +- .../{ => party}/ArrowTrailConfetti.java | 2 +- .../{ => shadow}/ArrowTrailShadow.java | 2 +- .../{ => spring}/ArrowTrailSpring.java | 2 +- .../{ => titan}/ArrowTrailTitan.java | 2 +- .../{ => vampire}/ArrowTrailBlood.java | 2 +- .../{ => wisdom}/ArrowTrailEnchant.java | 2 +- .../gadget/gadgets/death/DeathMapleLeaf.java | 45 ---- .../death/{ => candycane}/DeathCandyCane.java | 2 +- .../{ => christmas}/DeathPresentDanger.java | 2 +- .../DeathCupidsBrokenHeart.java | 2 +- .../death/{ => emerald}/DeathEmerald.java | 2 +- .../death/{ => freedom}/DeathFreedom.java | 2 +- .../death/{ => frostlord}/DeathFrostLord.java | 2 +- .../death/{ => howlingwinds}/DeathStorm.java | 2 +- .../gadgets/death/{ => music}/DeathMusic.java | 2 +- .../death/{ => party}/DeathPinataBurst.java | 2 +- .../death/{ => shadow}/DeathShadow.java | 2 +- .../death/{ => spring}/DeathSpring.java | 2 +- .../gadgets/death/{ => titan}/DeathTitan.java | 2 +- .../death/{ => vampire}/DeathBlood.java | 2 +- .../death/{ => wisdom}/DeathEnchant.java | 2 +- .../gadgets/doublejump/DoubleJumpMaple.java | 110 ---------- .../{ => candycane}/DoubleJumpCandyCane.java | 4 +- .../DoubleJumpCupidsWings.java | 2 +- .../{ => emerald}/DoubleJumpEmerald.java | 2 +- .../{ => freedom}/DoubleJumpFreedom.java | 4 +- .../{ => frostlord}/DoubleJumpFrostLord.java | 2 +- .../{ => halloween}/DoubleJumpHalloween.java | 2 +- .../{ => howlingwinds}/DoubleJumpStorm.java | 2 +- .../{ => music}/DoubleJumpMusic.java | 2 +- .../{ => party}/DoubleJumpFirecracker.java | 2 +- .../{ => shadow}/DoubleJumpShadow.java | 2 +- .../{ => spring}/DoubleJumpSpring.java | 4 +- .../{ => titan}/DoubleJumpTitan.java | 2 +- .../{ => vampire}/DoubleJumpBlood.java | 2 +- .../{ => wisdom}/DoubleJumpEnchant.java | 2 +- .../core/gadget/gadgets/flag/FlagType.java | 33 --- .../core/gadget/gadgets/hat/HatType.java | 6 +- .../gadgets/particle/ParticleCoalFumes.java | 5 +- .../gadgets/particle/ParticleLegend.java | 177 +--------------- .../{ => candycane}/ParticleCandyCane.java | 4 +- .../{ => cupidslove}/ParticleHeart.java | 7 +- .../{ => emerald}/ParticleEmerald.java | 2 +- .../freedom/ParticleAuraNiceness.java | 194 ------------------ .../particle/freedom/ParticleCanadian.java | 71 ------- .../freedom/ParticleFreedomFireworks.java | 59 ------ .../freedom/ParticleStarSpangled.java | 81 -------- .../{ => frostlord}/ParticleFrostLord.java | 2 +- .../{ => howlingwinds}/ParticleRain.java | 2 +- .../particle/{ => music}/ParticleMusic.java | 2 +- .../{ => party}/ParticlePartyTime.java | 2 +- .../particle/{ => shadow}/ParticleFoot.java | 2 +- .../particle/{ => titan}/ParticleTitan.java | 2 +- .../particle/{ => vampire}/ParticleBlood.java | 2 +- .../{ => wisdom}/ParticleEnchant.java | 2 +- .../gadget/gadgets/taunts/BlowAKissTaunt.java | 8 +- .../gadget/gadgets/taunts/EternalTaunt.java | 38 +--- .../gadget/gadgets/taunts/RainbowTaunt.java | 8 +- .../mineplex/core/gadget/set/SetCanadian.java | 22 -- .../core/gadget/set/SetCandyCane.java | 8 +- .../core/gadget/set/SetCupidsLove.java | 8 +- .../mineplex/core/gadget/set/SetEmerald.java | 8 +- .../mineplex/core/gadget/set/SetFreedom.java | 10 +- .../core/gadget/set/SetFrostLord.java | 8 +- .../core/gadget/set/SetHowlingWinds.java | 8 +- .../mineplex/core/gadget/set/SetMusic.java | 8 +- .../mineplex/core/gadget/set/SetParty.java | 8 +- .../mineplex/core/gadget/set/SetShadow.java | 8 +- .../mineplex/core/gadget/set/SetSpring.java | 6 +- .../mineplex/core/gadget/set/SetTitan.java | 8 +- .../mineplex/core/gadget/set/SetVampire.java | 8 +- .../mineplex/core/gadget/set/SetWisdom.java | 8 +- .../core/gadget/types/FlagGadget.java | 90 -------- .../core/gadget/types/GadgetType.java | 3 +- .../mineplex/core/gadget/types/HatGadget.java | 2 +- .../core/gadget/types/MorphGadget.java | 3 +- .../core/gadget/types/OutfitGadget.java | 7 +- .../core/gadget/types/TauntGadget.java | 8 +- .../core/mount/types/MountTitanData.java | 4 +- .../src/mineplex/core/reward/Reward.java | 3 + .../src/mineplex/core/reward/RewardData.java | 3 + .../mineplex/core/reward/RewardManager.java | 132 +++++------- .../mineplex/core/reward/RewardRarity.java | 3 + .../treasure/event/TreasureFinishEvent.java | 2 +- .../treasure/event/TreasurePreStartEvent.java | 2 +- .../treasure/event/TreasureStartEvent.java | 3 - .../core/treasure/gui/TreasurePage.java | 66 ++---- .../src/mineplex/clanshub/HubManager.java | 2 +- .../src/mineplex/hub/HubManager.java | 2 +- .../src/nautilus/game/arcade/Arcade.java | 2 +- .../src/mineplex/mavericks/review/Hub.java | 2 +- .../src/mineplex/gemhunters/GemHunters.java | 2 +- 129 files changed, 416 insertions(+), 1905 deletions(-) delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/open/OpenFlags.java delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/FlagPage.java delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailRedWhite.java rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => candycane}/ArrowTrailCandyCane.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => cupidslove}/ArrowTrailCupid.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => emerald}/ArrowTrailEmerald.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => freedom}/ArrowTrailFreedom.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => frostlord}/ArrowTrailFrostLord.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => halloween}/ArrowTrailHalloween.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => howlingwinds}/ArrowTrailStorm.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => music}/ArrowTrailMusic.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => party}/ArrowTrailConfetti.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => shadow}/ArrowTrailShadow.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => spring}/ArrowTrailSpring.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => titan}/ArrowTrailTitan.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => vampire}/ArrowTrailBlood.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/{ => wisdom}/ArrowTrailEnchant.java (97%) delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => candycane}/DeathCandyCane.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => christmas}/DeathPresentDanger.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => cupidslove}/DeathCupidsBrokenHeart.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => emerald}/DeathEmerald.java (93%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => freedom}/DeathFreedom.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => frostlord}/DeathFrostLord.java (93%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => howlingwinds}/DeathStorm.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => music}/DeathMusic.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => party}/DeathPinataBurst.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => shadow}/DeathShadow.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => spring}/DeathSpring.java (98%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => titan}/DeathTitan.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => vampire}/DeathBlood.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/{ => wisdom}/DeathEnchant.java (97%) delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMaple.java rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => candycane}/DoubleJumpCandyCane.java (91%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => cupidslove}/DoubleJumpCupidsWings.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => emerald}/DoubleJumpEmerald.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => freedom}/DoubleJumpFreedom.java (92%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => frostlord}/DoubleJumpFrostLord.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => halloween}/DoubleJumpHalloween.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => howlingwinds}/DoubleJumpStorm.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => music}/DoubleJumpMusic.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => party}/DoubleJumpFirecracker.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => shadow}/DoubleJumpShadow.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => spring}/DoubleJumpSpring.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => titan}/DoubleJumpTitan.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => vampire}/DoubleJumpBlood.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/{ => wisdom}/DoubleJumpEnchant.java (97%) delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/flag/FlagType.java rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => candycane}/ParticleCandyCane.java (93%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => cupidslove}/ParticleHeart.java (84%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => emerald}/ParticleEmerald.java (96%) delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedomFireworks.java delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleStarSpangled.java rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => frostlord}/ParticleFrostLord.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => howlingwinds}/ParticleRain.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => music}/ParticleMusic.java (98%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => party}/ParticlePartyTime.java (98%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => shadow}/ParticleFoot.java (98%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => titan}/ParticleTitan.java (98%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => vampire}/ParticleBlood.java (97%) rename Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/{ => wisdom}/ParticleEnchant.java (96%) delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCanadian.java delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/types/FlagGadget.java diff --git a/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilMath.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilMath.java index 1b3b40835..5e37e0ac5 100644 --- a/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilMath.java +++ b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/util/UtilMath.java @@ -6,7 +6,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Random; -import java.util.concurrent.ThreadLocalRandom; import org.bukkit.Location; import org.bukkit.entity.Entity; @@ -14,8 +13,6 @@ import org.bukkit.util.Vector; public class UtilMath { - public static final double TAU = Math.PI * 2D; - public static double trim(int degree, double d) { String format = "#.#"; @@ -335,119 +332,4 @@ public class UtilMath return min; } - - /** - * Creates an array of points, arranged in a circle normal to a vector. - * - * @param center The center of the circle. - * @param normal A vector normal to the circle. - * @param radius The radius of the circle. - * @param points How many points to make up the circle. - * - * @return An array of points of the form double[point #][x=0, y=1, z=3]. - */ - public static double[][] normalCircle(Location center, Vector normal, double radius, int points) - { - return normalCircle(center.toVector(), normal, radius, points); - } - - /** - * Creates an array of points, arranged in a circle normal to a vector. - * - * @param center The center of the circle. - * @param normal A vector normal to the circle. - * @param radius The radius of the circle. - * @param points How many points to make up the circle. - * - * @return An array of points of the form double[point #][x=0, y=1, z=3]. - */ - public static double[][] normalCircle(Vector center, Vector normal, double radius, int points) - { - Vector n = normal.clone().normalize(); - Vector a = n.clone().add(new Vector(1, 1, 1)).crossProduct(n).normalize(); - Vector b = n.getCrossProduct(a).normalize(); - - double[][] data = new double[points][3]; - - double interval = TAU / points; - double theta = 0; - - for (int i = 0; i < points; i++) - { - data[i][0] = center.getX() + (radius * ((Math.cos(theta) * a.getX()) + (Math.sin(theta) * b.getX()))); - data[i][1] = center.getY() + (radius * ((Math.cos(theta) * a.getY()) + (Math.sin(theta) * b.getY()))); - data[i][2] = center.getZ() + (radius * ((Math.cos(theta) * a.getZ()) + (Math.sin(theta) * b.getZ()))); - theta += interval; - } - - return data; - } - - /** - * Slightly randomize a location with a standard deviation of one. - * - * @param location The location to randomize. - * - * @return The original location, now gaussian-randomized. - */ - public static Location gauss(Location location) - { - return gauss(location, 1, 1, 1); - } - - /** - * Slightly randomize a vector with a standard deviation of one. - * - * @param vector The location to randomize. - * - * @return The randomized vector, now gaussian-randomized. - */ - public static Vector gauss(Vector vector) - { - return gauss(vector, 1, 1, 1); - } - - /** - * Slightly randomize a location with a standard deviation of one.
- * - * This method only accepts positive values for all of its arguments.
- * - * A good parameter set for small offsets is (loc, 10, 10, 10). - * - * @param location The location to randomize. - * @param x A granularity control for the x-axis, higher numbers = less randomness - * @param y A granularity control for the y-axis, higher numbers = less randomness - * @param z A granularity control for the z-axis, higher numbers = less randomness - * - * @return The original location, now gaussian-randomized - */ - public static Location gauss(Location location, double x, double y, double z) - { - return location.clone().add( - x <= 0 ? 0 : (ThreadLocalRandom.current().nextGaussian() / x), - y <= 0 ? 0 : (ThreadLocalRandom.current().nextGaussian() / y), - z <= 0 ? 0 : (ThreadLocalRandom.current().nextGaussian() / z)); - } - - /** - * Slightly randomize a vector with a standard deviation of one.
- * - * This method only accepts positive values for all of its arguments.
- * - * A good parameter set for small offsets is (loc, 10, 10, 10). - * - * @param vector The location to randomize. - * @param x A granularity control for the x-axis, higher numbers = less randomness - * @param y A granularity control for the y-axis, higher numbers = less randomness - * @param z A granularity control for the z-axis, higher numbers = less randomness - * - * @return The randomized vector, now gaussian-randomized - */ - public static Vector gauss(Vector vector, double x, double y, double z) - { - return vector.clone().add(new Vector( - x <= 0 ? 0 : (ThreadLocalRandom.current().nextGaussian() / x), - y <= 0 ? 0 : (ThreadLocalRandom.current().nextGaussian() / y), - z <= 0 ? 0 : (ThreadLocalRandom.current().nextGaussian() / z))); - } } diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/shape/ShapeWings.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/shape/ShapeWings.java index 4026dad3f..3c9a78a56 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/shape/ShapeWings.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/shape/ShapeWings.java @@ -166,40 +166,7 @@ public class ShapeWings extends ShapeGrid implements CosmeticShape "0$#######$0", "$#########$" }; - - public static final String[] MAPLE_LEAF = new String[] - { - "000000000000000000000000000$000000000000000000000000000", - "00000000000000000000000000$$$00000000000000000000000000", - "0000000000000000000000000$$#$$0000000000000000000000000", - "000000000000000000000000$$###$$000000000000000000000000", - "00000000000000000000000$$#####$$00000000000000000000000", - "0000000000000000$$$000$$#######$$000$$$0000000000000000", - "0000000000000000$#$$$$$#########$$$$$#$0000000000000000", - "0000000000000000$$###################$$0000000000000000", - "00000000000000000$###################$00000000000000000", - "00000000000$$0000$$#################$$0000$$00000000000", - "0$$$000000$$$$$000$#################$000$$$$$000000$$$0", - "00$$$$$$$$$###$$$0$$###############$$0$$$###$$$$$$$$$00", - "00$$############$$$$###############$$$$############$$00", - "000$$#############$$###############$$#############$$000", - "0000$$###########################################$$0000", - "00$$$#############################################$$$00", - "$$$#################################################$$$", - "00$$$$###########################################$$$$00", - "00000$$$#######################################$$$00000", - "00000000$$$$###############################$$$$00000000", - "00000000000$$$###########################$$$00000000000", - "0000000000000$$#########################$$0000000000000", - "0000000000000$$#########################$$0000000000000", - "0000000000000$##$$$$$$$$$$$#$$$$$$$$$$$##$0000000000000", - "000000000000$$$$$000000000$#$000000000$$$$$000000000000", - "00000000000000000000000000$#$00000000000000000000000000", - "00000000000000000000000000$#$00000000000000000000000000", - "00000000000000000000000000$#$00000000000000000000000000", - "00000000000000000000000000$#$00000000000000000000000000", - "00000000000000000000000000$$$00000000000000000000000000" - }; + /** * Default rotation to give the wings a little tilt when displayed on players for instance diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/skin/SkinData.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/skin/SkinData.java index 6b7b7a675..f803154ce 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/skin/SkinData.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/skin/SkinData.java @@ -78,8 +78,6 @@ public class SkinData public static final SkinData LARISSA = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0NjE0MTUxMzQsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9jYThjNDRhOWVmZTY3NzExMDYzMjM5ODEwNDRmOTdjYmM1OWJmZmRlOGI1ODdlMGQzMWE4N2ViMDhhMmExZiJ9fX0=", "Lyac51CrnMK/CI2dWgGQLowAm/ZnQMpf0Ict/gqVrUgJVlGWDIVG77Rd1JyMQDEeESvTmoyivH+usiO0ePW95qjisqT3R43YEmLi85CqctGYqLKeSYpGYwYRz8Euw57LwJAALKOMLhVc2s4h2Or9nTecunG8KSmkCuZc4H1qh3frU+ltuV4HLqgdFUULbIHTggyvqiINov2tBqkkXeEjT7sOcTJCJNgNYU2O7//qg5kJmhso2CKHlRLpmy9LsaUK/Z+BzUmoRbwQgSwr3mz7dFAdlVWWKvKNcgX3nt1et0DIig3JKYmrnQX2Fprg+kWcr3nuizzLgjVwAlADC48P3DN0s/VBty2AYoWie16VNPIM+CV4BF2JRQ34GxZ8XceXbCKURrOjoCBgLGHvIhRW35eicoh26xp3/mwLvk5anPi5StJ/qEuzWJALeWcNbLsnt21m2MZp9h/MxaY6ftWOTzjTr5CYVd/teJyscMnGK4+lcV1dlt12lhbDMv6I+iz8iG9NIzuW5OvGkax90dA/Gq+Cd9FXVThPY4ufxWttHcTqgPB64GfMn6rywRm1B0eO1pJpYc/KlJZlW/PuaO8L1assyJs5KkOypBSy3zc6TO6pzgeOZv+VpQfA/UWpogv6ofmTpgdtwpjLFGSzIKTDXvF6FftALKVlYypG0fYbssA="); public static final SkinData ROWENA = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0Njk1MTcxOTgsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9jNDY1OGExODY4YzNhNjhhZWVhZmZkOTUxZDQyYmZkN2QxYTRjNGZjNDJjZDI2YTlmYzhkNTNmOTkxMTM1ZCJ9fX0=", "OqXMyH9SMmQ/Pwmb21In29YnCxbsN6yqUxfudN6KNgDwRUK6y072XhW6TIoTh9JQLAUKftpeVB53tk0LxHIxnsuBMrIHvETPDQFysIc/6xq3ABogs+zqFzcp5jk6S73HiD78JxLq5pzfUzhgDPMPuZP5Q/u2q1rYbe6B9lVEJ5sUcxBLUTossgucoR4qXYAlWVQdHRhq85Ol8a+OU7ruw3HackNGto6wt6u2MigCtiHVTt9XhJ/AJE4ScodQ3XwW4L6urpl/lV2OMCsr3mCjjjEz2EMhDbCWxrAorQ9aPpMbDkHBS+4TC1tbMGUlKhj5n+EZBYVaeLr4NGPACPSdT35p/2Zra49+DXn9Xn+681yNEB0ghTdsnsgwXg76+HVPHPqRHQMuTBQGQyGZaaTX/zE0tFjH+osMElLdb8dmz3dC7kQA4A13B2phj3YbMSF1FoU4GvnPKIQn6JIuEd6hd+pRLUW7Y+mgYIHHX1FT0ihrXAyVO6lQQ6rs92gSQr7sxC7tnhPSMFcmh7OcJYcbRpn97GMubthPLanOhVy7CKqjmwIkEVtYgP28idigKwNJ+sJuUONrOu7nMKl1UTD5EEapOacc/np6UhdSw8yW+LnWD/x9ueYz9ksnyRrJgcOa41izo/WCbjPK/j3JVezr9Q3x1yveWuFmdl7CGYdXngw="); public static final SkinData BIFF = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0NjEzMDQzNjYsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9mOWMyMTE3ZDY0ZWE0ZmUxMWZiY2NhZmE2YzU5YzhlZjY3NDVkZjVkMTZjM2QwMmI4NmI2OTlmZWJjNTA0OGI1In19fQ==", "mJMpEvQ4A02z0S/chgLm5bKrrrd+zmp7A0012AB7b3KlyIHoLKEDDz+ZJgJtvN6skOqed3P+yNVqkxitugXaZZP8Af9J+/TseHn+vOy6CTK5tykRSY3Zb8Zmw1kn36v/SARAVtDIHD53yuPgJayYSAbVB7aknj1Q8XBQGUmZRMRxWWxeD7rQTOwgRYI4YJeKFf4UL9i6zxvOJuHsOAouJ7scu7VohG8vgR77Js/Z8rSu8/aSG+O9AQdzP6h9ixYNFkkQOHm7DseK/5tsWKHM4FYBgjIDKt3ApQokSbhThzGB55BA1qjXZkfCoOb13y1nOMC8WoIL6Ees1qzxG3VloGx2WAZLh+Q+/irwrFDMxk1zeU5fIRuj1c/UIM2HKdxxWgoRdrZ8ww/Jrll6maiOBx7geMn/0aOUbJ2U7gkTif6RG6YNS5YN9ZQDLh72l/akJMxF3SlmuAPmLs2kBghQ6eD2YQKuxWR/Hf1yS1YXtogFVNsGnzC1nda7F48EGL3zI+kCajbDlAGQ32aRt0btbEQ+Gj575kir3Aa53qiZ0YOIYQlhgZdOsTN2NE2s8uuy/15Rgc6K3ydgEmSZfdqyMyW0Dy7pE5TfVL8DumKRVRXdOceT5WfnW7MyqSmdorP5ab1fw2wLOnAVzhJmW8oXXNSs77WJ1/PURclxOWB4IF8="); - public static final SkinData CANADA_HAT = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTg2MDE5MDYwNzYsInByb2ZpbGVJZCI6IjdkYTJhYjNhOTNjYTQ4ZWU4MzA0OGFmYzNiODBlNjhlIiwicHJvZmlsZU5hbWUiOiJHb2xkYXBmZWwiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2M2MTExNTNmODdmMjZjMzRmOTdkODIxM2ZmOTk1ZGJlNjcyZWJkNGM0NjRkNGFkNzM5MWFlNDNjMWU3YTllIn19fQ", "QMw6e1FXl/Xrt+BbfPKsz3OHyOxL9CEPffS9grxRLD6gbLbMD84OT3+bge5V9lBFn9PPnTyID+WTF24qHj4ADTTgK94ykNedCEO6R1wS0FZKPI1UjwOxMhIG5ZeVr7+HxITgGU4Xz94IigBkvW//f2ZGelMvS0GLCrm4iCovEBMUzyYJ2dZ4xgzFSH6v+9efK4/SBAJaj8mHjXpDxU58/vskTGI3T9t5sWlZLXgId9vHcMj0GH3Un6yvUXiMkh38V/rAEM8/R8q08xUVyW0e2R38qWQV2+eKvsG8GmJmgkU/78wA9cKGZdrEz0pnr80eGNCbvXqQvC/czYhEhDapgxfndcHLX8q/Zk3I8msNr340E4ZrQL61Yl7KcVC1qEUQVu3cosq5A6ckXLGvv//HSwXVO8M9ThUbuEC8QjiS/fMFufnVa18lHrVulnfb/2KQ4yPsoCHK/zvGtRkWtD1sLOIfehN+sxCLiaz80ILBiwN0oHITfNHpJzoa4kF/OrxxCualp4Sv5o5TXBv7aWsO18v9ixb9o9CmJKKE8MUl5xmRVz4HQD4dyOfcwtPuxmfcYjJrxqBijdQMrcgLzqqMs+DUqcZZlxM7M5GaNUoEvL9tJNGpZaB2OrBw0DTk5wx15XfANCH4egx8X4+Iy2RUoFthHX3BsVazG7fjSiDnUtI="); - public static final SkinData AMERICA_HAT = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTg2MDI3MjMyODgsInByb2ZpbGVJZCI6IjNlMjZiMDk3MWFjZDRjNmQ5MzVjNmFkYjE1YjYyMDNhIiwicHJvZmlsZU5hbWUiOiJOYWhlbGUiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzYzMjI0MDhkYzBiZjMxNjU4N2RiNDJiN2Q5ZmViZTUwYWQ4MGY0OGU4Njc5YzI0NTFkOTk3MTdjZmVjNTdkYWQifX19","oRo6DIuhOTaXDkFsgwJ488LWqx5d1QpwtglwG1SdEvkbX1aCMGdZyDm9YIopQRjfBg0uYKQFetOZ1ZkdMmc/aKC5/dm0+Ema7g8AUzjwf4OaSLH1r4C1UJ4ruaNG5diBxNTkYnMa7yT8zvyEr22CA7lUOIgTh8ymBfSGK35RPhsn8jM0hDjdhjemBAlxKpiioByfmAQbwokNBOrXfh/PnKq+iJYg4WpMSZ1zo5Rr0CzLXwu+/T3dvrb6mg7qry7J3Lj5/qn6iIdBcjJBeyvy1sCo45jQ3Rzc6oL/84Vu5Dpn395EqUK8Sa7mdpVpATTcj56TCjkNNtDapXNqyO/IIQuzU4wnBKNQmZefaxRl6LV0DhZ8n8YQaPj6hH/mr2oDsd23+jejjqu6Y95ReTyukp06mIGqgekmrdZV2etML2oMAOTv9ieVvqtfo5gEomYs+NFAL7rMmzjAlhd17VOgqNRMpmJazAHWOYKl8KdOH99wGDe5XcyKHysh+qyHKMvhPJztIeAEaosynF/aGHghH2PM354KCuUVNmdR5G7UZUoG9ZA5ZU3EzZ854jeqxcqw3jzb6qL7A83QNuFqOsb87ugL/jO3QEDdQ9drdf3WAQauQGkU3nYBrls5wxoMrQ+Ceth+FtZw9a1v7dc+DEWOeJKCtOAIskb29pv6OcRe0Wk="); // Comments this out for now, so it doesn't load the player profile // A better way to do this would check for the properties when getting the skull or the skin diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilParticle.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilParticle.java index cc58f5d0d..a87bb2565 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilParticle.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilParticle.java @@ -418,22 +418,4 @@ public class UtilParticle PlayParticleToAll(particleType, location, color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1f, count, dist); } - public static void playColoredParticle(java.awt.Color color, ParticleType particleType, Location location, int count, ViewDist dist, Player... players) - { - if (particleType != ParticleType.RED_DUST - && particleType != ParticleType.MOB_SPELL_AMBIENT) - return; - PlayParticle(particleType, location, color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1f, count, dist, players); - } - - public static void playColoredParticleToAll(java.awt.Color color, ParticleType particleType, Location location, int count, ViewDist dist) - { - if (particleType != ParticleType.RED_DUST && particleType != ParticleType.MOB_SPELL_AMBIENT) - { - return; - } - - PlayParticleToAll(particleType, location, color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1f, count, dist); - } - } \ No newline at end of file diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/banner/CountryFlag.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/banner/CountryFlag.java index 54626d736..d4e48144f 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/banner/CountryFlag.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/banner/CountryFlag.java @@ -1,30 +1,17 @@ package mineplex.core.common.util.banner; import org.bukkit.DyeColor; -import org.bukkit.Material; import org.bukkit.block.banner.Pattern; import org.bukkit.block.banner.PatternType; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.BannerMeta; - -import static org.bukkit.DyeColor.*; -import static org.bukkit.block.banner.PatternType.*; public enum CountryFlag { - // Vetted - MINEPLEX("Mineplex", "Mineplexian", BLACK, new Pattern(ORANGE, TRIANGLE_TOP), new Pattern(BLACK, TRIANGLES_TOP), - new Pattern(ORANGE, STRIPE_LEFT), new Pattern(ORANGE, STRIPE_RIGHT), new Pattern(BLACK, BORDER), - new Pattern(BLACK, STRIPE_BOTTOM)), - USA("The United States of America", "American", RED, new Pattern(WHITE, STRIPE_SMALL), new Pattern(BLUE, SQUARE_TOP_RIGHT), - new Pattern(BLUE, SQUARE_TOP_RIGHT), new Pattern(BLUE, SQUARE_TOP_RIGHT)), - - CANADA("Canada", "Canadian", WHITE, new Pattern(RED, CROSS), new Pattern(WHITE, STRIPE_LEFT), new Pattern(RED, STRIPE_MIDDLE), - new Pattern(WHITE, BORDER), new Pattern(RED, STRIPE_TOP), new Pattern(RED, STRIPE_BOTTOM)), - - // Not Vetted BRAZIL(DyeColor.GREEN, new Pattern(DyeColor.YELLOW, PatternType.RHOMBUS_MIDDLE), new Pattern(DyeColor.BLUE, PatternType.CIRCLE_MIDDLE)), + USA(DyeColor.RED, new Pattern(DyeColor.WHITE, PatternType.STRIPE_SMALL), new Pattern(DyeColor.BLUE, PatternType.SQUARE_TOP_RIGHT)), + CANADA(DyeColor.WHITE, new Pattern(DyeColor.RED, PatternType.STRIPE_TOP), new Pattern(DyeColor.RED, PatternType.STRIPE_BOTTOM), + new Pattern(DyeColor.RED, PatternType.CIRCLE_MIDDLE)), UK(DyeColor.BLUE, new Pattern(DyeColor.WHITE, PatternType.STRIPE_DOWNLEFT), new Pattern(DyeColor.WHITE, PatternType.STRIPE_DOWNRIGHT), new Pattern(DyeColor.RED, PatternType.STRAIGHT_CROSS), new Pattern(DyeColor.RED, PatternType.CROSS)), IRELAND(DyeColor.WHITE, new Pattern(DyeColor.LIME, PatternType.STRIPE_TOP), new Pattern(DyeColor.ORANGE, PatternType.STRIPE_BOTTOM)), @@ -67,47 +54,17 @@ public enum CountryFlag new Pattern(DyeColor.GREEN, PatternType.STRIPE_CENTER), new Pattern(DyeColor.BLACK, PatternType.TRIANGLE_BOTTOM)), POLAND(DyeColor.RED, new Pattern(DyeColor.WHITE, PatternType.HALF_VERTICAL_MIRROR)); - private final String _country; - private final String _adjective; - private final DyeColor _baseColor; - private final Pattern[] _patterns; + private DyeColor _baseColor; + private Pattern[] _patterns; - CountryFlag(String country, String adjective, DyeColor baseColor, Pattern... patterns) - { - _country = country; - _adjective = adjective; + CountryFlag(DyeColor baseColor, Pattern... patterns){ _baseColor = baseColor; _patterns = patterns; } - CountryFlag(DyeColor baseColor, Pattern... patterns) - { - this("", "", baseColor, patterns); - } - public ItemStack getBanner() { - ItemStack banner = new ItemStack(Material.BANNER); - BannerMeta bannerMeta = (BannerMeta) banner.getItemMeta(); - bannerMeta.setBaseColor(_baseColor); - - for (Pattern pattern : _patterns) - { - bannerMeta.addPattern(pattern); - } - - banner.setItemMeta(bannerMeta); - return banner; - } - - public String getCountryName() - { - return _country; - } - - public String getCountryAdjective() - { - return _adjective; + return UtilBanner.createBanner(_baseColor, _patterns); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/CosmeticManager.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/CosmeticManager.java index 7cb686de7..d1ae7b491 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/CosmeticManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/CosmeticManager.java @@ -1,6 +1,5 @@ package mineplex.core.cosmetic; -import mineplex.core.punish.Punish; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -42,23 +41,19 @@ import mineplex.core.twofactor.TwoFactorAuth; public class CosmeticManager extends MiniPlugin { private final TwoFactorAuth _twofactor = Managers.require(TwoFactorAuth.class); - private final InventoryManager _inventoryManager; - private final GadgetManager _gadgetManager; - private final MountManager _mountManager; - private final PetManager _petManager; - private final TreasureManager _treasureManager; - private final BoosterManager _boosterManager; - private final Punish _punish; + private InventoryManager _inventoryManager; + private GadgetManager _gadgetManager; + private MountManager _mountManager; + private PetManager _petManager; + private TreasureManager _treasureManager; + private BoosterManager _boosterManager; private CosmeticShop _shop; private boolean _showInterface = true; private int _interfaceSlot = 4; - public CosmeticManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, - InventoryManager inventoryManager, GadgetManager gadgetManager, MountManager mountManager, - PetManager petManager, TreasureManager treasureManager, BoosterManager boosterManager, - Punish punish) + public CosmeticManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, InventoryManager inventoryManager, GadgetManager gadgetManager, MountManager mountManager, PetManager petManager, TreasureManager treasureManager, BoosterManager boosterManager) { super("Cosmetic Manager", plugin); @@ -68,7 +63,6 @@ public class CosmeticManager extends MiniPlugin _petManager = petManager; _treasureManager = treasureManager; _boosterManager = boosterManager; - _punish = punish; _shop = new CosmeticShop(this, clientManager, donationManager, _moduleName); } @@ -248,11 +242,6 @@ public class CosmeticManager extends MiniPlugin { return _boosterManager; } - - public Punish getPunishManager() - { - return _punish; - } public void displayUI(Player player) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/open/OpenFlags.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/open/OpenFlags.java deleted file mode 100644 index 987d549ac..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/open/OpenFlags.java +++ /dev/null @@ -1,25 +0,0 @@ -package mineplex.core.cosmetic.ui.button.open; - -import mineplex.core.cosmetic.ui.page.FlagPage; -import mineplex.core.cosmetic.ui.page.HatPage; -import mineplex.core.cosmetic.ui.page.Menu; -import mineplex.core.gadget.types.Gadget; -import org.bukkit.entity.Player; - -/** - * @author J Teissler - * @date 6/26/17 - */ -public class OpenFlags extends OpenPageButton -{ - public OpenFlags(Menu menu, Gadget active) - { - super(menu, active); - } - - @Override - protected void leftClick(Player player) - { - getMenu().getShop().openPageForPlayer(player, new FlagPage(getMenu().getPlugin(), getMenu().getShop(), getMenu().getClientManager(), getMenu().getDonationManager(), "Flags", player)); - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ArrowTrailPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ArrowTrailPage.java index e4d1333f9..80db4bcd6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ArrowTrailPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ArrowTrailPage.java @@ -33,16 +33,12 @@ public class ArrowTrailPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.ARROW_TRAIL) == gadget) - { - addGlow(slot); - } + addGlow(slot); slot++; - if (slot % 9 == 8) - { - slot += 2; - } + if (slot == 17) + slot += 2; } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/BalloonsPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/BalloonsPage.java index 3208e5a05..fd0b3cf08 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/BalloonsPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/BalloonsPage.java @@ -32,16 +32,12 @@ public class BalloonsPage extends GadgetPage addGadget(gadget, slot); if (gadget.isActive(getPlayer())) - { addGlow(slot); - } slot++; - if (slot % 9 == 8) - { + if (slot == 17 || slot == 26) slot += 2; - } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/CostumePage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/CostumePage.java index c1a606358..73af59a89 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/CostumePage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/CostumePage.java @@ -22,6 +22,9 @@ import mineplex.core.gadget.types.OutfitGadget; import mineplex.core.shop.item.IButton; import mineplex.core.shop.item.ShopItem; +/** + * Created by shaun on 14-09-15. + */ public class CostumePage extends GadgetPage { public CostumePage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name, Player player) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DeathEffectPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DeathEffectPage.java index a54b7f840..07dbee136 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DeathEffectPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DeathEffectPage.java @@ -33,16 +33,12 @@ public class DeathEffectPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.DEATH) == gadget) - { - addGlow(slot); - } + addGlow(slot); slot++; - if (slot % 9 == 8) - { - slot += 2; - } + if (slot == 17) + slot += 2; } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DoubleJumpPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DoubleJumpPage.java index 8ecddc541..f9748cb06 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DoubleJumpPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/DoubleJumpPage.java @@ -33,16 +33,12 @@ public class DoubleJumpPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.DOUBLE_JUMP) == gadget) - { - addGlow(slot); - } + addGlow(slot); slot++; - - if (slot % 9 == 8) - { - slot += 2; - } + + if (slot == 17) + slot += 2; } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/FlagPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/FlagPage.java deleted file mode 100644 index 8de6f4cdf..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/FlagPage.java +++ /dev/null @@ -1,58 +0,0 @@ -package mineplex.core.cosmetic.ui.page; - -import mineplex.core.account.CoreClientManager; -import mineplex.core.common.util.C; -import mineplex.core.cosmetic.CosmeticManager; -import mineplex.core.cosmetic.ui.CosmeticShop; -import mineplex.core.donation.DonationManager; -import mineplex.core.gadget.types.Gadget; -import mineplex.core.gadget.types.GadgetType; -import mineplex.core.shop.item.IButton; -import mineplex.core.shop.item.ShopItem; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.ClickType; - -import java.util.List; - -public class FlagPage extends GadgetPage -{ - public FlagPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name, - Player player) - { - super(plugin, shop, clientManager, donationManager, name, player); - } - - @Override - protected void buildPage() - { - int slot = 10; - - List list = getPlugin().getGadgetManager().getGadgets(GadgetType.FLAG); - if(list != null) - for (Gadget gadget : list) - { - addGadget(gadget, slot); - - if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.FLAG) == gadget) - { - addGlow(slot); - } - - slot++; - - if (slot % 9 == 8) - { - slot += 2; - } - } - - addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() - { - public void onClick(Player player, ClickType clickType) - { - getShop().openPageForPlayer(getPlayer(), new Menu(getPlugin(), getShop(), getClientManager(), getDonationManager(), player)); - } - }); - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/GadgetPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/GadgetPage.java index 03efda5ce..657d98b30 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/GadgetPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/GadgetPage.java @@ -12,6 +12,7 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.BannerMeta; import org.bukkit.inventory.meta.ItemMeta; import mineplex.core.account.CoreClientManager; @@ -20,6 +21,7 @@ import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilText; +import mineplex.core.common.util.banner.CountryFlag; import mineplex.core.cosmetic.CosmeticManager; import mineplex.core.cosmetic.ui.CosmeticShop; import mineplex.core.cosmetic.ui.button.GadgetButton; @@ -58,16 +60,12 @@ public class GadgetPage extends ShopPageBase addGadget(gadget, slot); if (getPlugin().getInventoryManager().Get(getPlayer()).getItemCount(gadget.getDisplayName()) > 0) - { addGlow(slot); - } slot++; - if (slot % 9 == 8) - { + if (slot == 17 || slot == 26) slot += 2; - } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() @@ -368,6 +366,19 @@ public class GadgetPage extends ShopPageBase meta.setLore(itemLore); gadgetItemStack.setItemMeta(meta); + if (gadget.getGadgetType() == GadgetType.ARROW_TRAIL || gadget.getGadgetType() == GadgetType.DEATH + || gadget.getGadgetType() == GadgetType.PARTICLE || gadget.getGadgetType() == GadgetType.DOUBLE_JUMP) + { + if (gadget.getCost(GlobalCurrency.TREASURE_SHARD) == -8) + { + gadgetItemStack = CountryFlag.USA.getBanner(); + BannerMeta bannerMeta = (BannerMeta) gadgetItemStack.getItemMeta(); + bannerMeta.setDisplayName(C.cGreen + C.Bold + gadget.getName()); + bannerMeta.setLore(meta.getLore()); + gadgetItemStack.setItemMeta(bannerMeta); + } + } + addButton(slot, new ShopItem(gadgetItemStack, false, false).hideInfo(), new DeactivateGadgetButton(gadget, this)); } else @@ -378,6 +389,19 @@ public class GadgetPage extends ShopPageBase meta.setLore(itemLore); gadgetItemStack.setItemMeta(meta); + if (gadget.getGadgetType() == GadgetType.ARROW_TRAIL || gadget.getGadgetType() == GadgetType.DEATH + || gadget.getGadgetType() == GadgetType.PARTICLE || gadget.getGadgetType() == GadgetType.DOUBLE_JUMP) + { + if (gadget.getCost(GlobalCurrency.TREASURE_SHARD) == -8) + { + gadgetItemStack = CountryFlag.USA.getBanner(); + BannerMeta bannerMeta = (BannerMeta) gadgetItemStack.getItemMeta(); + bannerMeta.setDisplayName(C.cGreen + C.Bold + gadget.getName()); + bannerMeta.setLore(meta.getLore()); + gadgetItemStack.setItemMeta(bannerMeta); + } + } + /*if (gadget instanceof MorphStray) { gadgetItemStack = UtilItem.getVersionSpecificItem(_player, UtilPlayer.PlayerVersion._1_9, gadgetItemStack); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/HatPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/HatPage.java index a21f31cea..37f472616 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/HatPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/HatPage.java @@ -38,16 +38,12 @@ public class HatPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.HAT) == gadget) - { - addGlow(slot); - } + addGlow(slot); slot++; - - if (slot % 9 == 8) - { - slot += 2; - } + + if (slot == 17) + slot += 2; } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/KitSelectorPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/KitSelectorPage.java index 6ce7f5ebd..26b399783 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/KitSelectorPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/KitSelectorPage.java @@ -31,16 +31,12 @@ public class KitSelectorPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.KIT_SELECTOR) == gadget) - { addGlow(slot); - } slot++; - if (slot % 9 == 8) - { + if (slot == 17 || slot == 26 || slot == 35) slot += 2; - } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java index 9814c081b..8a27df36e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java @@ -5,9 +5,6 @@ import java.util.EnumMap; import java.util.List; import java.util.Map; -import mineplex.core.common.util.banner.CountryFlag; -import mineplex.core.cosmetic.ui.button.open.OpenFlags; -import mineplex.core.itemstack.ItemBuilder; import org.bukkit.Material; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -17,6 +14,7 @@ import mineplex.core.common.currency.GlobalCurrency; import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilText; +import mineplex.core.common.util.UtilUI; import mineplex.core.cosmetic.CosmeticManager; import mineplex.core.cosmetic.ui.CosmeticShop; import mineplex.core.cosmetic.ui.button.open.OpenArrowTrails; @@ -42,9 +40,6 @@ import mineplex.core.mount.Mount; import mineplex.core.pet.PetType; import mineplex.core.shop.item.ShopItem; import mineplex.core.shop.page.ShopPageBase; -import org.bukkit.inventory.ItemFlag; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.BannerMeta; public class Menu extends ShopPageBase { @@ -69,46 +64,35 @@ public class Menu extends ShopPageBase List shardLore = new ArrayList(); shardLore.add(" "); - shardLore.add(C.cGray + "These seem like they might come in"); - shardLore.add(C.cGray + "handy. Maybe I should collect more!"); + shardLore.add(C.cGray + "This seems like it might come in"); + shardLore.add(C.cGray + "handy. Maybe I can collect more!"); ShopItem shards = new ShopItem(Material.PRISMARINE_SHARD, C.cAqua + C.Bold + treasureShards + " Treasure Shards", shardLore.toArray(new String[0]), 0, false); - int deathSlot = 19; - int jumpSlot = 28; - int particleSlot = 1; - int winEffectSlot = 13; - int shardSlot = 22; - int arrowSlot = 10; - int tauntSlot = 31; - int gameModifierSlot = 21; - int kitSelectorSlot = 23; - int musicSlot = 48; - int mountSlot = 50; - int balloonsSlot = 47; - int petSlot = 51; - int gadgetSlot = 49; - int hatSlot = 7; - int flagSlot = 34; - int morphSlot = 25; - int costumeSlot = 16; - - addItem(shardSlot, shards); - - ItemStack pane = new ItemBuilder(Material.STAINED_GLASS_PANE).setData((byte)15).setTitle(C.cBlack).build(); - for (int i = 0; i <= 45; i += 9) addItem(i, pane.clone()); - for (int i = 8; i <= 53; i += 9) addItem(i, pane.clone()); - for (int i = 37; i <= 43; ++i) addItem(i, pane.clone()); - for (int i = 2; i <= 6; ++i) addItem(i, pane.clone()); - for (int i = 11; i <= 29; i += 9) addItem(i, pane.clone()); - for (int i = 15; i <= 33; i += 9) addItem(i, pane.clone()); - addItem(12, pane.clone()); - addItem(14, pane.clone()); - addItem(30, pane.clone()); - addItem(32, pane.clone()); - addItem(46, pane.clone()); - addItem(52, pane.clone()); + // Cosmetic Items + int[] slots = UtilUI.getIndicesFor(15, 0, 5, 1); + /*int particleSlot = 9;//slots[0]; + int arrowSlot = 11;//slots[1]; + int jumpSlot = 13;//slots[2]; + int deathSlot = 15;//slots[3]; + int gadgetSlot = 27;//slots[4]; + int morphSlot = 29;//slots[5]; + int mountSlot = 31;//slots[6]; + int petSlot = 33;//slots[7]; + int hatSlot = 35;//slots[8]; + int costumeSlot = 45;//slots[9]; + int musicSlot = 47;//slots[10]; + int tauntSlot = 49;//slots[11]; + int winEffectSlot = 51; + int gameModifierSlot = 53;*/ + int particleSlot = slots[0], arrowSlot = slots[1], jumpSlot = slots[2], + deathSlot = slots[3], gadgetSlot = slots[4], morphSlot = slots[5], + mountSlot = slots[6], petSlot = slots[7], hatSlot = slots[8], + costumeSlot = slots[9], musicSlot = slots[10], tauntSlot = slots[11], + winEffectSlot = slots[12], gameModifierSlot = slots[13], balloonsSlot = slots[14], + kitSelectorSlot = balloonsSlot + 4; + addItem(kitSelectorSlot + 2, shards); EnumMap ownedCount = new EnumMap<>(GadgetType.class); EnumMap maxCount = new EnumMap<>(GadgetType.class); @@ -203,7 +187,7 @@ public class Menu extends ShopPageBase if (petActive != null) addGlow(petSlot); type = GadgetType.HAT; - lore = getLore(ownedCount.get(type), maxCount.get(type), "Hats are in this year. Wear them on your head to impress the others.", VISIBILITY_HUB, enabled.get(type)); + lore = getLore(ownedCount.get(type), maxCount.get(type), "Hats are in this year. Wear them on your head to impress the ladies.", VISIBILITY_HUB, enabled.get(type)); addButton(hatSlot, new ShopItem(Material.GOLD_HELMET, "Hats", lore, 1, false), new OpenHats(this, enabled.get(type))); if (enabled.containsKey(type)) addGlow(hatSlot); @@ -243,19 +227,6 @@ public class Menu extends ShopPageBase lore = getLore(ownedCount.get(type), maxCount.get(type), "Click here to select different particles to indicate which kit you have selected!", VISIBILITY_GAME_HUB, enabled.get(type)); addButton(kitSelectorSlot, new ShopItem(Material.LEVER, "Kit Selector Particles", lore, 1, false), new OpenKitSelector(this, enabled.get(type))); if (enabled.containsKey(type)) addGlow(kitSelectorSlot); - - type = GadgetType.FLAG; - lore = getLore(ownedCount.get(type), maxCount.get(type), "Show off your country's flag!", VISIBILITY_HUB, enabled.get(type)); - addButton(flagSlot, new ShopItem(Material.BANNER, "Flags", lore, 1, false), new OpenFlags(this, enabled.get(type))); - if (enabled.containsKey(type)) addGlow(flagSlot); - - // Copy over banner design - BannerMeta banner = (BannerMeta) CountryFlag.MINEPLEX.getBanner().getItemMeta(); - BannerMeta meta = ((BannerMeta) getItem(flagSlot).getItemMeta()); - meta.setBaseColor(banner.getBaseColor()); - meta.setPatterns(banner.getPatterns()); - meta.addItemFlags(ItemFlag.HIDE_POTION_EFFECTS); - getItem(flagSlot).setItemMeta(meta); } private String[] getLore(int ownedCount, int maxCount, String info, String visibility, Gadget enabled) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MorphPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MorphPage.java index 0689b3f07..682140891 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MorphPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MorphPage.java @@ -32,19 +32,13 @@ public class MorphPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.MORPH) == gadget) - { - if (!(gadget instanceof MorphBlock)) - { - addGlow(slot); - } - } + if (!(gadget instanceof MorphBlock)) + addGlow(slot); slot++; - if (slot % 9 == 8) - { + if (slot == 17 || slot == 26 || slot == 35) slot += 2; - } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MountPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MountPage.java index 0c2b2cd60..6e670effc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MountPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MountPage.java @@ -46,10 +46,8 @@ public class MountPage extends ShopPageBase addMount(mount, slot); slot++; - if (slot % 9 == 8) - { + if (slot == 17 || slot == 26) slot += 2; - } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java index 49fa65cf7..54ff244d7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java @@ -14,6 +14,9 @@ import mineplex.core.gadget.types.GadgetType; import mineplex.core.shop.item.ShopItem; import mineplex.core.shop.item.IButton; +/** + * Created by shaun on 14-09-15. + */ public class MusicPage extends GadgetPage { public MusicPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name, Player player) @@ -31,10 +34,8 @@ public class MusicPage extends GadgetPage slot++; - if (slot % 9 == 8) - { + if (slot == 17) slot += 2; - } } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ParticlePage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ParticlePage.java index 168741d0a..a488c922c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ParticlePage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/ParticlePage.java @@ -31,16 +31,12 @@ public class ParticlePage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.PARTICLE) == gadget) - { - addGlow(slot); - } + addGlow(slot); slot++; - - if (slot % 9 == 8) - { - slot += 2; - } + + if (slot == 17 || slot == 26 || slot == 35) + slot += 2; } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/PetPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/PetPage.java index 264f73dbe..e7bf684cb 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/PetPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/PetPage.java @@ -231,23 +231,16 @@ public class PetPage extends ShopPageBase slot++; - if (slot % 9 == 8) - { + if (slot == 17 || slot == 26) slot += 2; - } } slot = 49; for (PetExtra petExtra : PetExtra.values()) { List itemLore = new ArrayList(); - - if (getPlugin().getPunishManager().GetClient(_player.getName()).IsMuted()) - { - itemLore.add(C.cRed + "You may not rename pets while muted!"); - getInventory().setItem(slot, new ShopItem(petExtra.getMaterial(), (byte)0, C.cRed + petExtra.getName(), itemLore.toArray(new String[itemLore.size()]), 1, true, false).getHandle()); - } - else if (!getPlugin().getPetManager().hasActivePet(getPlayer().getName())) + + if (!getPlugin().getPetManager().hasActivePet(getPlayer().getName())) { itemLore.add(C.cWhite + "You must have an active pet to use this!"); getInventory().setItem(slot, new ShopItem(petExtra.getMaterial(), (byte)0, C.cRed + petExtra.getName(), itemLore.toArray(new String[itemLore.size()]), 1, true, false).getHandle()); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/TauntPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/TauntPage.java index 63ef90b24..687516e0f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/TauntPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/TauntPage.java @@ -38,16 +38,12 @@ public class TauntPage extends GadgetPage addGadget(gadget, slot); if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.TAUNT) == gadget) - { - addGlow(slot); - } + addGlow(slot); slot++; - - if (slot % 9 == 8) - { - slot += 2; - } + + if (slot == 26) + slot += 2; } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/WinEffectPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/WinEffectPage.java index e66674be4..cc116cbac 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/WinEffectPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/WinEffectPage.java @@ -49,16 +49,12 @@ public class WinEffectPage extends GadgetPage } if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.WIN_EFFECT) == gadget) - { - addGlow(slot); - } + addGlow(slot); slot++; - - if (slot % 9 == 8) - { - slot += 2; - } + + if (slot == 17 || slot == 26) + slot += 2; } addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/custompet/name/CustomPetTagPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/custompet/name/CustomPetTagPage.java index 2350f8eba..774ecf2d0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/custompet/name/CustomPetTagPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/custompet/name/CustomPetTagPage.java @@ -1,14 +1,9 @@ package mineplex.core.cosmetic.ui.page.custompet.name; -import mineplex.core.common.util.C; -import mineplex.core.common.util.UtilItem; -import mineplex.core.itemstack.ItemBuilder; -import mineplex.core.punish.PunishClient; import net.minecraft.server.v1_8_R3.ItemStack; import net.minecraft.server.v1_8_R3.Items; import org.bukkit.ChatColor; -import org.bukkit.Material; import org.bukkit.entity.Player; import mineplex.core.account.CoreClientManager; @@ -39,7 +34,6 @@ public class CustomPetTagPage extends ShopPageBase { addCosmetics(null, caller); } - else if (args.length >= 1) + else if (args.length == 1) { - if (args[0].equalsIgnoreCase("all")) + Player player = Bukkit.getPlayer(args[0]); + if (player != null) { - for (Player player : UtilServer.getPlayers()) - { - if (player != null) - { - addCosmetics(null, player); - UtilPlayer.message(caller, F.main("Unlock Cosmetics", "Added all the cosmetics to " + F.name(player.getName()) + "!")); - } - } - } - else - { - for (int i = 0; i < args.length; ++i) - { - Player player = Bukkit.getPlayer(args[i]); - if (player != null) - { - addCosmetics(null, player); - UtilPlayer.message(caller, F.main("Unlock Cosmetics", "Added all the cosmetics to " + F.name(player.getName()) + "!")); - } - } + addCosmetics(null, player); + UtilPlayer.message(caller, F.main("Unlock Cosmetics", "Added all the cosmetics to " + F.name(player.getName()) + "!")); } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailRedWhite.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailRedWhite.java deleted file mode 100644 index 37934c81f..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailRedWhite.java +++ /dev/null @@ -1,77 +0,0 @@ -package mineplex.core.gadget.gadgets.arrowtrail; - -import mineplex.core.common.util.C; -import mineplex.core.common.util.LineFormat; -import mineplex.core.common.util.UtilAlg; -import mineplex.core.common.util.UtilParticle; -import mineplex.core.common.util.UtilText; -import mineplex.core.common.util.banner.CountryFlag; -import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.types.ArrowEffectGadget; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.entity.Arrow; -import org.bukkit.util.Vector; - -import java.awt.Color; - -/** - * Trails a red and white double helix behind the arrow. - */ -public class ArrowTrailRedWhite extends ArrowEffectGadget -{ - public ArrowTrailRedWhite(GadgetManager manager) - { - super(manager, "Red & White Arrows", - UtilText.splitLineToArray(C.cRed + "Killing you nicely.", LineFormat.LORE), - -8, Material.WOOL, (byte)0); - - setDisplayItem(CountryFlag.CANADA.getBanner()); - } - - @Override - public void doTrail(Arrow arrow) - { - Vector v = arrow.getVelocity(); - Vector up = UtilAlg.getUp(v); - Vector left = UtilAlg.getLeft(v); - - Location loc = arrow.getLocation(); - - double amount = 2; - double ticks = 15; - - for(int i = 0; i < amount; i++) - { - double rad = Math.PI*2.0; - rad += i/amount * rad; - rad += Math.PI*2*(arrow.getTicksLived()%ticks)/ticks; - double l = -Math.sin(rad); - double u = Math.cos(rad); - - Vector vel = v.clone().add(up.clone().multiply(u)).add(left.clone().multiply(l)); - vel.multiply(0.4); - - if (i == 0) - { - for(int j = 0; j < 3; ++j) - { - UtilParticle.playColoredParticleToAll(Color.RED, UtilParticle.ParticleType.RED_DUST, loc.clone().add(vel), 0, UtilParticle.ViewDist.NORMAL); - } - } - else - { - for(int j = 0; j < 3; ++j) - { - UtilParticle.playColoredParticleToAll(Color.WHITE, UtilParticle.ParticleType.RED_DUST, loc.clone().add(vel), 0, UtilParticle.ViewDist.NORMAL); - } - } - } - } - - @Override - public void doHitEffect(Arrow arrow) - { - UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.EXPLODE, arrow.getLocation(), 0, 0, 0, 0, 3, UtilParticle.ViewDist.NORMAL); - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/candycane/ArrowTrailCandyCane.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailCandyCane.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/candycane/ArrowTrailCandyCane.java index 58cbee4d9..d45b1b023 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/candycane/ArrowTrailCandyCane.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.candycane; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailCupid.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/cupidslove/ArrowTrailCupid.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailCupid.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/cupidslove/ArrowTrailCupid.java index 4249c19c3..c10562f6d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailCupid.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/cupidslove/ArrowTrailCupid.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.cupidslove; import org.bukkit.Color; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailEmerald.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/emerald/ArrowTrailEmerald.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailEmerald.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/emerald/ArrowTrailEmerald.java index b7b8a6df2..8592bc16b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/emerald/ArrowTrailEmerald.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.emerald; import mineplex.core.common.util.*; import org.bukkit.Location; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailFreedom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/freedom/ArrowTrailFreedom.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailFreedom.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/freedom/ArrowTrailFreedom.java index fa5f7ade2..8921b26cc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/freedom/ArrowTrailFreedom.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.freedom; import java.awt.Color; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailFrostLord.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/frostlord/ArrowTrailFrostLord.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailFrostLord.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/frostlord/ArrowTrailFrostLord.java index 3a7c910b5..6ae8d9b43 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/frostlord/ArrowTrailFrostLord.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.frostlord; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailHalloween.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/halloween/ArrowTrailHalloween.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailHalloween.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/halloween/ArrowTrailHalloween.java index bd5b62563..112f272ad 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailHalloween.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/halloween/ArrowTrailHalloween.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.halloween; import java.awt.Color; import java.util.HashMap; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailStorm.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/howlingwinds/ArrowTrailStorm.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailStorm.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/howlingwinds/ArrowTrailStorm.java index 084611017..a3cc14165 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailStorm.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/howlingwinds/ArrowTrailStorm.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.howlingwinds; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailMusic.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/music/ArrowTrailMusic.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailMusic.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/music/ArrowTrailMusic.java index 6c6a3006e..d535035af 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/music/ArrowTrailMusic.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.music; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailConfetti.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/party/ArrowTrailConfetti.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailConfetti.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/party/ArrowTrailConfetti.java index be2cd9b90..d8f06ce45 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailConfetti.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/party/ArrowTrailConfetti.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.party; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailShadow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/shadow/ArrowTrailShadow.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailShadow.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/shadow/ArrowTrailShadow.java index 8db14cbdb..aec688901 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailShadow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/shadow/ArrowTrailShadow.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.shadow; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailSpring.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/spring/ArrowTrailSpring.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailSpring.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/spring/ArrowTrailSpring.java index 59cb064c4..c335ce062 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailSpring.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/spring/ArrowTrailSpring.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.spring; import java.util.ArrayList; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/titan/ArrowTrailTitan.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailTitan.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/titan/ArrowTrailTitan.java index 29c39b7d0..956055929 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/titan/ArrowTrailTitan.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.titan; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailBlood.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/vampire/ArrowTrailBlood.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailBlood.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/vampire/ArrowTrailBlood.java index 180e336de..f54c9ae92 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailBlood.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/vampire/ArrowTrailBlood.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.vampire; import org.bukkit.Material; import org.bukkit.entity.Arrow; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailEnchant.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/wisdom/ArrowTrailEnchant.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailEnchant.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/wisdom/ArrowTrailEnchant.java index b33723020..00e47e049 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/ArrowTrailEnchant.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/wisdom/ArrowTrailEnchant.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.arrowtrail; +package mineplex.core.gadget.gadgets.arrowtrail.wisdom; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java deleted file mode 100644 index 3cfeeb034..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMapleLeaf.java +++ /dev/null @@ -1,45 +0,0 @@ -package mineplex.core.gadget.gadgets.death; - -import mineplex.core.blood.BloodEvent; -import mineplex.core.common.shape.ShapeWings; -import mineplex.core.common.util.C; -import mineplex.core.common.util.LineFormat; -import mineplex.core.common.util.UtilParticle; -import mineplex.core.common.util.UtilText; -import mineplex.core.common.util.banner.CountryFlag; -import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.types.DeathEffectGadget; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.util.Vector; - -/** - * Displays a giant maple leaf at the point of death. - */ -public class DeathMapleLeaf extends DeathEffectGadget -{ - /** height off the ground of the leaf */ - private static final double HEIGHT = 3; - - private final ShapeWings _leafOuter = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1.0, 1.0, 1.0), 1, 0, false, 0, ShapeWings.MAPLE_LEAF); - private final ShapeWings _leafInner = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(0.7, 0, 0), 1, 0, false, 0, ShapeWings.MAPLE_LEAF); - - public DeathMapleLeaf(GadgetManager manager) - { - super(manager, "Fallen Maple Leaf", - UtilText.splitLineToArray(C.cGray + "When you die in " + C.cRed + "Canada" + C.cGray + " you die in real life.", LineFormat.LORE), - -8, Material.WOOL, (byte) 0); - - setDisplayItem(CountryFlag.CANADA.getBanner()); - } - - @Override - public void onBlood(Player player, BloodEvent event) - { - event.setCancelled(true); - Location loc = player.getLocation().add(0, HEIGHT, 0); - _leafOuter.display(loc); - _leafInner.display(loc); - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/candycane/DeathCandyCane.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathCandyCane.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/candycane/DeathCandyCane.java index 2d100b3fe..45a7028d0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/candycane/DeathCandyCane.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.candycane; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathPresentDanger.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/christmas/DeathPresentDanger.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathPresentDanger.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/christmas/DeathPresentDanger.java index c1b07ce33..e8db5ed6a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathPresentDanger.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/christmas/DeathPresentDanger.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.christmas; import java.util.ArrayList; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathCupidsBrokenHeart.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/cupidslove/DeathCupidsBrokenHeart.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathCupidsBrokenHeart.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/cupidslove/DeathCupidsBrokenHeart.java index d0053f9df..1c92abc02 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathCupidsBrokenHeart.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/cupidslove/DeathCupidsBrokenHeart.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.cupidslove; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathEmerald.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/emerald/DeathEmerald.java similarity index 93% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathEmerald.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/emerald/DeathEmerald.java index 85fb2db18..79ea0b404 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/emerald/DeathEmerald.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.emerald; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathFreedom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/freedom/DeathFreedom.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathFreedom.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/freedom/DeathFreedom.java index 137b68207..24d43eb0b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/freedom/DeathFreedom.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.freedom; import org.bukkit.ChatColor; import org.bukkit.Location; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathFrostLord.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/frostlord/DeathFrostLord.java similarity index 93% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathFrostLord.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/frostlord/DeathFrostLord.java index 72cd2c3cb..0ce7b546f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/frostlord/DeathFrostLord.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.frostlord; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathStorm.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/howlingwinds/DeathStorm.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathStorm.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/howlingwinds/DeathStorm.java index c3cf2f0da..00cf6d607 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathStorm.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/howlingwinds/DeathStorm.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.howlingwinds; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMusic.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/music/DeathMusic.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMusic.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/music/DeathMusic.java index d6c4176ad..2bf566254 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/music/DeathMusic.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.music; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathPinataBurst.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/party/DeathPinataBurst.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathPinataBurst.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/party/DeathPinataBurst.java index 0adc3dfb8..09ccfe10a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathPinataBurst.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/party/DeathPinataBurst.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.party; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathShadow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/shadow/DeathShadow.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathShadow.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/shadow/DeathShadow.java index f80b4ad9b..3adb240f2 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathShadow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/shadow/DeathShadow.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.shadow; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathSpring.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/spring/DeathSpring.java similarity index 98% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathSpring.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/spring/DeathSpring.java index bae34473b..eb15f5986 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathSpring.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/spring/DeathSpring.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.spring; import java.util.ArrayList; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/titan/DeathTitan.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathTitan.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/titan/DeathTitan.java index 0e56f8308..00b64eace 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/titan/DeathTitan.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.titan; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathBlood.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/vampire/DeathBlood.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathBlood.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/vampire/DeathBlood.java index 7101aba36..5365e3e14 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathBlood.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/vampire/DeathBlood.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.vampire; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathEnchant.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/wisdom/DeathEnchant.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathEnchant.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/wisdom/DeathEnchant.java index 35532906d..7229b155d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/DeathEnchant.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/wisdom/DeathEnchant.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.death; +package mineplex.core.gadget.gadgets.death.wisdom; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMaple.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMaple.java deleted file mode 100644 index 4b9d08338..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMaple.java +++ /dev/null @@ -1,110 +0,0 @@ -package mineplex.core.gadget.gadgets.doublejump; - -import mineplex.core.common.util.C; -import mineplex.core.common.util.LineFormat; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilParticle; -import mineplex.core.common.util.UtilText; -import mineplex.core.common.util.banner.CountryFlag; -import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.types.DoubleJumpEffectGadget; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -public class DoubleJumpMaple extends DoubleJumpEffectGadget -{ - /** - * Amount of particles played per tick as a player flies through the air. - */ - private static final int PARTICLES = 50; - - /** - * Vertical offset of the animation's center from the player's location. - */ - private static final float Y_OFFSET = 0.95f; - - /** - * Divisor of the gaussian distribution of particles as the player flies through the air. - */ - private static final int DISTRIBUTION = 2; - - /** - * Particle ring count when a player launches from the ground. - */ - private static final int LAUNCH_RINGS = 6; - - /** - * The distance between launch rings. - */ - private static final float RING_SPACING = 0.4f; - - /** - * Particles played per 1 unit radius. - */ - private static final int RING_DENSITY = 8; - - private HashMap _playerMap = new HashMap<>(); - - public DoubleJumpMaple(GadgetManager manager) - { - super(manager, "Maple Leap", - UtilText.splitLineToArray(C.cGray + "Jump higher than the maple trees!", LineFormat.LORE), - -8, Material.WOOL, (byte)0); - setDisplayItem(CountryFlag.CANADA.getBanner()); - } - - @Override - public void doEffect(Player player) - { - _playerMap.put(player, System.currentTimeMillis() + 1000); - - float limit = (LAUNCH_RINGS * RING_SPACING) + RING_SPACING; - - for (float r = RING_SPACING; r < limit; r++) - { - double[][] points = UtilMath.normalCircle(player.getLocation(), player.getVelocity(), r, Math.round(RING_DENSITY * r)); - - for (int i = 0; i < points.length; i++) - { - UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.EXPLODE, new Location(player.getWorld(), points[i][0], points[i][1], points[i][2]), - null, 0, 1, UtilParticle.ViewDist.NORMAL); - } - } - } - - @EventHandler - public void onUpdate(UpdateEvent event) - { - if(event.getType() != UpdateType.FASTEST) - { - return; - } - - for(Iterator> it = _playerMap.entrySet().iterator(); it.hasNext();) - { - Map.Entry e = it.next(); - - if(e.getValue() <= System.currentTimeMillis()) - { - it.remove(); - continue; - } - - Location loc = e.getKey().getLocation().add(0, Y_OFFSET, 0); - - for (int i = 0; i < PARTICLES; ++i) - { - UtilParticle.playColoredParticleToAll(java.awt.Color.RED, UtilParticle.ParticleType.RED_DUST, - UtilMath.gauss(loc, DISTRIBUTION, DISTRIBUTION, DISTRIBUTION), 0, UtilParticle.ViewDist.NORMAL); - } - } - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/candycane/DoubleJumpCandyCane.java similarity index 91% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCandyCane.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/candycane/DoubleJumpCandyCane.java index 209da4b7c..d6a7620c7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/candycane/DoubleJumpCandyCane.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.candycane; import org.bukkit.Location; import org.bukkit.Material; @@ -30,7 +30,7 @@ public class DoubleJumpCandyCane extends DoubleJumpEffectGadget Location loc = player.getLocation(); UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 15), loc, 0, 0, 0, 0.15f, 100, ViewDist.NORMAL); UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 1), loc, 0, 0, 0, 0.15f, 100, ViewDist.NORMAL); - UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 15), loc, 0, 0, 0, 0.15f, 100, ViewDist.NORMAL); + UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 2), loc, 0, 0, 0, 0.15f, 100, ViewDist.NORMAL); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCupidsWings.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/cupidslove/DoubleJumpCupidsWings.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCupidsWings.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/cupidslove/DoubleJumpCupidsWings.java index 81884a52b..71a7b66b5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpCupidsWings.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/cupidslove/DoubleJumpCupidsWings.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.cupidslove; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpEmerald.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/emerald/DoubleJumpEmerald.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpEmerald.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/emerald/DoubleJumpEmerald.java index f74859c2c..0453e0b57 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/emerald/DoubleJumpEmerald.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.emerald; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFreedom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/freedom/DoubleJumpFreedom.java similarity index 92% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFreedom.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/freedom/DoubleJumpFreedom.java index 820ccd155..7f887e345 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/freedom/DoubleJumpFreedom.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.freedom; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -18,7 +18,7 @@ public class DoubleJumpFreedom extends DoubleJumpEffectGadget { super(manager, "Leap of Freedom", UtilText.splitLineToArray(UtilText.colorWords("FREEEEEEEEEEEDOM!", ChatColor.RED, ChatColor.WHITE, ChatColor.BLUE), LineFormat.LORE), -8, Material.WOOL, - (byte) 0); + (byte) 14); setDisplayItem(CountryFlag.USA.getBanner()); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFrostLord.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/frostlord/DoubleJumpFrostLord.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFrostLord.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/frostlord/DoubleJumpFrostLord.java index 64cc9f962..62325731c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/frostlord/DoubleJumpFrostLord.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.frostlord; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpHalloween.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/halloween/DoubleJumpHalloween.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpHalloween.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/halloween/DoubleJumpHalloween.java index 0f2cc13e8..10155afbd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpHalloween.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/halloween/DoubleJumpHalloween.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.halloween; import java.awt.Color; import java.util.HashMap; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpStorm.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/howlingwinds/DoubleJumpStorm.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpStorm.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/howlingwinds/DoubleJumpStorm.java index 9cd07ef15..6b04d1f00 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpStorm.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/howlingwinds/DoubleJumpStorm.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.howlingwinds; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMusic.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/music/DoubleJumpMusic.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMusic.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/music/DoubleJumpMusic.java index 2a4d5c1ba..5b7459f0d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/music/DoubleJumpMusic.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.music; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFirecracker.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/party/DoubleJumpFirecracker.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFirecracker.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/party/DoubleJumpFirecracker.java index 65ce9bd80..06ee124f7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpFirecracker.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/party/DoubleJumpFirecracker.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.party; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpShadow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/shadow/DoubleJumpShadow.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpShadow.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/shadow/DoubleJumpShadow.java index c64052bca..005c3403c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpShadow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/shadow/DoubleJumpShadow.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.shadow; import mineplex.core.common.util.C; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpSpring.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/spring/DoubleJumpSpring.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpSpring.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/spring/DoubleJumpSpring.java index 527b44b0f..63dabdaf9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpSpring.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/spring/DoubleJumpSpring.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.spring; import java.util.ArrayList; import java.util.Iterator; @@ -38,7 +38,7 @@ public class DoubleJumpSpring extends DoubleJumpEffectGadget { for (int i = 50; i < 60; i++) { - Item sunflower = player.getWorld().dropItem(player.getLocation().add(0.0, 0.2, 0.0), ItemStackFactory.Instance.CreateStack(Material.DOUBLE_PLANT, (byte) 0, 1, " " + i)); + Item sunflower = player.getWorld().dropItem(player.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.DOUBLE_PLANT, (byte) 0, 1, " " + i)); _items.add(sunflower); Vector vel = new Vector(Math.sin(i * 9/5d), 0, Math.cos(i * 9/5d)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/titan/DoubleJumpTitan.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpTitan.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/titan/DoubleJumpTitan.java index 9c81a3309..336aaa5bc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/titan/DoubleJumpTitan.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.titan; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpBlood.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/vampire/DoubleJumpBlood.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpBlood.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/vampire/DoubleJumpBlood.java index 2f910416c..882133687 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpBlood.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/vampire/DoubleJumpBlood.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.vampire; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpEnchant.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/wisdom/DoubleJumpEnchant.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpEnchant.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/wisdom/DoubleJumpEnchant.java index d9d4db576..ec1120f3b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/DoubleJumpEnchant.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/wisdom/DoubleJumpEnchant.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.doublejump; +package mineplex.core.gadget.gadgets.doublejump.wisdom; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/flag/FlagType.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/flag/FlagType.java deleted file mode 100644 index aec958dd9..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/flag/FlagType.java +++ /dev/null @@ -1,33 +0,0 @@ -package mineplex.core.gadget.gadgets.flag; - -import mineplex.core.common.util.banner.CountryFlag; - -/** - * Cosmetic flags representing countries. - */ -public enum FlagType -{ - UNITED_STATES(CountryFlag.USA, -8), - CANADA(CountryFlag.CANADA, -8), - - ; - - private final CountryFlag _flag; - private final int _cost; - - FlagType(CountryFlag flag, int cost) - { - _flag = flag; - _cost = cost; - } - - public CountryFlag getFlag() - { - return _flag; - } - - public int getCost() - { - return _cost; - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/hat/HatType.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/hat/HatType.java index cabad2568..c6f623e20 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/hat/HatType.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/hat/HatType.java @@ -22,11 +22,7 @@ public enum HatType SNOWMAN("Snowman Head", UtilText.splitLineToArray(C.cGray + "Do you want to be a snowman?", LineFormat.LORE), -2, SkinData.SNOWMAN), TEDDY_BEAR("Teddy Bear", UtilText.splitLineToArray(C.cGray + "Aww, it's a cute teddy bear! What shall I name him?", LineFormat.LORE), -6, SkinData.TEDDY_BEAR), UNCLE_SAM("Uncle Sam Hat", UtilText.splitLineToArray(UtilText.colorWords("Uncle Sam has a big hat but now you can too.", ChatColor.RED, ChatColor.WHITE, ChatColor.BLUE), LineFormat.LORE), -8, SkinData.UNCLE_SAM), - PUMPKIN("Pumpkin Hat", UtilText.splitLineToArray(C.cGray + "Pumpkin on the head, don't end up dead!", LineFormat.LORE), -9, Material.PUMPKIN), - CANADA("Warm Canadian Hat", UtilText.splitLineToArray(C.cGray + "Keep your ears nice and warm while up north.", LineFormat.LORE), -8, SkinData.CANADA_HAT), - AMERICA("Patriotic American Hat", UtilText.splitLineToArray(C.cGray + "Careful not to get a big head.", LineFormat.LORE), -8, SkinData.AMERICA_HAT), - - ; + PUMPKIN("Pumpkin Hat", UtilText.splitLineToArray(C.cGray + "Pumpkin on the head, don't end up dead!", LineFormat.LORE), -9, Material.PUMPKIN); private final String _name; private final String[] _lore; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCoalFumes.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCoalFumes.java index 651993fb9..236bc1e8a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCoalFumes.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCoalFumes.java @@ -1,6 +1,5 @@ package mineplex.core.gadget.gadgets.particle; -import mineplex.core.common.util.UtilMath; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -28,7 +27,7 @@ public class ParticleCoalFumes extends ParticleGadget @Override public void playParticle(Player player, UpdateEvent event) { - if(event.getType() != UpdateType.FASTER) return; + if(event.getType() != UpdateType.TICK) return; float xz = 1; int amount = 5; @@ -40,6 +39,6 @@ public class ParticleCoalFumes extends ParticleGadget amount = 2; } - UtilParticle.playParticleFor(player, type, UtilMath.gauss(player.getLocation(), 2, 6, 2), xz, 0, xz, 0, amount, ViewDist.NORMAL); + UtilParticle.playParticleFor(player, type, player.getLocation(), xz, 0, xz, 0, amount, ViewDist.NORMAL); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleLegend.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleLegend.java index 8337efae4..f99338a75 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleLegend.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleLegend.java @@ -1,8 +1,6 @@ package mineplex.core.gadget.gadgets.particle; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilParticle; -import org.bukkit.Location; +import org.bukkit.Effect; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -19,40 +17,12 @@ import mineplex.core.inventory.data.Item; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; -import java.awt.Color; - public class ParticleLegend extends ParticleGadget { - private static final double PI = Math.PI; - private static final int BASE_PILLARS = 9; - private static final int PILLAR_VARIANCE = 8; - private static final int MOVING_PARTICLES = 8; - private static final double VERTICAL_SPEED = 0.1; - private static final double HEIGHT_VARIANCE = 0.8; - private static final double ROTATIONAL_SPEED = .03; - private static final double RADIAL_VARIANCE = 0.09; - private static final double BASE_RADIUS = 1.30; - private static final double HEIGHT_MODIFIER_BASE = 0.1; - private static final double HEIGHT_MODIFIER_MAX = 1.3; - private static final double HEIGHT_MODIFIER_INTERVAL = 0.15; - private static final Color[] SELECTABLE_COLORS = { - new Color(60, 170, 25), - new Color(33, 92, 13), - new Color(0, 0, 0) - }; - - private final int _pillars = pillars(); - private final Color[] _colors = colors(); - private final double[] _heights = heights(); - private final double[] _verticals = verticals(); - private final double[] _variance = variances(); - private final double[] _thetas = thetas(); - private final double[] _radii = radii(); - public ParticleLegend(GadgetManager manager) { super(manager, "Legendary Aura", - UtilText.splitLineToArray(C.cGray + "Legendary energy protects you.", LineFormat.LORE), + UtilText.splitLineToArray(C.cGray + "This particle will be updated soon! Yay!", LineFormat.LORE), -1, Material.ENDER_PORTAL_FRAME, (byte)0); } @@ -61,150 +31,11 @@ public class ParticleLegend extends ParticleGadget public void playParticle(Player player, UpdateEvent event) { if (event.getType() != UpdateType.TICK) - { return; - } - if (Manager.isMoving(player)) - { - - for (int i = 0; i < MOVING_PARTICLES; i++) - { - if (_colors[i].getGreen() == 0) - { - UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.SMOKE, - UtilMath.gauss(player.getLocation(), 8, 4, 8), null, 0, 1, UtilParticle.ViewDist.NORMAL); - } - else - { - UtilParticle.playColoredParticleToAll(_colors[i], UtilParticle.ParticleType.RED_DUST, - UtilMath.gauss(player.getLocation(), 8, 4, 8), 0, UtilParticle.ViewDist.NORMAL); - } - } - } - else - { - if (event.getTick() % (ROTATIONAL_SPEED * 100) == 0) - { - for (int i = 0; i < _pillars; i++) - { - _thetas[i] = rollover(_thetas[i], ROTATIONAL_SPEED); - _heights[i] = rollover(_heights[i], _verticals[i]); - - double x = (_radii[i] * Math.cos(_thetas[i])) + player.getLocation().getX(); - double z = (_radii[i] * Math.sin(_thetas[i])) + player.getLocation().getZ(); - double y = (Math.sin(_heights[i]) * _variance[i]) + player.getLocation().getY(); - - for (double h = HEIGHT_MODIFIER_BASE; h <= HEIGHT_MODIFIER_MAX; h+= HEIGHT_MODIFIER_INTERVAL) - { - if (_colors[i].getGreen() == 0) - { - UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.SMOKE, - new Location(player.getWorld(), x, y + h, z), null, 0, 1, UtilParticle.ViewDist.NORMAL); - } - else - { - UtilParticle.playColoredParticleToAll(_colors[i], UtilParticle.ParticleType.RED_DUST, - new Location(player.getWorld(), x, y + h, z), 0, UtilParticle.ViewDist.NORMAL); - } - } - } - } - } + player.getWorld().playEffect(player.getLocation().add(0, 1, 0), Effect.ENDER_SIGNAL, 0); } - - private double[] heights() - { - double[] array = new double[_pillars]; - - for (int i = 0; i < _pillars; i++) - { - array[i] = 6.28 * Math.random(); - } - - return array; - } - - private double[] variances() - { - double[] array = new double[_pillars]; - - for (int i = 0; i < _pillars; i++) - { - array[i] = Math.random() * HEIGHT_VARIANCE; - } - - return array; - } - - private double[] verticals() - { - double[] array = new double[_pillars]; - - for (int i = 0; i < _pillars; i++) - { - array[i] = Math.random() * VERTICAL_SPEED; - } - - return array; - } - - private double[] thetas() - { - double[] array = new double[_pillars]; - double theta = 0; - double interval = (2 * PI) / _pillars; - - for (int i = 0; i < _pillars; i++) - { - array[i] = theta; - theta += interval; - } - - return array; - } - - private double[] radii() - { - double[] array = new double[_pillars]; - - for (int i = 0; i < _pillars; i++) - { - array[i] = BASE_RADIUS + (Math.random() * RADIAL_VARIANCE); - } - - return array; - } - - private Color[] colors() - { - Color[] array = new Color[_pillars]; - - for (int i = 0; i < _pillars; i++) - { - array[i] = SELECTABLE_COLORS[i % SELECTABLE_COLORS.length]; - } - - return array; - } - - private int pillars() - { - return BASE_PILLARS + (int) ((Math.random() * PILLAR_VARIANCE) - (PILLAR_VARIANCE / 2)); - } - - private double rollover(double value, double additive) - { - value += additive; - - if (value >= 2 * PI) - { - value = value - (2 * PI); - } - - return value; - } - + @EventHandler public void legendOwner(PlayerJoinEvent event) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/candycane/ParticleCandyCane.java similarity index 93% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCandyCane.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/candycane/ParticleCandyCane.java index e9e572f19..4d8b223fc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/candycane/ParticleCandyCane.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.candycane; import java.util.HashMap; import java.util.UUID; @@ -63,7 +63,7 @@ public class ParticleCandyCane extends ParticleGadget UtilParticle.playParticleFor(player, UtilParticle.ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 15), loc, w, y, w, 0, a, UtilParticle.ViewDist.NORMAL); UtilParticle.playParticleFor(player, UtilParticle.ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 1), loc, w, y, w, 0, a, UtilParticle.ViewDist.NORMAL); - UtilParticle.playParticleFor(player, UtilParticle.ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 15), loc, w, y, w, 0, a, UtilParticle.ViewDist.NORMAL); + UtilParticle.playParticleFor(player, UtilParticle.ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 2), loc, w, y, w, 0, a, UtilParticle.ViewDist.NORMAL); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleHeart.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/cupidslove/ParticleHeart.java similarity index 84% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleHeart.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/cupidslove/ParticleHeart.java index c48b0ddb4..dea6a85aa 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleHeart.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/cupidslove/ParticleHeart.java @@ -1,6 +1,5 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.cupidslove; -import mineplex.core.common.util.UtilMath; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -38,11 +37,11 @@ public class ParticleHeart extends ParticleGadget { if(getSet() == null || !getSet().isActive(player)) return; - UtilParticle.playParticleFor(player, ParticleType.HEART, player.getLocation().add(0, 1.2, 0), null, 0, 1, ViewDist.NORMAL); + UtilParticle.playParticleFor(player, ParticleType.HEART, player.getLocation().add(0, 1, 0), null, 0, 1, ViewDist.NORMAL); } else { - UtilParticle.playParticleFor(player, ParticleType.HEART, UtilMath.gauss(player.getLocation(), 1, 3, 1).add(0, 1.2, 0), null, 0, 1, ViewDist.NORMAL); + UtilParticle.playParticleFor(player, ParticleType.HEART, player.getLocation().add(0, 1, 0), 0.5f, 0.5f, 0.5f, 0, 1, ViewDist.NORMAL); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleEmerald.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/emerald/ParticleEmerald.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleEmerald.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/emerald/ParticleEmerald.java index f81361c66..417587dbb 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/emerald/ParticleEmerald.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.emerald; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java deleted file mode 100644 index 2e68270e5..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleAuraNiceness.java +++ /dev/null @@ -1,194 +0,0 @@ -package mineplex.core.gadget.gadgets.particle.freedom; - -import mineplex.core.arcadeevents.CoreGameStartEvent; -import mineplex.core.arcadeevents.CoreGameStopEvent; -import mineplex.core.common.util.C; -import mineplex.core.common.util.LineFormat; -import mineplex.core.common.util.UtilBlock; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilParticle; -import mineplex.core.common.util.UtilShapes; -import mineplex.core.common.util.UtilText; -import mineplex.core.common.util.banner.CountryFlag; -import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.types.ParticleGadget; -import mineplex.core.treasure.event.TreasureFinishEvent; -import mineplex.core.treasure.event.TreasureStartEvent; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.block.BlockPhysicsEvent; - -import java.awt.Color; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.ThreadLocalRandom; -import java.util.stream.Collectors; - -/** - * Places flowers around the player with poofs of red and white - */ -public class ParticleAuraNiceness extends ParticleGadget -{ - /** Radius within which flowers not allowed near treasure chests */ - private static final int TREASURE_RADIUS = 4; - - /** Horizontal offset for particle spawns */ - private static final double H_FIELD = 0.5; - - /** Vertical offset for particle spawns */ - private static final double V_FIELD = 0.35; - - /** How likely a flower is to be spawned (1/n) */ - private static final int ROSE_PROBABILITY = 40; - - /** Radius in which flowers are spawned */ - private static final double ROSE_RADIUS = 2.5; - - /** How many particles accompany each flower spawn */ - private static final int PARTICLE_COUNT = 20; - - /** List of blocks that have flowers in them */ - private final Set _blocks = new HashSet<>(); - - /** Milliseconds for which flowers persist */ - private final long DURATION = 5000; - - /** Locations at which treasure is currently being opened */ - private final Map _openingTreasure = new HashMap<>(); - - /** Whether flowers can be spawned in addition to particles */ - private boolean _enabled = true; - - public ParticleAuraNiceness(GadgetManager manager) - { - super(manager, "Aura of Niceness", - UtilText.splitLineToArray(C.cGray + "Canadians are always nice online.", LineFormat.LORE), -8, Material.WOOL, - (byte) 0); - - setDisplayItem(CountryFlag.CANADA.getBanner()); - } - - @Override - public void playParticle(Player player, UpdateEvent event) - { - if (event.getType() != UpdateType.FASTER) - { - return; - } - - for (Location location : _openingTreasure.values()) - { - if (location.toVector().isInSphere(player.getLocation().toVector(), TREASURE_RADIUS)) - { - return; - } - } - - UtilShapes.getCircle(player.getLocation().subtract(0, 0.5, 0), false, ROSE_RADIUS).stream().map(Location::getBlock) - .collect(Collectors.toSet()).forEach(block -> - { - if (ThreadLocalRandom.current().nextInt(ROSE_PROBABILITY) == 0) - { - Block b = block.getRelative(BlockFace.UP); - - if (b.isEmpty() && UtilBlock.fullSolid(block) && !UtilBlock.bottomSlab(block)) - { - Location loc = b.getLocation().add(H_FIELD, V_FIELD, H_FIELD); - - if (_enabled) - { - byte data = ThreadLocalRandom.current().nextInt(2) == 0 ? (byte) 4 : 6; - - _blocks.add(b); - Manager.getBlockRestore().add(b, Material.RED_ROSE.getId(), data, DURATION); - } - - for (int i = 0; i < PARTICLE_COUNT; ++i) - { - UtilParticle.playColoredParticleToAll(Color.RED, UtilParticle.ParticleType.RED_DUST, UtilMath.gauss(loc, 4, 4, 4), 0, UtilParticle.ViewDist.NORMAL); - UtilParticle.playColoredParticleToAll(Color.WHITE, UtilParticle.ParticleType.RED_DUST, UtilMath.gauss(loc, 4, 4, 4), 0, UtilParticle.ViewDist.NORMAL); - } - } - } - }); - - for(Iterator it = _blocks.iterator(); it.hasNext();) - { - Block b = it.next(); - - if (b.getType() != Material.RED_ROSE) - { - it.remove(); - Location loc = b.getLocation().add(H_FIELD, V_FIELD, H_FIELD); - for (int i = 0; i < PARTICLE_COUNT / 2; ++i) - { - UtilParticle.playColoredParticleToAll(Color.RED, UtilParticle.ParticleType.RED_DUST, UtilMath.gauss(loc, 6, 6, 6), 0, UtilParticle.ViewDist.NORMAL); - UtilParticle.playColoredParticleToAll(Color.WHITE, UtilParticle.ParticleType.RED_DUST, UtilMath.gauss(loc, 6, 6, 6), 0, UtilParticle.ViewDist.NORMAL); - } - } - } - } - - /** - * Stop flowers from popping off of blocks - */ - @EventHandler - public void onBlockFade(BlockPhysicsEvent event) - { - if (_blocks.contains(event.getBlock())) - { - event.setCancelled(true); - } - } - - /** - * Disable flowers in the area around treasure being opened. - */ - @EventHandler(priority = EventPriority.LOW) - public void disableOnTreasureStart(TreasureStartEvent event) - { - _openingTreasure.put(event.getPlayer().getUniqueId(), event.getPlayer().getLocation()); - Manager.getBlockRestore().restoreBlockAround(Material.CARPET, event.getPlayer().getLocation(), TREASURE_RADIUS); - } - - /** - * Enable flowers in the area around treasure no longer being opened. - */ - @EventHandler(priority = EventPriority.HIGH) - public void enableOnTreasureFinish(TreasureFinishEvent event) - { - if (_openingTreasure.containsKey(event.getPlayer().getUniqueId())) - { - _openingTreasure.remove(event.getPlayer().getUniqueId()); - } - } - - /** - * Disable flowers on game start - */ - @EventHandler - public void onGameStart(CoreGameStartEvent event) - { - _enabled = false; - } - - /** - * Enable flowers on game end - */ - @EventHandler - public void onGameEnd(CoreGameStopEvent event) - { - _enabled = true; - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java deleted file mode 100644 index 4770908b9..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleCanadian.java +++ /dev/null @@ -1,71 +0,0 @@ -package mineplex.core.gadget.gadgets.particle.freedom; - -import mineplex.core.common.util.C; -import mineplex.core.common.util.LineFormat; -import mineplex.core.common.util.UtilParticle; -import mineplex.core.common.util.UtilText; -import mineplex.core.common.util.banner.CountryFlag; -import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.types.ParticleGadget; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.BannerMeta; - -import java.awt.Color; - -/** - * Leaves a trail behind the player with the colors of the Canadian flag. - */ -public class ParticleCanadian extends ParticleGadget -{ - /** # of lines of particles */ - private static final int STRAND_COUNT = 9; - - /** How far apart each line of particles is */ - private static final double STRAND_SPACING = 0.124; - - /** How far off the floor the particles begin */ - private static final double DISTANCE_FROM_FLOOR = 0.43; - - public ParticleCanadian(GadgetManager manager) - { - super(manager, "Canadian Trail", - UtilText.splitLineToArray(C.cGray + "Lead the way to freedom!", LineFormat.LORE), - -8, Material.WOOL, (byte) 0); - - setDisplayItem(CountryFlag.CANADA.getBanner()); - } - - @Override - public void playParticle(Player player, UpdateEvent event) - { - if (event.getType() != UpdateType.TICK) - { - return; - } - - Location center = player.getLocation().subtract(player.getLocation().getDirection().multiply(0.4)) - .subtract(0, 0.1, 0).add(0, DISTANCE_FROM_FLOOR, 0); - - if (Manager.isMoving(player)) - { - for (int i = 0; i < STRAND_COUNT; i++) - { - if (i < 3 || i > 5) - { - UtilParticle.playColoredParticleToAll(Color.RED, UtilParticle.ParticleType.RED_DUST, - center.add(0, STRAND_SPACING, 0), 0, UtilParticle.ViewDist.NORMAL); - } - else - { - UtilParticle.playColoredParticleToAll(Color.WHITE, UtilParticle.ParticleType.RED_DUST, - center.add(0, STRAND_SPACING, 0), 0, UtilParticle.ViewDist.NORMAL); - } - } - } - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedomFireworks.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedomFireworks.java deleted file mode 100644 index a7a18702e..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedomFireworks.java +++ /dev/null @@ -1,59 +0,0 @@ -package mineplex.core.gadget.gadgets.particle.freedom; - -import mineplex.core.common.util.C; -import mineplex.core.common.util.LineFormat; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilParticle; -import mineplex.core.common.util.UtilText; -import mineplex.core.common.util.banner.CountryFlag; -import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.types.ParticleGadget; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.entity.Player; - -import java.util.concurrent.ThreadLocalRandom; - -/** - * Small fireworks which explode around the player - */ -public class ParticleFreedomFireworks extends ParticleGadget -{ - /** Block types to source for particles */ - private static final Material[] BLOCKTYPES = { - Material.REDSTONE_BLOCK, - Material.LAPIS_BLOCK, - Material.QUARTZ_BLOCK - }; - - /** Amount of particles for each firework */ - private static final int PARTICLE_COUNT = 20; - - public ParticleFreedomFireworks(GadgetManager manager) - { - super(manager, "Freedom Fireworks", - UtilText.splitLineToArray(C.cGray + "Keep your patriotism close.", LineFormat.LORE), - -8, Material.WOOL, (byte) 0); - - setDisplayItem(CountryFlag.USA.getBanner()); - } - - @Override - public void playParticle(Player player, UpdateEvent event) - { - if (event.getType() != UpdateType.FAST) - { - return; - } - - String particle = UtilParticle.ParticleType.BLOCK_CRACK.getParticle(BLOCKTYPES[ThreadLocalRandom.current().nextInt(0, BLOCKTYPES.length)], 0); - Location location = UtilMath.gauss(player.getEyeLocation(), 1, 1, 1); - - for (int i = 0; i < PARTICLE_COUNT; ++i) - { - UtilParticle.PlayParticleToAll(particle, location, null, 3.0f, 1, UtilParticle.ViewDist.NORMAL); - } - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleStarSpangled.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleStarSpangled.java deleted file mode 100644 index 7ad601f9a..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleStarSpangled.java +++ /dev/null @@ -1,81 +0,0 @@ -package mineplex.core.gadget.gadgets.particle.freedom; - -import mineplex.core.common.util.C; -import mineplex.core.common.util.LineFormat; -import mineplex.core.common.util.UtilParticle; -import mineplex.core.common.util.UtilServer; -import mineplex.core.common.util.UtilText; -import mineplex.core.common.util.banner.CountryFlag; -import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.types.ParticleGadget; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; -import net.minecraft.server.v1_8_R3.MinecraftServer; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.entity.Player; - -import java.awt.*; - - -/** - * @author J Teissler - * @date 6/26/17 - */ -public class ParticleStarSpangled extends ParticleGadget -{ - private static final int STRAND_COUNT = 9; - private static final double STRAND_SPACING = 0.124; - private static final double DISTANCE_FROM_FLOOR = 0.43; - - private static final Color BLUE = new Color(29, 26, 120); - - public ParticleStarSpangled(GadgetManager manager) - { - super(manager, "Star Spangled Stripe", - UtilText.splitLineToArray(C.cGray + "Blaze a trail of freedom!", LineFormat.LORE), - -8, Material.WOOL, (byte) 0); - setDisplayItem(CountryFlag.USA.getBanner()); - } - - @Override - public void playParticle(Player player, UpdateEvent event) - { - if (event.getType() != UpdateType.TICK) - { - return; - } - - Location center = player.getLocation().subtract(player.getLocation().getDirection().multiply(0.4)) - .subtract(0, 0.1, 0).add(0, DISTANCE_FROM_FLOOR, 0); - - if (Manager.isMoving(player)) - { - for (int i = 0; i < STRAND_COUNT; i++) - { - if (i == 3 || i == 7) - { - if (player.getTicksLived() % 3 == 0) - { - UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.FIREWORKS_SPARK, - center.add(0, STRAND_SPACING, 0), 0f, 0f, 0f, 0f, 0, UtilParticle.ViewDist.NORMAL); - continue; - } - } - else if (i == 5) - { - if (player.getTicksLived() + 1 % 3 == 0) - { - UtilParticle.PlayParticleToAll(UtilParticle.ParticleType.FIREWORKS_SPARK, - center.add(0, STRAND_SPACING, 0), 0f, 0f, 0f, 0f, 0, UtilParticle.ViewDist.NORMAL); - continue; - } - } - - UtilParticle.playColoredParticleToAll(BLUE, UtilParticle.ParticleType.RED_DUST, - center.add(0, STRAND_SPACING, 0), 0, UtilParticle.ViewDist.NORMAL); - } - } - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFrostLord.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/frostlord/ParticleFrostLord.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFrostLord.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/frostlord/ParticleFrostLord.java index 32f947e47..62c1388b3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/frostlord/ParticleFrostLord.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.frostlord; import org.bukkit.Material; import org.bukkit.Sound; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleRain.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/howlingwinds/ParticleRain.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleRain.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/howlingwinds/ParticleRain.java index 4311666c0..f2c45007c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleRain.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/howlingwinds/ParticleRain.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.howlingwinds; import java.util.ArrayList; import java.util.List; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleMusic.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/music/ParticleMusic.java similarity index 98% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleMusic.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/music/ParticleMusic.java index e0bbb3537..04874fffc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/music/ParticleMusic.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.music; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticlePartyTime.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/party/ParticlePartyTime.java similarity index 98% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticlePartyTime.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/party/ParticlePartyTime.java index a3944317c..3aab6f928 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticlePartyTime.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/party/ParticlePartyTime.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.party; import java.util.Arrays; import java.util.Collections; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFoot.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/shadow/ParticleFoot.java similarity index 98% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFoot.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/shadow/ParticleFoot.java index fd315fc04..9c3b8be54 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFoot.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/shadow/ParticleFoot.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.shadow; import java.util.HashMap; import java.util.Iterator; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/titan/ParticleTitan.java similarity index 98% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleTitan.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/titan/ParticleTitan.java index 7d062f713..b5f02de23 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/titan/ParticleTitan.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.titan; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleBlood.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/vampire/ParticleBlood.java similarity index 97% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleBlood.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/vampire/ParticleBlood.java index 0c3c3546a..a33078067 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleBlood.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/vampire/ParticleBlood.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.vampire; import org.bukkit.Location; import org.bukkit.Material; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleEnchant.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/wisdom/ParticleEnchant.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleEnchant.java rename to Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/wisdom/ParticleEnchant.java index 706c32fbd..f8d734e74 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleEnchant.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/wisdom/ParticleEnchant.java @@ -1,4 +1,4 @@ -package mineplex.core.gadget.gadgets.particle; +package mineplex.core.gadget.gadgets.particle.wisdom; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/BlowAKissTaunt.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/BlowAKissTaunt.java index c246b2975..fdc5da288 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/BlowAKissTaunt.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/BlowAKissTaunt.java @@ -35,12 +35,10 @@ public class BlowAKissTaunt extends TauntGadget } @Override - public boolean onStart(Player player) + public void onStart(Player player) { if (!Recharge.Instance.use(player, getName(), COOLDOWN, true, false, "Cosmetics")) - { - return false; - } + return; HashSet ignore = new HashSet<>(); ignore.add(Material.AIR); @@ -48,8 +46,6 @@ public class BlowAKissTaunt extends TauntGadget BlowAKissEffect blowAKissEffect = new BlowAKissEffect(player, loc, this); blowAKissEffect.start(); - - return true; } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java index 6e0a7e133..103efacd2 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/EternalTaunt.java @@ -6,8 +6,6 @@ import java.util.List; import java.util.Map; import java.util.UUID; -import mineplex.core.disguise.disguises.DisguiseBase; -import mineplex.core.game.GameDisplay; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.FireworkEffect; @@ -30,7 +28,9 @@ import mineplex.core.common.util.UtilText; import mineplex.core.disguise.disguises.DisguiseSkeleton; import mineplex.core.events.EnableArcadeSpawnEvent; import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.gadgets.morph.managers.UtilMorph; import mineplex.core.gadget.types.TauntGadget; +import mineplex.core.game.GameDisplay; import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; @@ -41,8 +41,7 @@ public class EternalTaunt extends TauntGadget private static final int COOLDOWN = 30000; private static final int PVP_COOLDOWN = 10000; - private final Map> _clocks = new HashMap<>(); - private final Map _disguises = new HashMap<>(); + private Map> _clocks = new HashMap<>(); public EternalTaunt(GadgetManager manager) { @@ -51,48 +50,33 @@ public class EternalTaunt extends TauntGadget C.cWhite + "Use /taunt in game to show how long you've been waiting.", C.cRed + "Cannot be used while in PvP!"}, LineFormat.LORE), -15, Material.WATCH, (byte) 0); - setCanPlayWithPvp(false); setPvpCooldown(PVP_COOLDOWN); setShouldPlay(true); setEventType(UpdateType.FAST); - addDisabledGames(GameDisplay.Smash, GameDisplay.SmashTeams, GameDisplay.SmashDomination, GameDisplay.SmashTraining); + addDisabledGames(GameDisplay.Smash, GameDisplay.SmashTeams, GameDisplay.SmashDomination); } @Override - public boolean onStart(Player player) + public void onStart(Player player) { if (!Recharge.Instance.use(player, getName(), COOLDOWN, true, false, "Cosmetics")) - { - return false; - } - + return; UtilFirework.playFirework(player.getLocation(), FireworkEffect.builder().with(FireworkEffect.Type.BALL_LARGE).withColor(Color.fromRGB(255, 175, 175)).withFade(Color.RED).build()); _clocks.put(player.getUniqueId(), new ArrayList<>()); Bukkit.broadcastMessage(F.main("Taunt", F.name(player.getName()) + " waited so long they turned to bones.")); - if (!Manager.getDisguiseManager().isDisguised(player)) - { - DisguiseSkeleton disguiseSkeleton = new DisguiseSkeleton(player); - disguiseSkeleton.setName(player.getName()); - disguiseSkeleton.setCustomNameVisible(true); - disguiseSkeleton.showArmor(); - Manager.getDisguiseManager().disguise(disguiseSkeleton); - _disguises.put(player.getUniqueId(), disguiseSkeleton); - } - - return true; + DisguiseSkeleton disguiseSkeleton = new DisguiseSkeleton(player); + UtilMorph.disguise(player, disguiseSkeleton, Manager); } @Override public void onPlay(Player player) { if (!_clocks.containsKey(player.getUniqueId())) - { return; - } int i = getPlayerTicks(player); @@ -130,11 +114,7 @@ public class EternalTaunt extends TauntGadget @Override public void onFinish(Player player) { - if (_disguises.containsKey(player.getUniqueId())) - { - Manager.getDisguiseManager().undisguise(_disguises.remove(player.getUniqueId())); - } - + UtilMorph.undisguise(player, Manager.getDisguiseManager()); if (_clocks.containsKey(player.getUniqueId())) { _clocks.get(player.getUniqueId()).forEach(c -> c.remove()); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/RainbowTaunt.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/RainbowTaunt.java index 6a49fe8c4..de81b6a1b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/RainbowTaunt.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/RainbowTaunt.java @@ -36,12 +36,10 @@ public class RainbowTaunt extends TauntGadget } @Override - public boolean onStart(Player player) + public void onStart(Player player) { if (!Recharge.Instance.use(player, getName(), COOLDOWN, true, false, "Cosmetics")) - { - return false; - } + return; Vector dir = player.getLocation().getDirection(); Vector sideA = dir.clone().setX(-dir.getZ()).setZ(dir.getX()); @@ -53,8 +51,6 @@ public class RainbowTaunt extends TauntGadget RainbowTauntEffect rainbowTauntEffect = new RainbowTauntEffect(start, Manager.getPlugin()); rainbowTauntEffect.setTargetLocation(new EffectLocation(end)); rainbowTauntEffect.start(); - - return true; } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCanadian.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCanadian.java deleted file mode 100644 index 0b18eca18..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCanadian.java +++ /dev/null @@ -1,22 +0,0 @@ -package mineplex.core.gadget.set; - -import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailRedWhite; -import mineplex.core.gadget.gadgets.death.DeathMapleLeaf; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMaple; -import mineplex.core.gadget.gadgets.particle.freedom.ParticleCanadian; -import mineplex.core.gadget.types.GadgetSet; - -public class SetCanadian extends GadgetSet -{ - - public SetCanadian(GadgetManager manager) - { - super(manager, "Canadian", "2x Holiday Points while active (Titles)", - manager.getGadget(ArrowTrailRedWhite.class), - manager.getGadget(DeathMapleLeaf.class), - manager.getGadget(DoubleJumpMaple.class), - manager.getGadget(ParticleCanadian.class)); - } - -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCandyCane.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCandyCane.java index c9b059480..e6f6f5707 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCandyCane.java @@ -1,10 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCandyCane; -import mineplex.core.gadget.gadgets.death.DeathCandyCane; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCandyCane; -import mineplex.core.gadget.gadgets.particle.ParticleCandyCane; +import mineplex.core.gadget.gadgets.arrowtrail.candycane.ArrowTrailCandyCane; +import mineplex.core.gadget.gadgets.death.candycane.DeathCandyCane; +import mineplex.core.gadget.gadgets.doublejump.candycane.DoubleJumpCandyCane; +import mineplex.core.gadget.gadgets.particle.candycane.ParticleCandyCane; import mineplex.core.gadget.types.GadgetSet; public class SetCandyCane extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCupidsLove.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCupidsLove.java index dca2f191c..ccbaf0863 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCupidsLove.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetCupidsLove.java @@ -1,10 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCupid; -import mineplex.core.gadget.gadgets.death.DeathCupidsBrokenHeart; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCupidsWings; -import mineplex.core.gadget.gadgets.particle.ParticleHeart; +import mineplex.core.gadget.gadgets.arrowtrail.cupidslove.ArrowTrailCupid; +import mineplex.core.gadget.gadgets.death.cupidslove.DeathCupidsBrokenHeart; +import mineplex.core.gadget.gadgets.doublejump.cupidslove.DoubleJumpCupidsWings; +import mineplex.core.gadget.gadgets.particle.cupidslove.ParticleHeart; import mineplex.core.gadget.types.GadgetSet; public class SetCupidsLove extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetEmerald.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetEmerald.java index 26df2fd6f..b34a8f88e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetEmerald.java @@ -1,10 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailEmerald; -import mineplex.core.gadget.gadgets.death.DeathEmerald; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpEmerald; -import mineplex.core.gadget.gadgets.particle.ParticleEmerald; +import mineplex.core.gadget.gadgets.arrowtrail.emerald.ArrowTrailEmerald; +import mineplex.core.gadget.gadgets.death.emerald.DeathEmerald; +import mineplex.core.gadget.gadgets.doublejump.emerald.DoubleJumpEmerald; +import mineplex.core.gadget.gadgets.particle.emerald.ParticleEmerald; import mineplex.core.gadget.types.GadgetSet; public class SetEmerald extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFreedom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFreedom.java index a64e2caf3..6196a145b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFreedom.java @@ -1,10 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFreedom; -import mineplex.core.gadget.gadgets.death.DeathFreedom; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFreedom; -import mineplex.core.gadget.gadgets.particle.freedom.ParticleStarSpangled; +import mineplex.core.gadget.gadgets.arrowtrail.freedom.ArrowTrailFreedom; +import mineplex.core.gadget.gadgets.death.freedom.DeathFreedom; +import mineplex.core.gadget.gadgets.doublejump.freedom.DoubleJumpFreedom; +import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedom; import mineplex.core.gadget.types.GadgetSet; public class SetFreedom extends GadgetSet @@ -16,7 +16,7 @@ public class SetFreedom extends GadgetSet manager.getGadget(ArrowTrailFreedom.class), manager.getGadget(DeathFreedom.class), manager.getGadget(DoubleJumpFreedom.class), - manager.getGadget(ParticleStarSpangled.class)); + manager.getGadget(ParticleFreedom.class)); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFrostLord.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFrostLord.java index 311600e5e..6112655a0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetFrostLord.java @@ -1,10 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFrostLord; -import mineplex.core.gadget.gadgets.death.DeathFrostLord; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFrostLord; -import mineplex.core.gadget.gadgets.particle.ParticleFrostLord; +import mineplex.core.gadget.gadgets.arrowtrail.frostlord.ArrowTrailFrostLord; +import mineplex.core.gadget.gadgets.death.frostlord.DeathFrostLord; +import mineplex.core.gadget.gadgets.doublejump.frostlord.DoubleJumpFrostLord; +import mineplex.core.gadget.gadgets.particle.frostlord.ParticleFrostLord; import mineplex.core.gadget.types.GadgetSet; public class SetFrostLord extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetHowlingWinds.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetHowlingWinds.java index 668503111..120a35c95 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetHowlingWinds.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetHowlingWinds.java @@ -1,10 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailStorm; -import mineplex.core.gadget.gadgets.death.DeathStorm; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpStorm; -import mineplex.core.gadget.gadgets.particle.ParticleRain; +import mineplex.core.gadget.gadgets.arrowtrail.howlingwinds.ArrowTrailStorm; +import mineplex.core.gadget.gadgets.death.howlingwinds.DeathStorm; +import mineplex.core.gadget.gadgets.doublejump.howlingwinds.DoubleJumpStorm; +import mineplex.core.gadget.gadgets.particle.howlingwinds.ParticleRain; import mineplex.core.gadget.types.GadgetSet; public class SetHowlingWinds extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetMusic.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetMusic.java index 50eef82a0..9e606f0e2 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetMusic.java @@ -1,10 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailMusic; -import mineplex.core.gadget.gadgets.death.DeathMusic; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMusic; -import mineplex.core.gadget.gadgets.particle.ParticleMusic; +import mineplex.core.gadget.gadgets.arrowtrail.music.ArrowTrailMusic; +import mineplex.core.gadget.gadgets.death.music.DeathMusic; +import mineplex.core.gadget.gadgets.doublejump.music.DoubleJumpMusic; +import mineplex.core.gadget.gadgets.particle.music.ParticleMusic; import mineplex.core.gadget.types.GadgetSet; public class SetMusic extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetParty.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetParty.java index f22ce959e..f9debaef0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetParty.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetParty.java @@ -1,10 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailConfetti; -import mineplex.core.gadget.gadgets.death.DeathPinataBurst; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFirecracker; -import mineplex.core.gadget.gadgets.particle.ParticlePartyTime; +import mineplex.core.gadget.gadgets.arrowtrail.party.ArrowTrailConfetti; +import mineplex.core.gadget.gadgets.death.party.DeathPinataBurst; +import mineplex.core.gadget.gadgets.doublejump.party.DoubleJumpFirecracker; +import mineplex.core.gadget.gadgets.particle.party.ParticlePartyTime; import mineplex.core.gadget.types.GadgetSet; public class SetParty extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetShadow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetShadow.java index 80b751d7d..befc2e27c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetShadow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetShadow.java @@ -1,10 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailShadow; -import mineplex.core.gadget.gadgets.death.DeathShadow; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpShadow; -import mineplex.core.gadget.gadgets.particle.ParticleFoot; +import mineplex.core.gadget.gadgets.arrowtrail.shadow.ArrowTrailShadow; +import mineplex.core.gadget.gadgets.death.shadow.DeathShadow; +import mineplex.core.gadget.gadgets.doublejump.shadow.DoubleJumpShadow; +import mineplex.core.gadget.gadgets.particle.shadow.ParticleFoot; import mineplex.core.gadget.types.GadgetSet; public class SetShadow extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetSpring.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetSpring.java index fb21b5f9e..77727b480 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetSpring.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetSpring.java @@ -1,9 +1,9 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailSpring; -import mineplex.core.gadget.gadgets.death.DeathSpring; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpSpring; +import mineplex.core.gadget.gadgets.arrowtrail.spring.ArrowTrailSpring; +import mineplex.core.gadget.gadgets.death.spring.DeathSpring; +import mineplex.core.gadget.gadgets.doublejump.spring.DoubleJumpSpring; import mineplex.core.gadget.gadgets.particle.spring.ParticleSpringHalo; import mineplex.core.gadget.types.GadgetSet; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetTitan.java index 360d86270..7c66a8f6c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetTitan.java @@ -1,10 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailTitan; -import mineplex.core.gadget.gadgets.death.DeathTitan; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpTitan; -import mineplex.core.gadget.gadgets.particle.ParticleTitan; +import mineplex.core.gadget.gadgets.arrowtrail.titan.ArrowTrailTitan; +import mineplex.core.gadget.gadgets.death.titan.DeathTitan; +import mineplex.core.gadget.gadgets.doublejump.titan.DoubleJumpTitan; +import mineplex.core.gadget.gadgets.particle.titan.ParticleTitan; import mineplex.core.gadget.types.GadgetSet; public class SetTitan extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetVampire.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetVampire.java index 1a5541085..b070122de 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetVampire.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetVampire.java @@ -1,10 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailBlood; -import mineplex.core.gadget.gadgets.death.DeathBlood; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpBlood; -import mineplex.core.gadget.gadgets.particle.ParticleBlood; +import mineplex.core.gadget.gadgets.arrowtrail.vampire.ArrowTrailBlood; +import mineplex.core.gadget.gadgets.death.vampire.DeathBlood; +import mineplex.core.gadget.gadgets.doublejump.vampire.DoubleJumpBlood; +import mineplex.core.gadget.gadgets.particle.vampire.ParticleBlood; import mineplex.core.gadget.types.GadgetSet; public class SetVampire extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetWisdom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetWisdom.java index 5bbae55da..2d2ff0693 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetWisdom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/SetWisdom.java @@ -1,10 +1,10 @@ package mineplex.core.gadget.set; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailEnchant; -import mineplex.core.gadget.gadgets.death.DeathEnchant; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpEnchant; -import mineplex.core.gadget.gadgets.particle.ParticleEnchant; +import mineplex.core.gadget.gadgets.arrowtrail.wisdom.ArrowTrailEnchant; +import mineplex.core.gadget.gadgets.death.wisdom.DeathEnchant; +import mineplex.core.gadget.gadgets.doublejump.wisdom.DoubleJumpEnchant; +import mineplex.core.gadget.gadgets.particle.wisdom.ParticleEnchant; import mineplex.core.gadget.types.GadgetSet; public class SetWisdom extends GadgetSet diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/FlagGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/FlagGadget.java deleted file mode 100644 index 7b7d71883..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/FlagGadget.java +++ /dev/null @@ -1,90 +0,0 @@ -package mineplex.core.gadget.types; - -import mineplex.core.common.util.C; -import mineplex.core.common.util.F; -import mineplex.core.common.util.LineFormat; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.common.util.UtilText; -import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.flag.FlagType; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -/** - * Flags which sit upon players head. - */ -public class FlagGadget extends Gadget -{ - private final FlagType _flag; - - public FlagGadget(GadgetManager manager, FlagType flag) - { - super(manager, GadgetType.FLAG, flag.getFlag().getCountryAdjective() + " Flag", - UtilText.splitLineToArray(C.cGray + "The flag of " + C.cWhite + flag.getFlag().getCountryName(), LineFormat.LORE), - flag.getCost(), Material.WOOL, (byte) 0); - - setDisplayItem(flag.getFlag().getBanner()); - _flag = flag; - } - - public void applyArmor(Player player, boolean message) - { - Manager.removeGadgetType(player, GadgetType.MORPH, this); - Manager.removeGadgetType(player, GadgetType.FLAG, this); - Manager.removeOutfit(player, OutfitGadget.ArmorSlot.HELMET); - - _active.add(player); - - if (message) - { - UtilPlayer.message(player, F.main("Gadget", "You unfurled your " + F.elem(getName()) + ".")); - } - } - - public void removeArmor(Player player) - { - if (_active.remove(player)) - { - UtilPlayer.message(player, F.main("Gadget", "You put away your " + F.elem(getName()) + ".")); - } - } - - @Override - public void enableCustom(Player player, boolean message) - { - applyArmor(player, message); - ItemStack flag = _flag.getFlag().getBanner(); - ItemMeta meta = flag.getItemMeta(); - meta.setDisplayName(getDisplayName()); - flag.setItemMeta(meta); - player.getInventory().setHelmet(flag); - player.updateInventory(); - } - - @Override - public void disableCustom(Player player, boolean message) - { - removeArmor(player); - player.getInventory().setHelmet(new ItemStack(Material.AIR)); - player.updateInventory(); - } - - @EventHandler(priority = EventPriority.LOWEST) - public void playerDeath(PlayerDeathEvent event) - { - disable(event.getEntity()); - } - - /** - * @return The specific gadget which this represents. - */ - public FlagType getFlagType() - { - return _flag; - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/GadgetType.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/GadgetType.java index 386f764a4..edc823e6d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/GadgetType.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/GadgetType.java @@ -18,8 +18,7 @@ public enum GadgetType WIN_EFFECT("Win Effects", "activeWinEffect"), GAME_MODIFIER("Game Modifiers", ""), BALLOON("Balloons", ""), - KIT_SELECTOR("Kit Selectors", "activeKitSelector"), - FLAG("Flags", "activeFlag"); + KIT_SELECTOR("Kit Selectors", "activeKitSelector"); private String _name; private String _databaseKey; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/HatGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/HatGadget.java index 38df4c367..b6becadc1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/HatGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/HatGadget.java @@ -47,7 +47,7 @@ public abstract class HatGadget extends OutfitGadget public void applyArmor(Player player, boolean message) { Manager.removeGadgetType(player, GadgetType.MORPH, this); - Manager.removeGadgetType(player, GadgetType.FLAG, this); + Manager.removeOutfit(player, _slot); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MorphGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MorphGadget.java index 7240ed1d5..4fb2b5ed9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MorphGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MorphGadget.java @@ -26,8 +26,7 @@ public abstract class MorphGadget extends Gadget public void applyArmor(Player player, boolean message) { Manager.removeGadgetType(player, GadgetType.MORPH, this); - Manager.removeGadgetType(player, GadgetType.COSTUME, this); - Manager.removeGadgetType(player, GadgetType.FLAG, this); + Manager.removeGadgetType(player, GadgetType.COSTUME); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java index 78471a943..6ce4d70b7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java @@ -60,12 +60,7 @@ public abstract class OutfitGadget extends Gadget public void applyArmor(Player player, boolean message) { Manager.removeGadgetType(player, GadgetType.MORPH, this); - - if (_slot == ArmorSlot.HELMET) - { - Manager.removeGadgetType(player, GadgetType.FLAG, this); - } - + Manager.removeOutfit(player, _slot); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/TauntGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/TauntGadget.java index c0b11870d..991a7425b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/TauntGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/TauntGadget.java @@ -76,13 +76,11 @@ public abstract class TauntGadget extends Gadget public void start(Player player) { - if (onStart(player)) - { - _ticksPerPlayer.put(player.getUniqueId(), 0); - } + onStart(player); + _ticksPerPlayer.put(player.getUniqueId(), 0); } - public abstract boolean onStart(Player player); + public abstract void onStart(Player player); public void play(Player player) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitanData.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitanData.java index ff998efee..137ae9bbe 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitanData.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitanData.java @@ -39,7 +39,7 @@ public class MountTitanData extends MountData //Nodes _nodes = new ArrayList(); - for (int i=0 ; i<20 ; i++) + for (int i=0 ; i<30 ; i++) { ArmorStand node = loc.getWorld().spawn(loc, ArmorStand.class); @@ -81,7 +81,7 @@ public class MountTitanData extends MountData Location infront = _head.getLocation().add(0, -1.5, 0); //Move - for (int i=0 ; i<20 ; i++) + for (int i=0 ; i<30 ; i++) { ArmorStand node = _nodes.get(i); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/Reward.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/Reward.java index 281374325..ef209276e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/Reward.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/Reward.java @@ -6,6 +6,9 @@ import org.bukkit.entity.Player; import mineplex.core.common.util.Callback; +/** + * Created by Shaun on 9/2/2014. + */ public abstract class Reward { protected static final Random RANDOM = new Random(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardData.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardData.java index 6f3acd00b..8179dbb98 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardData.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardData.java @@ -2,6 +2,9 @@ package mineplex.core.reward; import org.bukkit.inventory.ItemStack; +/** + * Created by shaun on 14-09-18. + */ public class RewardData { private final String _header; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java index 783e16317..5f4e5fb16 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java @@ -5,14 +5,6 @@ import java.util.EnumMap; import java.util.List; import java.util.Random; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailRedWhite; -import mineplex.core.gadget.gadgets.death.DeathMapleLeaf; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMaple; -import mineplex.core.gadget.gadgets.flag.FlagType; -import mineplex.core.gadget.gadgets.particle.freedom.ParticleAuraNiceness; -import mineplex.core.gadget.gadgets.particle.freedom.ParticleCanadian; -import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedomFireworks; -import mineplex.core.gadget.gadgets.particle.freedom.ParticleStarSpangled; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -23,46 +15,46 @@ import mineplex.core.common.Rank; import mineplex.core.common.util.banner.CountryFlag; import mineplex.core.donation.DonationManager; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailHalloween; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCandyCane; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCupid; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailEmerald; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFreedom; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFrostLord; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailStorm; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailMusic; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailConfetti; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailShadow; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailSpring; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailBlood; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailEnchant; +import mineplex.core.gadget.gadgets.arrowtrail.halloween.ArrowTrailHalloween; +import mineplex.core.gadget.gadgets.arrowtrail.candycane.ArrowTrailCandyCane; +import mineplex.core.gadget.gadgets.arrowtrail.cupidslove.ArrowTrailCupid; +import mineplex.core.gadget.gadgets.arrowtrail.emerald.ArrowTrailEmerald; +import mineplex.core.gadget.gadgets.arrowtrail.freedom.ArrowTrailFreedom; +import mineplex.core.gadget.gadgets.arrowtrail.frostlord.ArrowTrailFrostLord; +import mineplex.core.gadget.gadgets.arrowtrail.howlingwinds.ArrowTrailStorm; +import mineplex.core.gadget.gadgets.arrowtrail.music.ArrowTrailMusic; +import mineplex.core.gadget.gadgets.arrowtrail.party.ArrowTrailConfetti; +import mineplex.core.gadget.gadgets.arrowtrail.shadow.ArrowTrailShadow; +import mineplex.core.gadget.gadgets.arrowtrail.spring.ArrowTrailSpring; +import mineplex.core.gadget.gadgets.arrowtrail.vampire.ArrowTrailBlood; +import mineplex.core.gadget.gadgets.arrowtrail.wisdom.ArrowTrailEnchant; import mineplex.core.gadget.gadgets.balloons.BalloonType; -import mineplex.core.gadget.gadgets.death.DeathCandyCane; -import mineplex.core.gadget.gadgets.death.DeathPresentDanger; -import mineplex.core.gadget.gadgets.death.DeathCupidsBrokenHeart; -import mineplex.core.gadget.gadgets.death.DeathEmerald; -import mineplex.core.gadget.gadgets.death.DeathFreedom; -import mineplex.core.gadget.gadgets.death.DeathFrostLord; -import mineplex.core.gadget.gadgets.death.DeathStorm; -import mineplex.core.gadget.gadgets.death.DeathMusic; -import mineplex.core.gadget.gadgets.death.DeathPinataBurst; -import mineplex.core.gadget.gadgets.death.DeathShadow; -import mineplex.core.gadget.gadgets.death.DeathSpring; -import mineplex.core.gadget.gadgets.death.DeathBlood; -import mineplex.core.gadget.gadgets.death.DeathEnchant; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpHalloween; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCandyCane; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCupidsWings; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpEmerald; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFreedom; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFrostLord; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpStorm; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMusic; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFirecracker; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpShadow; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpSpring; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpBlood; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpEnchant; +import mineplex.core.gadget.gadgets.death.candycane.DeathCandyCane; +import mineplex.core.gadget.gadgets.death.christmas.DeathPresentDanger; +import mineplex.core.gadget.gadgets.death.cupidslove.DeathCupidsBrokenHeart; +import mineplex.core.gadget.gadgets.death.emerald.DeathEmerald; +import mineplex.core.gadget.gadgets.death.freedom.DeathFreedom; +import mineplex.core.gadget.gadgets.death.frostlord.DeathFrostLord; +import mineplex.core.gadget.gadgets.death.howlingwinds.DeathStorm; +import mineplex.core.gadget.gadgets.death.music.DeathMusic; +import mineplex.core.gadget.gadgets.death.party.DeathPinataBurst; +import mineplex.core.gadget.gadgets.death.shadow.DeathShadow; +import mineplex.core.gadget.gadgets.death.spring.DeathSpring; +import mineplex.core.gadget.gadgets.death.vampire.DeathBlood; +import mineplex.core.gadget.gadgets.death.wisdom.DeathEnchant; +import mineplex.core.gadget.gadgets.doublejump.halloween.DoubleJumpHalloween; +import mineplex.core.gadget.gadgets.doublejump.candycane.DoubleJumpCandyCane; +import mineplex.core.gadget.gadgets.doublejump.cupidslove.DoubleJumpCupidsWings; +import mineplex.core.gadget.gadgets.doublejump.emerald.DoubleJumpEmerald; +import mineplex.core.gadget.gadgets.doublejump.freedom.DoubleJumpFreedom; +import mineplex.core.gadget.gadgets.doublejump.frostlord.DoubleJumpFrostLord; +import mineplex.core.gadget.gadgets.doublejump.howlingwinds.DoubleJumpStorm; +import mineplex.core.gadget.gadgets.doublejump.music.DoubleJumpMusic; +import mineplex.core.gadget.gadgets.doublejump.party.DoubleJumpFirecracker; +import mineplex.core.gadget.gadgets.doublejump.shadow.DoubleJumpShadow; +import mineplex.core.gadget.gadgets.doublejump.spring.DoubleJumpSpring; +import mineplex.core.gadget.gadgets.doublejump.vampire.DoubleJumpBlood; +import mineplex.core.gadget.gadgets.doublejump.wisdom.DoubleJumpEnchant; import mineplex.core.gadget.gadgets.gamemodifiers.minestrike.MineStrikeSkin; import mineplex.core.gadget.gadgets.hat.HatType; import mineplex.core.gadget.gadgets.item.ItemBatGun; @@ -124,18 +116,18 @@ import mineplex.core.gadget.gadgets.particle.ParticleWingsInfernal; import mineplex.core.gadget.gadgets.particle.ParticleWingsLove; import mineplex.core.gadget.gadgets.particle.ParticleWingsPixie; import mineplex.core.gadget.gadgets.particle.ParticleYinYang; -import mineplex.core.gadget.gadgets.particle.ParticleCandyCane; -import mineplex.core.gadget.gadgets.particle.ParticleHeart; -import mineplex.core.gadget.gadgets.particle.ParticleEmerald; +import mineplex.core.gadget.gadgets.particle.candycane.ParticleCandyCane; +import mineplex.core.gadget.gadgets.particle.cupidslove.ParticleHeart; +import mineplex.core.gadget.gadgets.particle.emerald.ParticleEmerald; import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedom; -import mineplex.core.gadget.gadgets.particle.ParticleFrostLord; -import mineplex.core.gadget.gadgets.particle.ParticleRain; -import mineplex.core.gadget.gadgets.particle.ParticleMusic; -import mineplex.core.gadget.gadgets.particle.ParticlePartyTime; -import mineplex.core.gadget.gadgets.particle.ParticleFoot; +import mineplex.core.gadget.gadgets.particle.frostlord.ParticleFrostLord; +import mineplex.core.gadget.gadgets.particle.howlingwinds.ParticleRain; +import mineplex.core.gadget.gadgets.particle.music.ParticleMusic; +import mineplex.core.gadget.gadgets.particle.party.ParticlePartyTime; +import mineplex.core.gadget.gadgets.particle.shadow.ParticleFoot; import mineplex.core.gadget.gadgets.particle.spring.ParticleSpringHalo; -import mineplex.core.gadget.gadgets.particle.ParticleBlood; -import mineplex.core.gadget.gadgets.particle.ParticleEnchant; +import mineplex.core.gadget.gadgets.particle.vampire.ParticleBlood; +import mineplex.core.gadget.gadgets.particle.wisdom.ParticleEnchant; import mineplex.core.gadget.gadgets.taunts.BlowAKissTaunt; import mineplex.core.gadget.gadgets.taunts.RainbowTaunt; import mineplex.core.gadget.gadgets.wineffect.WinEffectBabyChicken; @@ -326,10 +318,6 @@ public class RewardManager addHat(Type.WINTER_HOLIDAY, HatType.PRESENT, rarity, 5); addHat(Type.WINTER_HOLIDAY, HatType.SNOWMAN, rarity, 5); - // FREEDOM - addGadget(Type.FREEDOM, getGadget(ArrowTrailRedWhite.class), rarity, 150); - addGadget(Type.FREEDOM, getGadget(ArrowTrailFreedom.class), rarity, 150); - // Omega items addMusicReward(Type.OMEGA, "Blocks Disc", rarity, 25); addMusicReward(Type.OMEGA, "Cat Disc", rarity, 25); @@ -496,12 +484,9 @@ public class RewardManager // FREEDOM addHat(Type.FREEDOM, HatType.UNCLE_SAM, rarity, 100); - addHat(Type.FREEDOM, HatType.AMERICA, rarity, 120); - addHat(Type.FREEDOM, HatType.CANADA, rarity, 120); addGadget(Type.FREEDOM, getGadget(DoubleJumpFreedom.class), rarity, 50); - addGadget(Type.FREEDOM, getGadget(DoubleJumpMaple.class), rarity, 50); + addGadget(Type.FREEDOM, getGadget(ArrowTrailFreedom.class), rarity, 10); addGadget(Type.FREEDOM, getGadget(DeathFreedom.class), rarity, 75); - addGadget(Type.FREEDOM, getGadget(DeathMapleLeaf.class), rarity, 75); // Omega Chest addGadget(Type.OMEGA, getGadget(DoubleJumpFreedom.class), rarity, 5); @@ -773,12 +758,6 @@ public class RewardManager addMount(Type.FREEDOM, getMount(MountFreedomHorse.class), rarity, 1); addGadget(Type.FREEDOM, getGadget(MorphUncleSam.class), rarity, 5); addGadget(Type.FREEDOM, getGadget(ParticleFreedom.class), rarity, 50); - addGadget(Type.FREEDOM, getGadget(ParticleFreedomFireworks.class), rarity, 95); - addGadget(Type.FREEDOM, getGadget(ParticleAuraNiceness.class), rarity, 40); - addGadget(Type.FREEDOM, getGadget(ParticleCanadian.class), rarity, 10); - addGadget(Type.FREEDOM, getGadget(ParticleStarSpangled.class), rarity, 10); - addFlag(Type.FREEDOM, FlagType.CANADA, rarity, 35); - addFlag(Type.FREEDOM, FlagType.UNITED_STATES, rarity, 35); // Omega items addPetReward(Type.OMEGA, PetType.VILLAGER, rarity, 1); @@ -1034,17 +1013,6 @@ public class RewardManager return addGadget(type, gadget, gadget.getDisplayName(), rarity, weight, shards); } - public UnknownPackageReward addFlag(Type type, FlagType flagType, RewardRarity rarity, int weight) - { - return addFlag(type, flagType, rarity, weight, getShards(rarity)); - } - - public UnknownPackageReward addFlag(Type type, FlagType flagType, RewardRarity rarity, int weight, int shards) - { - Gadget gadget = _gadgetManager.getFlagGadget(flagType); - return addGadget(type, gadget, gadget.getDisplayName(), rarity, weight, shards); - } - public UnknownPackageReward addBalloon(Type type, BalloonType balloonType, RewardRarity rarity, int weight) { return addBalloon(type, balloonType, rarity, weight, getShards(rarity)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardRarity.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardRarity.java index eff019430..759769234 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardRarity.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardRarity.java @@ -7,6 +7,9 @@ import org.bukkit.inventory.meta.ItemMeta; import mineplex.core.common.util.C; import static mineplex.core.common.util.C.*; +/** + * Created by Shaun on 9/2/2014. + */ public enum RewardRarity { /** diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureFinishEvent.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureFinishEvent.java index 15a85c4dd..ca001e6a5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureFinishEvent.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureFinishEvent.java @@ -7,7 +7,7 @@ import org.bukkit.event.HandlerList; import mineplex.core.treasure.Treasure; /** - * Called once a player has finished with the treasure opening process. + * Created by shaun on 14-09-12. */ public class TreasureFinishEvent extends Event { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasurePreStartEvent.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasurePreStartEvent.java index 29355cfd1..d384c61db 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasurePreStartEvent.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasurePreStartEvent.java @@ -7,7 +7,7 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; /** - * Called when a player selects a chest to open. + * Created by shaun on 14-09-12. */ public class TreasurePreStartEvent extends Event implements Cancellable { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureStartEvent.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureStartEvent.java index 37d59dc74..70c891f52 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureStartEvent.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureStartEvent.java @@ -10,9 +10,6 @@ import org.bukkit.event.HandlerList; import mineplex.core.reward.Reward; import mineplex.core.treasure.Treasure; -/** - * Called when a player is able to begin opening chests. - */ public class TreasureStartEvent extends Event { private static final HandlerList handlers = new HandlerList(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java index 6c79d08c8..030e3dc1d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java @@ -4,15 +4,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailRedWhite; -import mineplex.core.gadget.gadgets.death.DeathMapleLeaf; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpMaple; -import mineplex.core.gadget.gadgets.flag.FlagType; -import mineplex.core.gadget.gadgets.hat.HatType; -import mineplex.core.gadget.gadgets.particle.freedom.ParticleAuraNiceness; -import mineplex.core.gadget.gadgets.particle.freedom.ParticleCanadian; -import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedomFireworks; -import mineplex.core.gadget.gadgets.particle.freedom.ParticleStarSpangled; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -29,9 +20,9 @@ import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilText; import mineplex.core.donation.DonationManager; import mineplex.core.gadget.GadgetManager; -import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFreedom; -import mineplex.core.gadget.gadgets.death.DeathFreedom; -import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFreedom; +import mineplex.core.gadget.gadgets.arrowtrail.freedom.ArrowTrailFreedom; +import mineplex.core.gadget.gadgets.death.freedom.DeathFreedom; +import mineplex.core.gadget.gadgets.doublejump.freedom.DoubleJumpFreedom; import mineplex.core.gadget.gadgets.morph.MorphUncleSam; import mineplex.core.gadget.gadgets.particle.freedom.ParticleFreedom; import mineplex.core.gadget.types.Gadget; @@ -150,7 +141,7 @@ public class TreasurePage extends ShopPageBase int springCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.SPRING.getItemName()); boolean availableChristmas = false; - boolean availableFreedom = true; + boolean availableFreedom = false; boolean availableHaunted = false; boolean availableTrick = false; boolean availableThank = false; @@ -161,8 +152,8 @@ public class TreasurePage extends ShopPageBase List shardLore = new ArrayList<>(); shardLore.add(" "); - shardLore.add(C.cGray + "These seem like they might come in"); - shardLore.add(C.cGray + "handy. Maybe I should collect more!"); + shardLore.add(C.cGray + "This seems like it might come in"); + shardLore.add(C.cGray + "handy. Maybe I can collect more!"); List basicLore = new ArrayList<>(); basicLore.add(" "); @@ -263,36 +254,14 @@ public class TreasurePage extends ShopPageBase freedomLore.add(C.cGray + "carved this chest himself from the wood"); freedomLore.add(C.cGray + "of the apple tree he cut down..."); freedomLore.add(" "); - - if (freedomCount > 0) - { - if (hasAllFreedomItems(getPlayer())) - { - freedomLore.add(C.cWhite + "You own all treasures from this chest."); - } - else - { - freedomLore.add(C.cGreen + "Click to Open!"); - } - } + if (freedomCount > 0 && !hasAllFreedomItems(getPlayer())) + freedomLore.add(C.cGreen + "Click to Open!"); else { - if (!availableFreedom) - { - freedomLore.add(C.cRed + "This item is no longer available!"); - } - else if (hasAllFreedomItems(getPlayer())) - { - freedomLore.add(C.cWhite + "You own all treasures from this chest."); - } - else - { - freedomLore.add(ChatColor.RESET + "Purchase at: " + C.cYellow + "www.mineplex.com/shop"); - } + freedomLore.add(C.cRed + "This item is no longer available!"); } - freedomLore.add(" "); - freedomLore.add(ChatColor.RESET + C.cGreen + getFreedomUnlockedAmount(getPlayer()) + "/18 Unlocked"); + freedomLore.add(ChatColor.RESET + C.cGreen + getFreedomUnlockedAmount(getPlayer()) + "/7 Unlocked"); List omegaLore = new ArrayList<>(); omegaLore.add(" "); @@ -730,7 +699,7 @@ public class TreasurePage extends ShopPageBase public int getFreedomUnlockedAmount(Player player) { if (hasAllFreedomItems(player)) - return 18; + return 7; int amount = 0; Gadget[] gadgets = new Gadget[] { @@ -739,18 +708,7 @@ public class TreasurePage extends ShopPageBase _gadgetManager.getGadget(ArrowTrailFreedom.class), _gadgetManager.getGadget(DoubleJumpFreedom.class), _gadgetManager.getGadget(DeathFreedom.class), - _gadgetManager.getGadget(MorphUncleSam.class), - _gadgetManager.getGadget(ArrowTrailRedWhite.class), - _gadgetManager.getGadget(DeathMapleLeaf.class), - _gadgetManager.getGadget(DoubleJumpMaple.class), - _gadgetManager.getGadget(ParticleAuraNiceness.class), - _gadgetManager.getGadget(ParticleCanadian.class), - _gadgetManager.getGadget(ParticleFreedomFireworks.class), - _gadgetManager.getGadget(ParticleStarSpangled.class), - _gadgetManager.getHatGadget(HatType.AMERICA), - _gadgetManager.getHatGadget(HatType.CANADA), - _gadgetManager.getFlagGadget(FlagType.CANADA), - _gadgetManager.getFlagGadget(FlagType.UNITED_STATES), + _gadgetManager.getGadget(MorphUncleSam.class) }; Mount freedomMount = _gadgetManager.getMountManager().getMount("Freedom Mount"); if (freedomMount != null) diff --git a/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/HubManager.java b/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/HubManager.java index b02d21718..29e6ab472 100644 --- a/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/HubManager.java +++ b/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/HubManager.java @@ -233,7 +233,7 @@ public class HubManager extends MiniPlugin implements IChatMessageFormatter _treasureManager.addTreasureLocation(loc); } - new CosmeticManager(_plugin, clientManager, donationManager, _inventoryManager, _gadgetManager, _mountManager, petManager, _treasureManager, boosterManager, punish); + new CosmeticManager(_plugin, clientManager, donationManager, _inventoryManager, _gadgetManager, _mountManager, petManager, _treasureManager, boosterManager); new MenuManager(_plugin); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java index eb7242bde..bc02c3628 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java @@ -235,7 +235,7 @@ public class HubManager extends MiniClientPlugin implements IChatMess _bonusManager = new BonusManager(plugin, null, playWireManager, clientManager, donationManager, pollManager , npcManager, hologramManager, statsManager, _inventoryManager, petManager, facebookManager, youtubeManager, _gadgetManager, thankManager, "Carl"); _treasureManager = new TreasureManager(_plugin, clientManager, serverStatusManager, donationManager, _inventoryManager, petManager, _gadgetManager, _blockRestore, hologramManager, statsManager, _bonusManager.getRewardManager()); - CosmeticManager cosmeticManager = new CosmeticManager(_plugin, clientManager, donationManager, _inventoryManager, _gadgetManager, _mountManager, petManager, _treasureManager, boosterManager, punish); + CosmeticManager cosmeticManager = new CosmeticManager(_plugin, clientManager, donationManager, _inventoryManager, _gadgetManager, _mountManager, petManager, _treasureManager, boosterManager); _mavericksManager = new MavericksManager(plugin, cosmeticManager, hologramManager, this); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java index 5f75dde80..ebf57b8d0 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java @@ -201,7 +201,7 @@ public class Arcade extends JavaPlugin GadgetManager gadgetManager = new GadgetManager(this, _clientManager, _donationManager, inventoryManager, mountManager, petManager, preferenceManager, disguiseManager, blockRestore, projectileManager, achievementManager, packetHandler, hologramManager, incognito, castleManager); ThankManager thankManager = new ThankManager(this, _clientManager, _donationManager); BoosterManager boosterManager = new BoosterManager(this, _serverConfiguration.getServerGroup().getBoosterGroup(), _clientManager, _donationManager, inventoryManager, thankManager); - CosmeticManager cosmeticManager = new CosmeticManager(this, _clientManager, _donationManager, inventoryManager, gadgetManager, mountManager, petManager, null, boosterManager, punish); + CosmeticManager cosmeticManager = new CosmeticManager(this, _clientManager, _donationManager, inventoryManager, gadgetManager, mountManager, petManager, null, boosterManager); cosmeticManager.setInterfaceSlot(6); gadgetManager.setActiveItemSlot(3); cosmeticManager.disableTeamArmor(); diff --git a/Plugins/mavericks-review-hub/src/mineplex/mavericks/review/Hub.java b/Plugins/mavericks-review-hub/src/mineplex/mavericks/review/Hub.java index 4fbb830fa..ebc01ac9c 100644 --- a/Plugins/mavericks-review-hub/src/mineplex/mavericks/review/Hub.java +++ b/Plugins/mavericks-review-hub/src/mineplex/mavericks/review/Hub.java @@ -138,7 +138,7 @@ public class Hub extends JavaPlugin RewardManager rewardManager = new RewardManager(_clientManager, _donationManager, inventoryManager, petManager, gadgetManager, statsManager); TreasureManager treasureManager = new TreasureManager(this, _clientManager, serverStatusManager, _donationManager, inventoryManager, petManager, gadgetManager, blockRestore, hologramManager, statsManager, rewardManager); CosmeticManager cosmeticManager = new CosmeticManager(this, _clientManager, _donationManager, inventoryManager, gadgetManager, - mountManager, petManager, treasureManager, boosterManager, punish); + mountManager, petManager, treasureManager, boosterManager); cosmeticManager.setInterfaceSlot(7); cosmeticManager.disableTeamArmor(); diff --git a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java index b0df81d54..d4e557763 100644 --- a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java +++ b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java @@ -258,7 +258,7 @@ public class GemHunters extends JavaPlugin GadgetManager gadgetManager = new GadgetManager(this, clientManager, donationManager, inventoryManager, mountManager, petManager, preferenceManager, disguiseManager, blockRestore, projectileManager, achievementManager, packetHandler, hologramManager, incognito, castleManager); ThankManager thankManager = new ThankManager(this, clientManager, donationManager); BoosterManager boosterManager = new BoosterManager(this, null, clientManager, donationManager, inventoryManager, thankManager); - CosmeticManager cosmeticManager = new CosmeticManager(this, clientManager, donationManager, inventoryManager, gadgetManager, mountManager, petManager, null, boosterManager, punish); + CosmeticManager cosmeticManager = new CosmeticManager(this, clientManager, donationManager, inventoryManager, gadgetManager, mountManager, petManager, null, boosterManager); cosmeticManager.setActive(false); cosmeticManager.setHideParticles(true);