From a62ecdb21225e143a75515423d815515c7e4ae18 Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 25 Jan 2017 21:38:58 +0000 Subject: [PATCH 001/133] Custom Bridges and Per player world borders --- .../core/twofactor/TwoFactorAuth.java | 2 +- .../src/nautilus/game/arcade/Arcade.java | 8 +- .../game/games/bridge/BattleCryManager.java | 6 - .../game/arcade/game/games/bridge/Bridge.java | 336 +++++++++++++----- .../bridge/animation/BridgeAnimation.java | 45 +++ .../bridge/animation/BridgeAnimationType.java | 42 +++ .../animation/CustomBridgeAnimation.java | 153 ++++++++ .../bridge/animation/IceBridgeAnimation.java | 79 ++++ .../bridge/animation/LavaBridgeAnimation.java | 84 +++++ .../bridge/animation/WoodBridgeAnimation.java | 129 +++++++ .../game/arcade/game/modules/Module.java | 3 - .../game/modules/WorldBorderModule.java | 116 ++++++ 12 files changed, 898 insertions(+), 105 deletions(-) delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BattleCryManager.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimation.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimationType.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/CustomBridgeAnimation.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/IceBridgeAnimation.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LavaBridgeAnimation.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/WoodBridgeAnimation.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/WorldBorderModule.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/twofactor/TwoFactorAuth.java b/Plugins/Mineplex.Core/src/mineplex/core/twofactor/TwoFactorAuth.java index bc46f5218..59cab85bf 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/twofactor/TwoFactorAuth.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/twofactor/TwoFactorAuth.java @@ -176,7 +176,7 @@ public class TwoFactorAuth extends MiniClientPlugin player.sendMessage(F.main("2FA", "Setting up two-factor authentication.")); } - @EventHandler + //@EventHandler public void onJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); 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 152a6b8d1..82fedec62 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java @@ -157,10 +157,10 @@ public class Arcade extends JavaPlugin Chat chat = new Chat(this, incognito, _clientManager, preferenceManager, achievementManager, serverStatusManager.getCurrentServerName()); new MessageManager(this, incognito, _clientManager, preferenceManager, ignoreManager, punish, friendManager, chat); - SnapshotManager snapshotManager = new SnapshotManager(this, new SnapshotRepository(serverStatusManager.getCurrentServerName(), getLogger())); - ReportManager reportManager = new ReportManager(this, snapshotManager, _clientManager, incognito, punish, serverStatusManager.getRegion(), serverStatusManager.getCurrentServerName(), 1); - new SnapshotPlugin(this, snapshotManager, _clientManager); - new ReportPlugin(this, reportManager); +// SnapshotManager snapshotManager = new SnapshotManager(this, new SnapshotRepository(serverStatusManager.getCurrentServerName(), getLogger())); +// ReportManager reportManager = new ReportManager(this, snapshotManager, _clientManager, incognito, punish, serverStatusManager.getRegion(), serverStatusManager.getCurrentServerName(), 1); +// new SnapshotPlugin(this, snapshotManager, _clientManager); +// new ReportPlugin(this, reportManager); BlockRestore blockRestore = new BlockRestore(this); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BattleCryManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BattleCryManager.java deleted file mode 100644 index 7c7e71ba0..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BattleCryManager.java +++ /dev/null @@ -1,6 +0,0 @@ -package nautilus.game.arcade.game.games.bridge; - -public class BattleCryManager -{ - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java index a6d5d92f3..ac985ad84 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java @@ -1,9 +1,67 @@ package nautilus.game.arcade.game.games.bridge; -import com.google.common.collect.Lists; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +import org.bukkit.ChatColor; +import org.bukkit.Effect; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.Chest; +import org.bukkit.entity.Chicken; +import org.bukkit.entity.Cow; +import org.bukkit.entity.Entity; +import org.bukkit.entity.FallingBlock; +import org.bukkit.entity.Item; +import org.bukkit.entity.Pig; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockFormEvent; +import org.bukkit.event.block.BlockFromToEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.entity.EntityChangeBlockEvent; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntitySpawnEvent; +import org.bukkit.event.entity.ItemSpawnEvent; +import org.bukkit.event.inventory.PrepareItemCraftEvent; +import org.bukkit.event.player.PlayerBucketEmptyEvent; +import org.bukkit.event.player.PlayerBucketFillEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.inventory.CraftingInventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.metadata.FixedMetadataValue; +import org.bukkit.util.Vector; + import mineplex.core.common.Rank; -import mineplex.core.common.util.*; +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.MapUtil; +import mineplex.core.common.util.NautHashMap; +import mineplex.core.common.util.UtilAction; +import mineplex.core.common.util.UtilAlg; +import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilEvent; import mineplex.core.common.util.UtilEvent.ActionType; +import mineplex.core.common.util.UtilGear; +import mineplex.core.common.util.UtilInv; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilTextMiddle; +import mineplex.core.common.util.UtilTime; +import mineplex.core.common.util.UtilWorld; import mineplex.core.explosion.ExplosionEvent; import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.updater.UpdateType; @@ -17,35 +75,27 @@ import nautilus.game.arcade.events.PlayerDeathOutEvent; import nautilus.game.arcade.game.Game; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.TeamGame; -import nautilus.game.arcade.game.games.bridge.kits.*; +import nautilus.game.arcade.game.games.bridge.animation.BridgeAnimation; +import nautilus.game.arcade.game.games.bridge.animation.BridgeAnimationType; +import nautilus.game.arcade.game.games.bridge.animation.CustomBridgeAnimation; +import nautilus.game.arcade.game.games.bridge.kits.KitApple; +import nautilus.game.arcade.game.games.bridge.kits.KitArcher; +import nautilus.game.arcade.game.games.bridge.kits.KitBerserker; +import nautilus.game.arcade.game.games.bridge.kits.KitBomber; +import nautilus.game.arcade.game.games.bridge.kits.KitBrawler; +import nautilus.game.arcade.game.games.bridge.kits.KitDestructor; +import nautilus.game.arcade.game.games.bridge.kits.KitMammoth; +import nautilus.game.arcade.game.games.bridge.kits.KitMiner; +import nautilus.game.arcade.game.modules.WorldBorderModule; import nautilus.game.arcade.game.modules.compass.CompassModule; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.ore.OreHider; import nautilus.game.arcade.ore.OreObsfucation; -import nautilus.game.arcade.stats.*; -import org.bukkit.*; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.block.Chest; -import org.bukkit.entity.*; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockFormEvent; -import org.bukkit.event.block.BlockFromToEvent; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.entity.EntityChangeBlockEvent; -import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntitySpawnEvent; -import org.bukkit.event.entity.ItemSpawnEvent; -import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.*; -import org.bukkit.inventory.CraftingInventory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.metadata.FixedMetadataValue; -import org.bukkit.util.Vector; - -import java.util.*; +import nautilus.game.arcade.stats.BridgesSniperStatTracker; +import nautilus.game.arcade.stats.DeathBomberStatTracker; +import nautilus.game.arcade.stats.FoodForTheMassesStatTracker; +import nautilus.game.arcade.stats.KillFastStatTracker; +import nautilus.game.arcade.stats.TntMinerStatTracker; public class Bridge extends TeamGame implements OreObsfucation { @@ -54,10 +104,21 @@ public class Bridge extends TeamGame implements OreObsfucation */ private static final Material[] PLAYER_DROP_DELAY_MATERIALS = new Material[] { Material.LOG, Material.LOG_2, Material.IRON_ORE, Material.DIAMOND_ORE, Material.COAL_ORE, Material.GOLD_ORE, Material.WORKBENCH, Material.FURNACE }; - //Bridge Timer - private int _bridgeTime = 600000; + /** + * The number of milliseconds from the game start time til the bridges should be built. + */ + private static final long BRIDGE_TIME = TimeUnit.MINUTES.toMillis(10); + + /** + * The number of ticks after the prepare state that we wait before setting the world border for the players. Just to make sure they are in the correct world. + */ + private static final int WORLD_BORDER_PREPARE_TICKS = 20; + + //Bridge + private long _bridgeTime = BRIDGE_TIME; private boolean _bridgesDown = false; - + private BridgeAnimation _animation; + //Wood Bridge private ArrayList _woodBridge = new ArrayList(); private HashMap _woodBridgeBlocks = null; @@ -103,8 +164,8 @@ public class Bridge extends TeamGame implements OreObsfucation private boolean _tournament; private HashMap _tournamentKills = new HashMap(); private long _tournamentKillMessageTimer = 0; - + @SuppressWarnings("unchecked") public Bridge(ArcadeManager manager) { this(manager, GameType.Bridge); @@ -154,28 +215,6 @@ public class Bridge extends TeamGame implements OreObsfucation "The last team alive wins!" }); - List kits = Lists.newArrayList(GetKits()); - List finalKits = Lists.newArrayList(kits); - - boolean foundBrawler = false; - for(int i = 0; i < kits.size(); i++) - { - Kit kit = kits.get(i); - if(kit.GetName().equalsIgnoreCase("Brawler")) - { - if(!foundBrawler) - { - foundBrawler = true; - } - else - { - finalKits.remove(i); - } - } - } - - setKits(finalKits.toArray(new Kit[finalKits.size()])); - _ore = new OreHider(); // Flags @@ -183,7 +222,7 @@ public class Bridge extends TeamGame implements OreObsfucation Manager.GetExplosion().SetLiquidDamage(false); - this.StrictAntiHack = true; + StrictAntiHack = true; DamageSelf = true; @@ -206,10 +245,6 @@ public class Bridge extends TeamGame implements OreObsfucation WorldWaterDamage = 0; WorldBoundaryKill = false; - new CompassModule() - .setGiveCompassToAlive(true) - .register(this); - DeathDropItems = true; GemMultiplier = 2.5; @@ -229,18 +264,26 @@ public class Bridge extends TeamGame implements OreObsfucation "Killing yourself counts as -1 team kill.", "Team with the most kills wins!" }; + + _tournament = true; } - - _tournament = Manager.IsTournamentServer(); + new CompassModule() + .setGiveCompassToAlive(true) + .register(this); + + new WorldBorderModule().register(this); } + //TODO move this lower and use EntityDamage @EventHandler public void PlayerOut(final PlayerDeathOutEvent event) { if (_bridgesDown) + { return; - + } + Player player = event.GetPlayer(); if (!_usedLife.contains(player.getName())) @@ -253,11 +296,78 @@ public class Bridge extends TeamGame implements OreObsfucation } } + @EventHandler + public void prepare(GameStateChangeEvent event) + { + if (event.GetState() != GameState.Prepare) + { + return; + } + + //Delay this so that we are 100% sure people are in the world. + Manager.runSyncLater(() -> { + + WorldBorderModule borderModule = getModule(WorldBorderModule.class); + boolean oldWay = WorldData.GetCustomLocs("BORDER").isEmpty() || WorldData.GetCustomLocs("BORDER CENTER").isEmpty(); + +// if (!oldWay) +// { +// // Step 1 - Get the vector offset between the spectator location and the center of the border +// Location center = WorldData.GetCustomLocs("BORDER").get(0); +// +// Vector offset = center.subtract(SpectatorSpawn.toVector()).toVector(); +// } + + // Here we do some calculations for per player world borders + for (GameTeam team : GetTeamList()) + { + if (oldWay) + { + // If this is an old map or the builders haven't done it properly we can use this more of an estimate of the border size + // Step 1 - Get the average location of the spawns, we will assume this is the centre of the island + Location center = UtilAlg.getAverageLocation(team.GetSpawns()); + + // Step 2 - Calculate an estimate for the size of the border. We'll go with half but the setSize uses the radius so it works out the same to leave it like this + double distToCenter = UtilMath.offset2d(SpectatorSpawn, center); + + // Step 3 - Send the setCenter and setSize packets to the team members + for (Player player : team.GetPlayers(true)) + { + borderModule.setCenter(player, center); + borderModule.setSize(player, distToCenter); + } + } +// else +// { +// // Step 1 - Get the vector offset between the spectator location and the center of the border +// Location edge = WorldData.GetCustomLocs("BORDER").get(0); +// Location center = WorldData.GetCustomLocs("BORDER CENTER").get(0); +// +// Vector offset = center.subtract(SpectatorSpawn.toVector()).toVector(); +// +// // Step 2 - Calculate the distance between the the two border data points +// // Multiple by 2 because it is a radius +// double borderSize = UtilMath.offset2d(edge, center) * 2; +// +// // Step 3 - Send the setCenter and setSize packets to the team members +// for (Player player : team.GetPlayers(true)) +// { +// borderModule.setCenter(player, center); +// borderModule.setSize(player, borderSize); +// } +// } + } + + }, WORLD_BORDER_PREPARE_TICKS); + } + @EventHandler(priority = EventPriority.MONITOR) - public void GameStateChange(GameStateChangeEvent event) + public void live(GameStateChangeEvent event) { if (event.GetState() != GameState.Live) + { return; + } if (!WorldData.GetCustomLocs("WATER_DAMAGE").isEmpty()) { @@ -266,19 +376,47 @@ public class Bridge extends TeamGame implements OreObsfucation if (WorldWaterDamage > 0) { - if (WorldData.MapName.equals("Volcanic Islands")) + String name = WorldData.MapName; + + if (name.equals("Volcanic Islands")) + { UtilTextMiddle.display(C.cRed + "Warning", "Water is Boiling Hot", 10, 60, 20); + } else if (WorldData.MapName.equals("Icelands")) + { UtilTextMiddle.display(C.cRed + "Warning", "Water is Freezing Cold", 10, 60, 20); + } else + { UtilTextMiddle.display(C.cRed + "Warning", "Water is Deadly", 10, 60, 20); + } } } - //parse @Override public void ParseData() { + // Now we need to decide on what bridge animation. + typeLoop : for (BridgeAnimationType type : BridgeAnimationType.values()) + { + for (String colours : type.getColoursUsed()) + { + if (WorldData.GetDataLocs(colours).isEmpty()) + { + continue typeLoop; + } + } + + _animation = type.createInstance(this); + _animation.onParse(); + } + + if (_animation == null) + { + _animation = new CustomBridgeAnimation(this); + _animation.onParse(); + } + ParseLavaBridge(); ParseWoodBridge(); ParseIceBridge(); @@ -403,8 +541,6 @@ public class Bridge extends TeamGame implements OreObsfucation } } - - public void ParseOre(ArrayList teamOre) { int coal = (int) ((teamOre.size() / 32d) * _oreDensity); @@ -703,36 +839,49 @@ public class Bridge extends TeamGame implements OreObsfucation @EventHandler public void BridgeBuild(UpdateEvent event) { - if (!IsLive()) + if (!IsLive() || !UtilTime.elapsed(GetStateTime(), _bridgeTime)) + { return; - - if (event.getType() != UpdateType.FASTEST) + } + + if (_animation != null) + { + _animation.onUpdate(event.getType()); + } + + if (event.getType() != UpdateType.FAST) + { return; - - if (!UtilTime.elapsed(this.GetStateTime(), _bridgeTime)) - return; - + } + if (!_bridgesDown) { - Manager.GetExplosion().SetLiquidDamage(true); - this.Announce(C.cRed + C.Bold + "ALERT: " + ChatColor.RESET + C.Bold + "THE BRIDGES ARE SPAWNING!"); - } - - _bridgesDown = true; - - for (Kit kit : this.GetKits()) - { - if (kit instanceof KitDestructor) + _bridgesDown = true; + + WorldBorderModule borderModule = getModule(WorldBorderModule.class); + + for (Player player : GetPlayers(true)) { - ((KitDestructor)kit).SetEnabled(true); + borderModule.setSize(player, 1000); + } + + Manager.GetExplosion().SetLiquidDamage(true); + Announce(C.cRed + C.Bold + "ALERT: " + ChatColor.RESET + C.Bold + "THE BRIDGES ARE SPAWNING!"); + + for (Kit kit : GetKits()) + { + if (kit instanceof KitDestructor) + { + ((KitDestructor)kit).SetEnabled(true); + } } } - - BuildWood(); - BuildLava(); - BuildIce(); - BuildLillyPad(); - buildMushroom(); + +// BuildWood(); +// BuildLava(); +// BuildIce(); +// BuildLillyPad(); +// buildMushroom(); } protected void BuildLava() @@ -1515,7 +1664,7 @@ public class Bridge extends TeamGame implements OreObsfucation else { Scoreboard.write(C.cYellow + C.Bold + "Time Left"); - Scoreboard.write(UtilTime.MakeStr(5400000 - (System.currentTimeMillis() - this.GetStateTime()), 0)); + Scoreboard.write(UtilTime.MakeStr(GameTimeout - (System.currentTimeMillis() - GetStateTime()), 0)); } Scoreboard.draw(); @@ -1923,7 +2072,7 @@ public class Bridge extends TeamGame implements OreObsfucation _ore.ToggleVisibility(); if (Manager.GetClients().hasRank(event.getPlayer(), Rank.ADMIN) && event.getMessage().contains("/bridge")) - _bridgeTime = 30000; + _bridgeTime = 3000; } @EventHandler @@ -1961,6 +2110,11 @@ public class Bridge extends TeamGame implements OreObsfucation return _chestLoot; } + public HashSet getBridgeParts() + { + return _bridgeParts; + } + public boolean bridgesDown() { return _bridgesDown; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimation.java new file mode 100644 index 000000000..8c3496f10 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimation.java @@ -0,0 +1,45 @@ +package nautilus.game.arcade.game.games.bridge.animation; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; + +import mineplex.core.updater.UpdateType; +import nautilus.game.arcade.game.games.bridge.Bridge; +import nautilus.game.arcade.game.games.bridge.BridgePart; +import nautilus.game.arcade.world.WorldData; + +public abstract class BridgeAnimation +{ + + public static final int AVERAGE_BRIDGE_BLOCKS = 3000; + + protected final Bridge _bridge; + protected final WorldData _worldData; + + public BridgeAnimation(Bridge bridge) + { + _bridge = bridge; + _worldData = bridge.WorldData; + } + + public abstract void onParse(); + + public abstract void onUpdate(UpdateType type); + + public void registerBridgePart(BridgePart part) + { + _bridge.getBridgeParts().add(part); + } + + public boolean isAir(Location location) + { + return isAir(location.getBlock()); + } + + public boolean isAir(Block block) + { + return block.getType() == Material.AIR; + } + +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimationType.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimationType.java new file mode 100644 index 000000000..bf2207187 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimationType.java @@ -0,0 +1,42 @@ +package nautilus.game.arcade.game.games.bridge.animation; + +import nautilus.game.arcade.game.games.bridge.Bridge; + +public enum BridgeAnimationType +{ + + WOOD(WoodBridgeAnimation.class, "BROWN", "GRAY"), + ICE(IceBridgeAnimation.class, "LIGHT_BLUE"), + LAVA(LavaBridgeAnimation.class, "BLACK", "RED", "ORANGE") + + ; + + private final Class _clazz; + private final String[] _coloursUsed; + + private BridgeAnimationType(Class clazz, String... coloursUsed) + { + _clazz = clazz; + _coloursUsed = coloursUsed; + } + + public BridgeAnimation createInstance(Bridge bridge) + { + try + { + return _clazz.cast(_clazz.getConstructor(Bridge.class).newInstance(bridge)); + } + catch (Exception e) + { + e.printStackTrace(); + } + + return null; + } + + public String[] getColoursUsed() + { + return _coloursUsed; + } + +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/CustomBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/CustomBridgeAnimation.java new file mode 100644 index 000000000..921676590 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/CustomBridgeAnimation.java @@ -0,0 +1,153 @@ +package nautilus.game.arcade.game.games.bridge.animation; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.Block; + +import mineplex.core.blockrestore.BlockRestore; +import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilParticle.ParticleType; +import mineplex.core.common.util.UtilParticle.ViewDist; +import mineplex.core.updater.UpdateType; +import nautilus.game.arcade.game.games.bridge.Bridge; + +public class CustomBridgeAnimation extends BridgeAnimation +{ + + private static final String REGION_KEY = "BRIDGE"; + private static final String BRIDGE_DATA_KEY = "CUSTOM_BRIDGE"; + private static final double RATE = 0.5; + + private final BlockRestore _restore; + private final Map _bridgeBlocks; + + private int[] _blockIds; + + private double _maxDistance; + private double _minDistance; + + public CustomBridgeAnimation(Bridge bridge) + { + super(bridge); + + _restore = bridge.getArcadeManager().GetBlockRestore(); + _bridgeBlocks = new HashMap<>(AVERAGE_BRIDGE_BLOCKS); + } + + @Override + public void onParse() + { + _maxDistance = 0; + + for (String key : _worldData.GetAllCustomLocs().keySet()) + { + if (!key.startsWith(BRIDGE_DATA_KEY)) + { + continue; + } + + String[] split = key.split(" "); + int[] blockIds = new int[split.length - 1]; + + for (int i = 1; i < split.length; i++) + { + try + { + blockIds[i - 1] = Integer.parseInt(split[i]); + } + catch (NumberFormatException e) + { + continue; + } + } + + _blockIds = blockIds; + } + + for (String key : _worldData.GetAllCustomLocs().keySet()) + { + if (!key.startsWith(REGION_KEY)) + { + continue; + } + + List locations = _worldData.GetCustomLocs(key); + + if (locations.size() < 2) + { + continue; + } + + for (Block block : UtilBlock.getInBoundingBox(locations.get(0), locations.get(1))) + { + boolean shouldAdd = false; + + for (int id : _blockIds) + { + if (block.getTypeId() == id) + { + shouldAdd = true; + break; + } + } + + if (!shouldAdd) + { + continue; + } + + double dist = UtilMath.offset2d(block.getLocation(), _bridge.GetSpectatorLocation()); + + if (dist > _maxDistance) + { + _maxDistance = dist; + } + + _restore.add(block, Material.AIR.getId(), (byte) 0, Integer.MAX_VALUE); + _bridgeBlocks.put(block.getLocation(), dist); + } + } + + _minDistance = _maxDistance; + } + + @Override + public void onUpdate(UpdateType type) + { + if (type != UpdateType.FAST) + { + return; + } + + _minDistance -= RATE; + + Iterator iterator = _bridgeBlocks.keySet().iterator(); + + while (iterator.hasNext()) + { + Location location = iterator.next(); + double dist = _bridgeBlocks.get(location); + + if (dist > _minDistance) + { + Block block = location.getBlock(); + + _restore.restore(block); + UtilParticle.PlayParticleToAll(ParticleType.FIREWORKS_SPARK, block.getLocation().add(0.5, 1.5, 0.5), 0.25F, 0.25F, 0.25F, 0.05F, 5, ViewDist.NORMAL); + + location.getWorld().playSound(location, Sound.ZOMBIE_UNFECT, 1.5F, 1); + + iterator.remove(); + } + } + } + +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/IceBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/IceBridgeAnimation.java new file mode 100644 index 000000000..6b555e861 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/IceBridgeAnimation.java @@ -0,0 +1,79 @@ +package nautilus.game.arcade.game.games.bridge.animation; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; + +import mineplex.core.common.util.MapUtil; +import mineplex.core.common.util.UtilAlg; +import mineplex.core.updater.UpdateType; +import nautilus.game.arcade.game.games.bridge.Bridge; + +public class IceBridgeAnimation extends BridgeAnimation +{ + + private List _iceBridge; + + public IceBridgeAnimation(Bridge bridge) + { + super(bridge); + + _iceBridge = new ArrayList<>(AVERAGE_BRIDGE_BLOCKS); + } + + @Override + public void onParse() + { + _iceBridge = _worldData.GetDataLocs("LIGHT_BLUE"); + } + + @Override + public void onUpdate(UpdateType type) + { + if (type != UpdateType.FASTEST || _iceBridge.isEmpty()) + { + return; + } + + int attempts = 0; + int done = 0; + + while (done < 5 && attempts < 400) + { + attempts++; + + // Random Block + Location loc = UtilAlg.Random(_iceBridge); + + Block block = loc.getBlock().getRelative(BlockFace.DOWN); + + if (!block.isLiquid()) + { + continue; + } + + if (block.getRelative(BlockFace.NORTH).isLiquid() && block.getRelative(BlockFace.EAST).isLiquid() && block.getRelative(BlockFace.SOUTH).isLiquid() && block.getRelative(BlockFace.WEST).isLiquid()) + { + continue; + } + + _iceBridge.remove(loc); + + if (Math.random() > 0.25) + { + MapUtil.QuickChangeBlockAt(block.getLocation(), Material.PACKED_ICE); + } + else + { + MapUtil.QuickChangeBlockAt(block.getLocation(), Material.ICE); + } + + done++; + } + } + +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LavaBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LavaBridgeAnimation.java new file mode 100644 index 000000000..2cf015470 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LavaBridgeAnimation.java @@ -0,0 +1,84 @@ +package nautilus.game.arcade.game.games.bridge.animation; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.FallingBlock; + +import mineplex.core.common.util.UtilMath; +import mineplex.core.updater.UpdateType; +import nautilus.game.arcade.game.games.bridge.Bridge; +import nautilus.game.arcade.game.games.bridge.BridgePart; + +public class LavaBridgeAnimation extends BridgeAnimation +{ + + private List _lavaSource; + private List _lavaBridge; + + public LavaBridgeAnimation(Bridge bridge) + { + super(bridge); + + _lavaSource = new ArrayList<>(); + _lavaBridge = new ArrayList<>(AVERAGE_BRIDGE_BLOCKS); + } + + @Override + public void onParse() + { + for (Location loc : _worldData.GetDataLocs("RED")) + { + _lavaBridge.add(loc.getBlock().getLocation()); + } + + for (Location loc : _worldData.GetDataLocs("ORANGE")) + { + _lavaBridge.add(loc.getBlock().getLocation()); + _lavaBridge.add(loc.getBlock().getRelative(BlockFace.UP).getLocation()); + } + + _lavaSource = _worldData.GetDataLocs("BLACK"); + } + + @Override + public void onUpdate(UpdateType type) + { + if (type != UpdateType.FASTEST) + { + return; + } + + for (int i = 0; i < 3; i++) + { + if (!_lavaBridge.isEmpty() && !_lavaSource.isEmpty()) + { + // Random Block + Location bestLoc = _lavaBridge.get(UtilMath.r(_lavaBridge.size())); + + if (bestLoc.getBlock().getRelative(BlockFace.DOWN).isLiquid()) + { + continue; + } + + _lavaBridge.remove(bestLoc); + + Location source = _lavaSource.get(UtilMath.r(_lavaSource.size())); + + // Create Part + FallingBlock block = bestLoc.getWorld().spawnFallingBlock(source, Material.NETHERRACK, (byte) 0); + BridgePart part = new BridgePart(block, bestLoc, true); + + registerBridgePart(part); + + // Sound + source.getWorld().playSound(source, Sound.EXPLODE, 5f * (float) Math.random(), 0.5f + (float) Math.random()); + } + } + } + +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/WoodBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/WoodBridgeAnimation.java new file mode 100644 index 000000000..ecafe937b --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/WoodBridgeAnimation.java @@ -0,0 +1,129 @@ +package nautilus.game.arcade.game.games.bridge.animation; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.FallingBlock; +import org.bukkit.util.Vector; + +import mineplex.core.updater.UpdateType; +import nautilus.game.arcade.game.games.bridge.Bridge; +import nautilus.game.arcade.game.games.bridge.BridgePart; + +public class WoodBridgeAnimation extends BridgeAnimation +{ + + private static final BlockFace[] FACES = new BlockFace[] { BlockFace.NORTH, BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST }; + private static final int Y_MOD = 30; + + private final Map _woodBridge; + + public WoodBridgeAnimation(Bridge bridge) + { + super(bridge); + + _woodBridge = new HashMap<>(AVERAGE_BRIDGE_BLOCKS); + } + + @Override + public void onParse() + { + onParse(_worldData.GetDataLocs("BROWN"), false); + onParse(_worldData.GetDataLocs("GRAY"), true); + } + + public void onParse(List locations, boolean aboveBelow) + { + for (Location location : locations) + { + if (aboveBelow) + { + _woodBridge.put(location.getBlock().getRelative(BlockFace.UP).getLocation(), Material.FENCE); + _woodBridge.put(location, Material.LOG); + } + else + { + _woodBridge.put(location, Material.WOOD_STEP); + } + } + } + + @Override + public void onUpdate(UpdateType type) + { + if (type != UpdateType.FASTEST) + { + return; + } + + List toDo = new ArrayList<>(); + + for (Location location : _woodBridge.keySet()) + { + Material material = _woodBridge.get(location); + + if (material == Material.LOG) + { + int adjacent = 0; + + for (BlockFace face : FACES) + { + if (!isAir(location.getBlock().getRelative(face))) + { + adjacent++; + } + } + if (adjacent > 0) + { + toDo.add(location); + } + } + else if (material == Material.FENCE) + { + if (!isAir(location.getBlock().getRelative(BlockFace.DOWN))) + { + toDo.add(location); + } + } + else if (material == Material.WOOD_STEP) + { + int adjacent = 0; + + for (BlockFace face : FACES) + { + if (!isAir(location.getBlock().getRelative(face))) + { + adjacent++; + } + } + if (adjacent > 0) + { + toDo.add(location); + } + } + } + + if (toDo.size() == 0) + { + return; + } + + for (Location location : toDo) + { + Material material = _woodBridge.remove(location); + Location source = location.clone().add(0, Y_MOD, 0); + + // Create Part + FallingBlock block = location.getWorld().spawnFallingBlock(source, material, (byte) 0); + block.setVelocity(new Vector(0, -1, 0)); + BridgePart part = new BridgePart(block, location, false); + + registerBridgePart(part); + } + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/Module.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/Module.java index 2aed67d39..638d2620b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/Module.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/Module.java @@ -1,10 +1,7 @@ package nautilus.game.arcade.game.modules; import com.google.gson.JsonElement; -import mineplex.core.Managers; -import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.game.Game; -import nautilus.game.arcade.game.TeamGame; import org.bukkit.event.Listener; /** diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/WorldBorderModule.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/WorldBorderModule.java new file mode 100644 index 000000000..6a1f13bae --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/WorldBorderModule.java @@ -0,0 +1,116 @@ +package nautilus.game.arcade.game.modules; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.bukkit.Location; +import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; + +import mineplex.core.common.Pair; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.packethandler.IPacketHandler; +import mineplex.core.packethandler.PacketHandler; +import mineplex.core.packethandler.PacketInfo; +import nautilus.game.arcade.events.GameStateChangeEvent; +import nautilus.game.arcade.game.Game.GameState; +import net.minecraft.server.v1_8_R3.PacketPlayOutWorldBorder; +import net.minecraft.server.v1_8_R3.PacketPlayOutWorldBorder.EnumWorldBorderAction; +import net.minecraft.server.v1_8_R3.WorldBorder; + +public class WorldBorderModule extends Module implements IPacketHandler +{ + + private PacketHandler _packetHandler; + private Map _sizeToSet; + private Map> _centerToSet; + + @Override + protected void setup() + { + _packetHandler = getGame().getArcadeManager().getPacketHandler(); + _sizeToSet = new HashMap<>(); + _centerToSet = new HashMap<>(); + } + + @EventHandler(priority = EventPriority.LOWEST) + public void live(GameStateChangeEvent event) + { + if (event.GetState() != GameState.Prepare) + { + return; + } + + _packetHandler.addPacketHandler(this, PacketPlayOutWorldBorder.class); + } + + @Override + public void handle(PacketInfo packetInfo) + { + UUID player = packetInfo.getPlayer().getUniqueId(); + PacketPlayOutWorldBorder packet = (PacketPlayOutWorldBorder) packetInfo.getPacket(); + + try + { + Field actionField = packet.getClass().getDeclaredField("a"); + actionField.setAccessible(true); + EnumWorldBorderAction action = (EnumWorldBorderAction) actionField.get(packet); + + if (action == EnumWorldBorderAction.SET_SIZE) + { + Field sizeField = packet.getClass().getDeclaredField("e"); + sizeField.setAccessible(true); + double newSize = _sizeToSet.get(player); + + sizeField.set(packet, newSize); + } + else if (action == EnumWorldBorderAction.SET_CENTER) + { + Field xField = packet.getClass().getDeclaredField("c"); + Field zField = packet.getClass().getDeclaredField("d"); + + xField.setAccessible(true); + zField.setAccessible(true); + + Pair pair = _centerToSet.get(player); + + xField.set(packet, pair.getLeft()); + zField.set(packet, pair.getRight()); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + @Override + public void cleanup() + { + _packetHandler.removePacketHandler(this); + } + + public void setSize(Player player, double size) + { + _sizeToSet.put(player.getUniqueId(), size); + + sendPacket(player, EnumWorldBorderAction.SET_SIZE); + } + + public void setCenter(Player player, Location location) + { + _centerToSet.put(player.getUniqueId(), Pair.create(location.getX(), location.getZ())); + + sendPacket(player, EnumWorldBorderAction.SET_CENTER); + } + + private void sendPacket(Player player, EnumWorldBorderAction action) + { + WorldBorder border = ((CraftWorld) player.getWorld()).getHandle().getWorldBorder(); + UtilPlayer.sendPacket(player, new PacketPlayOutWorldBorder(border, action)); + } +} From 13806a49d2a89b480acc172309e973133c655c22 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 3 Feb 2017 20:33:21 +0000 Subject: [PATCH 002/133] Bridges bug fixes --- .../game/arcade/game/games/bridge/Bridge.java | 581 ++++-------------- .../bridge/animation/BridgeAnimationType.java | 4 +- .../animation/LillyPadBridgeAnimation.java | 65 ++ .../animation/MushroomBridgeAnimation.java | 107 ++++ .../game/games/bridge/kits/KitDestructor.java | 2 +- .../games/bridge/modes/OverpoweredBridge.java | 36 +- .../game/arcade/kit/perks/PerkDestructor.java | 4 +- .../stats/FoodForTheMassesStatTracker.java | 6 + 8 files changed, 319 insertions(+), 486 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LillyPadBridgeAnimation.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/MushroomBridgeAnimation.java diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java index ac985ad84..813f8349a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java @@ -13,14 +13,12 @@ import org.bukkit.Effect; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.Sound; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Chest; import org.bukkit.entity.Chicken; import org.bukkit.entity.Cow; import org.bukkit.entity.Entity; -import org.bukkit.entity.FallingBlock; import org.bukkit.entity.Item; import org.bukkit.entity.Pig; import org.bukkit.entity.Player; @@ -31,9 +29,11 @@ import org.bukkit.event.block.BlockFormEvent; import org.bukkit.event.block.BlockFromToEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.entity.EntityChangeBlockEvent; +import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntitySpawnEvent; import org.bukkit.event.entity.ItemSpawnEvent; +import org.bukkit.event.inventory.CraftItemEvent; import org.bukkit.event.inventory.PrepareItemCraftEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent; import org.bukkit.event.player.PlayerBucketFillEvent; @@ -48,7 +48,6 @@ import org.bukkit.util.Vector; import mineplex.core.common.Rank; import mineplex.core.common.util.C; import mineplex.core.common.util.F; -import mineplex.core.common.util.MapUtil; import mineplex.core.common.util.NautHashMap; import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilAlg; @@ -71,7 +70,6 @@ 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.PlayerDeathOutEvent; import nautilus.game.arcade.game.Game; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.TeamGame; @@ -89,6 +87,8 @@ import nautilus.game.arcade.game.games.bridge.kits.KitMiner; import nautilus.game.arcade.game.modules.WorldBorderModule; import nautilus.game.arcade.game.modules.compass.CompassModule; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.kit.Perk; +import nautilus.game.arcade.kit.perks.PerkDestructor; import nautilus.game.arcade.ore.OreHider; import nautilus.game.arcade.ore.OreObsfucation; import nautilus.game.arcade.stats.BridgesSniperStatTracker; @@ -118,25 +118,6 @@ public class Bridge extends TeamGame implements OreObsfucation private long _bridgeTime = BRIDGE_TIME; private boolean _bridgesDown = false; private BridgeAnimation _animation; - - //Wood Bridge - private ArrayList _woodBridge = new ArrayList(); - private HashMap _woodBridgeBlocks = null; - - //Lava Bridge - private ArrayList _lavaBridge = new ArrayList(); - private ArrayList _lavaSource = new ArrayList(); - - //Lilly Pad Bridge - private NautHashMap _lillyPads = new NautHashMap(); - - //Mushrooms - private NautHashMap _mushroomStem = new NautHashMap(); - private NautHashMap _mushroomTop = new NautHashMap(); - private boolean _stemsGrown = false; - - //Ice - private ArrayList _iceBridge = new ArrayList(); private HashSet _bridgeParts = new HashSet(); @@ -273,26 +254,20 @@ public class Bridge extends TeamGame implements OreObsfucation .register(this); new WorldBorderModule().register(this); - } - - //TODO move this lower and use EntityDamage - @EventHandler - public void PlayerOut(final PlayerDeathOutEvent event) - { - if (_bridgesDown) - { - return; - } - Player player = event.GetPlayer(); - - if (!_usedLife.contains(player.getName())) + // So that we can be 110% sure + for (Kit kit : GetKits()) { - _usedLife.add(player.getName()); - - UtilPlayer.message(player, F.main("Game", "You used your " + F.elem(C.cAqua + "Early Game Revive") + ".")); - - event.setCancelled(true); + if (kit instanceof KitDestructor) + { + for (Perk perk : kit.GetPerks()) + { + ((PerkDestructor) perk).setEnabled(false); + break; + } + + break; + } } } @@ -308,54 +283,25 @@ public class Bridge extends TeamGame implements OreObsfucation Manager.runSyncLater(() -> { WorldBorderModule borderModule = getModule(WorldBorderModule.class); - boolean oldWay = WorldData.GetCustomLocs("BORDER").isEmpty() || WorldData.GetCustomLocs("BORDER CENTER").isEmpty(); - -// if (!oldWay) -// { -// // Step 1 - Get the vector offset between the spectator location and the center of the border -// Location center = WorldData.GetCustomLocs("BORDER").get(0); -// -// Vector offset = center.subtract(SpectatorSpawn.toVector()).toVector(); -// } // Here we do some calculations for per player world borders for (GameTeam team : GetTeamList()) { - if (oldWay) + // If this is an old map or the builders haven't done it properly we can use this more of an estimate of the border size + // Step 1 - Get the average location of the spawns, we will assume this is the centre of the island + Location center = UtilAlg.getAverageLocation(team.GetSpawns()); + center.add(UtilAlg.getTrajectory(SpectatorSpawn, center).multiply(20)); + + // Step 2 - Calculate an estimate for the size of the border. We'll go with half but the setSize uses the radius so it works out the same to leave it like this + double distToCenter = UtilMath.offset2d(SpectatorSpawn, center); + + // Step 3 - Send the setCenter and setSize packets to the team members + for (Player player : team.GetPlayers(true)) { - // If this is an old map or the builders haven't done it properly we can use this more of an estimate of the border size - // Step 1 - Get the average location of the spawns, we will assume this is the centre of the island - Location center = UtilAlg.getAverageLocation(team.GetSpawns()); - - // Step 2 - Calculate an estimate for the size of the border. We'll go with half but the setSize uses the radius so it works out the same to leave it like this - double distToCenter = UtilMath.offset2d(SpectatorSpawn, center); - - // Step 3 - Send the setCenter and setSize packets to the team members - for (Player player : team.GetPlayers(true)) - { - borderModule.setCenter(player, center); - borderModule.setSize(player, distToCenter); - } + borderModule.setCenter(player, center); + borderModule.setSize(player, distToCenter * 0.6); } -// else -// { -// // Step 1 - Get the vector offset between the spectator location and the center of the border -// Location edge = WorldData.GetCustomLocs("BORDER").get(0); -// Location center = WorldData.GetCustomLocs("BORDER CENTER").get(0); -// -// Vector offset = center.subtract(SpectatorSpawn.toVector()).toVector(); -// -// // Step 2 - Calculate the distance between the the two border data points -// // Multiple by 2 because it is a radius -// double borderSize = UtilMath.offset2d(edge, center) * 2; -// -// // Step 3 - Send the setCenter and setSize packets to the team members -// for (Player player : team.GetPlayers(true)) -// { -// borderModule.setCenter(player, center); -// borderModule.setSize(player, borderSize); -// } -// } + } }, WORLD_BORDER_PREPARE_TICKS); @@ -417,12 +363,6 @@ public class Bridge extends TeamGame implements OreObsfucation _animation.onParse(); } - ParseLavaBridge(); - ParseWoodBridge(); - ParseIceBridge(); - ParseLillyPad(); - ParseMushrooms(); - ParseChests(); ParseOre(WorldData.GetCustomLocs("73")); // Red @@ -761,81 +701,6 @@ public class Bridge extends TeamGame implements OreObsfucation } } - protected void ParseWoodBridge() { - _woodBridge = new ArrayList(); - - // Load Wood In - for (Location loc : WorldData.GetDataLocs("BROWN")) { - _woodBridge.add(loc.getBlock().getLocation()); - } - - for (Location loc : WorldData.GetDataLocs("GRAY")) { - _woodBridge.add(loc.getBlock().getLocation()); - _woodBridge.add(loc.getBlock().getRelative(BlockFace.UP) - .getLocation()); - } - - // Determine Wood Block - _woodBridgeBlocks = new HashMap(); - - for (Location loc : _woodBridge) { - if (_woodBridge.contains(loc.getBlock().getRelative(BlockFace.DOWN) - .getLocation())) { - _woodBridgeBlocks.put(loc, 85); - } - - if (_woodBridge.contains(loc.getBlock().getRelative(BlockFace.UP) - .getLocation())) { - _woodBridgeBlocks.put(loc, 17); - } - - if (!_woodBridgeBlocks.containsKey(loc)) { - _woodBridgeBlocks.put(loc, 126); - } - } - } - - protected void ParseLavaBridge() { - for (Location loc : WorldData.GetDataLocs("RED")) { - _lavaBridge.add(loc.getBlock().getLocation()); - } - - for (Location loc : WorldData.GetDataLocs("ORANGE")) { - _lavaBridge.add(loc.getBlock().getLocation()); - _lavaBridge.add(loc.getBlock().getRelative(BlockFace.UP) - .getLocation()); - } - - _lavaSource = WorldData.GetDataLocs("BLACK"); - } - - protected void ParseIceBridge() - { - _iceBridge = WorldData.GetDataLocs("LIGHT_BLUE"); - } - - protected void ParseMushrooms() - { - for (Location loc : WorldData.GetCustomLocs("21")) - { - _mushroomStem.put(loc, 0L); - loc.getBlock().setType(Material.AIR); - } - - for (Location loc : WorldData.GetDataLocs("PURPLE")) - { - _mushroomTop.put(loc, 0L); - } - } - - protected void ParseLillyPad() - { - for (Location loc : WorldData.GetDataLocs("LIME")) - { - _lillyPads.put(loc, 0L); - } - } - @EventHandler public void BridgeBuild(UpdateEvent event) { @@ -866,7 +731,8 @@ public class Bridge extends TeamGame implements OreObsfucation } Manager.GetExplosion().SetLiquidDamage(true); - Announce(C.cRed + C.Bold + "ALERT: " + ChatColor.RESET + C.Bold + "THE BRIDGES ARE SPAWNING!"); + Announce(C.cRedB + "ALERT: " + C.Reset + C.Bold + "THE BRIDGES ARE SPAWNING!"); + UtilTextMiddle.display(C.cRedB + "ALERT", "The BRIDGES ARE SPAWNING!"); for (Kit kit : GetKits()) { @@ -876,269 +742,43 @@ public class Bridge extends TeamGame implements OreObsfucation } } } - -// BuildWood(); -// BuildLava(); -// BuildIce(); -// BuildLillyPad(); -// buildMushroom(); } - protected void BuildLava() - { - for (int i = 0; i < 3; i++) - if (_lavaBridge != null && _lavaSource != null - && !_lavaBridge.isEmpty() && !_lavaSource.isEmpty()) { - // Random Block - Location bestLoc = _lavaBridge.get(UtilMath.r(_lavaBridge - .size())); - if (bestLoc.getBlock().getRelative(BlockFace.DOWN) - .isLiquid()) - continue; - - _lavaBridge.remove(bestLoc); - - Location source = _lavaSource.get(UtilMath.r(_lavaSource - .size())); - - // Create Part - FallingBlock block = bestLoc.getWorld().spawnFallingBlock( - source, 87, (byte) 0); - BridgePart part = new BridgePart(block, bestLoc, true); - _bridgeParts.add(part); - - // Sound - source.getWorld().playSound(source, Sound.EXPLODE, - 5f * (float) Math.random(), - 0.5f + (float) Math.random()); - } - } - - protected void BuildLillyPad() - { - for (int i = 0; i < 3; i++) - if (_lillyPads != null && !_lillyPads.isEmpty()) - { - // Random Block - Location loc = UtilAlg.Random(_lillyPads.keySet()); - - if (!UtilTime.elapsed(_lillyPads.get(loc), 8000)) - continue; - - if (!loc.getBlock().getRelative(BlockFace.DOWN).isLiquid()) - continue; - - _lillyPads.remove(loc); - - MapUtil.QuickChangeBlockAt(loc, Material.WATER_LILY); - - // Sound - loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 111); - } - } - - @EventHandler - public void breakLillyPad(BlockBreakEvent event) - { - if (event.getBlock().getType() != Material.WATER_LILY) - return; - - _lillyPads.put(event.getBlock().getLocation(), System.currentTimeMillis() + (long)(Math.random() * 12000)); - } +// @EventHandler +// public void breakLillyPad(BlockBreakEvent event) +// { +// if (event.getBlock().getType() != Material.WATER_LILY) +// return; +// +// _lillyPads.put(event.getBlock().getLocation(), System.currentTimeMillis() + (long)(Math.random() * 12000)); +// } - protected void buildMushroom() - { - if (_mushroomStem != null && !_mushroomStem.isEmpty()) - { - for (int i=0 ; i<4 && !_mushroomStem.isEmpty() ; i++) - { - double lowestY = 0; - Location lowestLoc = null; - - for (Location loc : _mushroomStem.keySet()) - { - if (!UtilTime.elapsed(_mushroomStem.get(loc), 6000)) - continue; - - if (lowestLoc == null || loc.getY() < lowestY) - { - lowestY = loc.getY(); - lowestLoc = loc; - } - } - - if (lowestLoc == null) - continue; - - _mushroomStem.remove(lowestLoc); - - MapUtil.QuickChangeBlockAt(lowestLoc, 100, (byte)15); - } - } - else - { - _stemsGrown = true; - } - - if (_stemsGrown && _mushroomTop != null && !_mushroomTop.isEmpty()) - { - int attempts = 0; - int done = 0; - while (done < 6 && attempts < 400) - { - attempts++; - - // Random Block - Location loc = UtilAlg.Random(_mushroomTop.keySet()); - - if (!UtilTime.elapsed(_mushroomTop.get(loc), 6000)) - continue; - - Block block = loc.getBlock(); - - if (block.getRelative(BlockFace.DOWN).getType() == Material.AIR && - block.getRelative(BlockFace.NORTH).getType() == Material.AIR && - block.getRelative(BlockFace.EAST).getType() == Material.AIR && - block.getRelative(BlockFace.SOUTH).getType() == Material.AIR && - block.getRelative(BlockFace.WEST).getType() == Material.AIR) - continue; - - _mushroomTop.remove(loc); - - MapUtil.QuickChangeBlockAt(block.getLocation(), 99, (byte)14); - - done++; - } - } - } - - @EventHandler - public void breakMushroom(BlockBreakEvent event) - { - if (event.isCancelled()) - return; - - - if (event.getBlock().getTypeId() == 100 && - WorldData.GetCustomLocs("21").contains(event.getBlock().getLocation().add(0.5, 0, 0.5))) - { - event.setCancelled(true); - event.getBlock().setType(Material.AIR); - - _mushroomStem.put(event.getBlock().getLocation(), System.currentTimeMillis() + (long)(Math.random() * 12000)); - } - - if (event.getBlock().getTypeId() == 99 && - WorldData.GetDataLocs("PURPLE").contains(event.getBlock().getLocation().add(0.5, 0, 0.5))) - { - event.setCancelled(true); - event.getBlock().setType(Material.AIR); - - _mushroomTop.put(event.getBlock().getLocation(), System.currentTimeMillis() + (long)(Math.random() * 12000)); - } - } - - protected void BuildIce() - { - if (_iceBridge == null || _iceBridge.isEmpty() || UtilTime.elapsed(this.GetStateTime(), _bridgeTime + 120000)) - { - WorldData.World.setStorm(false); - return; - } - - WorldData.World.setStorm(true); - - int attempts = 0; - int done = 0; - while (done < 5 && attempts < 400) - { - attempts++; - - // Random Block - Location loc = _iceBridge.get(UtilMath.r(_iceBridge.size())); - - Block block = loc.getBlock().getRelative(BlockFace.DOWN); - - if (!block.isLiquid()) - continue; - - if (block.getRelative(BlockFace.NORTH).isLiquid() && - block.getRelative(BlockFace.EAST).isLiquid() && - block.getRelative(BlockFace.SOUTH).isLiquid() && - block.getRelative(BlockFace.WEST).isLiquid()) - continue; - - _iceBridge.remove(loc); - - if (Math.random() > 0.25) - MapUtil.QuickChangeBlockAt(block.getLocation(), Material.PACKED_ICE); - else - MapUtil.QuickChangeBlockAt(block.getLocation(), Material.ICE); - - done++; - } - } - - protected void BuildWood() - { - if (_woodBridgeBlocks != null && !_woodBridgeBlocks.isEmpty()) - { - ArrayList toDo = new ArrayList(); - - BlockFace[] faces = new BlockFace[] { BlockFace.NORTH, - BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST }; - - for (Location loc : _woodBridgeBlocks.keySet()) - { - if (_woodBridgeBlocks.get(loc) == 17) - { - int adjacent = 0; - - for (BlockFace face : faces) - if (loc.getBlock().getRelative(face).getTypeId() != 0) - adjacent++; - - if (adjacent > 0) - toDo.add(loc); - - } else if (_woodBridgeBlocks.get(loc) == 85) - { - if (loc.getBlock().getRelative(BlockFace.DOWN).getTypeId() == 0) - continue; - - toDo.add(loc); - } else if (_woodBridgeBlocks.get(loc) == 126) - { - int adjacent = 0; - - for (BlockFace face : faces) - if (loc.getBlock().getRelative(face).getTypeId() != 0) - adjacent++; - - if (adjacent > 0) - toDo.add(loc); - } - } - - if (toDo.size() == 0) - return; - - for (Location loc : toDo) - { - int id = _woodBridgeBlocks.remove(loc); - - Location source = loc.clone().add(0, 30, 0); - - // Create Part - FallingBlock block = loc.getWorld().spawnFallingBlock(source, - id, (byte) 0); - block.setVelocity(new Vector(0, -1, 0)); - BridgePart part = new BridgePart(block, loc, false); - _bridgeParts.add(part); - } - } - } +// @EventHandler +// public void breakMushroom(BlockBreakEvent event) +// { +// if (event.isCancelled()) +// return; +// +// +// if (event.getBlock().getTypeId() == 100 && +// WorldData.GetCustomLocs("21").contains(event.getBlock().getLocation().add(0.5, 0, 0.5))) +// { +// event.setCancelled(true); +// event.getBlock().setType(Material.AIR); +// +// _mushroomStem.put(event.getBlock().getLocation(), System.currentTimeMillis() + (long)(Math.random() * 12000)); +// } +// +// if (event.getBlock().getTypeId() == 99 && +// WorldData.GetDataLocs("PURPLE").contains(event.getBlock().getLocation().add(0.5, 0, 0.5))) +// { +// event.setCancelled(true); +// event.getBlock().setType(Material.AIR); +// +// _mushroomTop.put(event.getBlock().getLocation(), System.currentTimeMillis() + (long)(Math.random() * 12000)); +// } +// } @EventHandler public void BridgeUpdate(UpdateEvent event) @@ -1255,7 +895,7 @@ public class Bridge extends TeamGame implements OreObsfucation while (!UtilBlock.airFoliage(block)) { block = block.getRelative(BlockFace.UP); - + if (block.getY() >= 256) break; } @@ -1268,15 +908,15 @@ public class Bridge extends TeamGame implements OreObsfucation break; } - block = block.getRelative(BlockFace.UP); - - if (block.getTypeId() == 0) + if (block.getType() != Material.SNOW) { - if (Math.random() > 0.5) - block.setTypeId(39); - else - block.setTypeId(40); + block = block.getRelative(BlockFace.UP); } + + if (Math.random() > 0.5) + block.setTypeId(39); + else + block.setTypeId(40); } } @@ -2023,23 +1663,32 @@ public class Bridge extends TeamGame implements OreObsfucation } } - // @EventHandler - // public void liquidBlockDeny(BlockBreakEvent event) - // { - // if (_bridgesDown) - // return; - // - // if (!IsAlive(event.getPlayer())) - // return; - // - // if (event.getBlock().getRelative(BlockFace.UP).isLiquid() || event.getBlock().getRelative(BlockFace.UP).getRelative(BlockFace.UP).isLiquid()) - // { - // UtilPlayer.message(event.getPlayer(), F.main("Game", - // "Cannot tunnel under liquids.")); - // - // event.setCancelled(true); - // } - // } + @EventHandler(priority=EventPriority.LOWEST) + public void revivePlayer(EntityDamageEvent event) + { + if (_bridgesDown || !(event.getEntity() instanceof Player)) + { + return; + } + + Player player = (Player) event.getEntity(); + + if (player.getHealth() - event.getDamage() > 0) + { + return; + } + + if (!_usedLife.contains(player.getName())) + { + _usedLife.add(player.getName()); + + UtilPlayer.message(player, F.main("Game", "You used your " + F.elem(C.cAqua + "Early Game Revive") + ".")); + + GetTeam(player).SpawnTeleport(player); + player.setHealth(20); + event.setCancelled(true); + } + } @EventHandler public void vehicleDeny(PlayerInteractEvent event) @@ -2089,6 +1738,40 @@ public class Bridge extends TeamGame implements OreObsfucation UtilPlayer.message(event.getPlayer(), F.main("Game", "You cannot pickup liquids before the bridges have fallen.")); event.setCancelled(true); } + + @EventHandler + public void disableDoors(CraftItemEvent event) + { + if (_bridgesDown) + { + return; + } + + Material type = event.getRecipe().getResult().getType(); + + if (type == Material.WOOD_DOOR || type == Material.IRON_DOOR) + { + event.setResult(null); + event.setCancelled(true); + } + } + + @EventHandler + public void disableDoors(PlayerPickupItemEvent event) + { + if (_bridgesDown) + { + return; + } + + Material type = event.getItem().getItemStack().getType(); + + if (type == Material.WOOD_DOOR || type == Material.IRON_DOOR) + { + event.getItem().remove(); + event.setCancelled(true); + } + } public void setBridgeTime(int time) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimationType.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimationType.java index bf2207187..a7a8aa739 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimationType.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimationType.java @@ -7,7 +7,9 @@ public enum BridgeAnimationType WOOD(WoodBridgeAnimation.class, "BROWN", "GRAY"), ICE(IceBridgeAnimation.class, "LIGHT_BLUE"), - LAVA(LavaBridgeAnimation.class, "BLACK", "RED", "ORANGE") + LAVA(LavaBridgeAnimation.class, "BLACK", "RED", "ORANGE"), + LILLY(LillyPadBridgeAnimation.class, "LIME"), + MUSHROOM(MushroomBridgeAnimation.class, "PURPLE") ; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LillyPadBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LillyPadBridgeAnimation.java new file mode 100644 index 000000000..839a9536e --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LillyPadBridgeAnimation.java @@ -0,0 +1,65 @@ +package nautilus.game.arcade.game.games.bridge.animation; + +import java.util.HashMap; +import java.util.Map; + +import org.bukkit.Effect; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.BlockFace; + +import mineplex.core.common.util.MapUtil; +import mineplex.core.common.util.UtilAlg; +import mineplex.core.common.util.UtilTime; +import mineplex.core.updater.UpdateType; +import nautilus.game.arcade.game.games.bridge.Bridge; + +public class LillyPadBridgeAnimation extends BridgeAnimation +{ + + private Map _lillyPads = new HashMap<>(); + + public LillyPadBridgeAnimation(Bridge bridge) + { + super(bridge); + } + + @Override + public void onParse() + { + for (Location loc : _worldData.GetDataLocs("LIME")) + { + _lillyPads.put(loc, 0L); + } + } + + @Override + public void onUpdate(UpdateType type) + { + if (type != UpdateType.FASTEST) + return; + + for (int i = 0; i < 3; i++) + { + if (_lillyPads != null && !_lillyPads.isEmpty()) + { + // Random Block + Location loc = UtilAlg.Random(_lillyPads.keySet()); + + if (!UtilTime.elapsed(_lillyPads.get(loc), 8000)) + continue; + + if (!loc.getBlock().getRelative(BlockFace.DOWN).isLiquid()) + continue; + + _lillyPads.remove(loc); + + MapUtil.QuickChangeBlockAt(loc, Material.WATER_LILY); + + // Sound + loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 111); + } + } + } + +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/MushroomBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/MushroomBridgeAnimation.java new file mode 100644 index 000000000..dad3ecdb7 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/MushroomBridgeAnimation.java @@ -0,0 +1,107 @@ +package nautilus.game.arcade.game.games.bridge.animation; + +import java.util.HashMap; +import java.util.Map; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; + +import mineplex.core.common.util.MapUtil; +import mineplex.core.common.util.UtilAlg; +import mineplex.core.common.util.UtilTime; +import mineplex.core.updater.UpdateType; +import nautilus.game.arcade.game.games.bridge.Bridge; + +public class MushroomBridgeAnimation extends BridgeAnimation +{ + + private Map _mushroomStem = new HashMap<>(); + private Map _mushroomTop = new HashMap<>(); + private boolean _stemsGrown = false; + + public MushroomBridgeAnimation(Bridge bridge) + { + super(bridge); + } + + @Override + public void onParse() + { + for (Location loc : _worldData.GetCustomLocs("21")) + { + _mushroomStem.put(loc, 0L); + loc.getBlock().setType(Material.AIR); + } + + for (Location loc : _worldData.GetDataLocs("PURPLE")) + { + _mushroomTop.put(loc, 0L); + } + } + + @Override + public void onUpdate(UpdateType type) + { + if (_mushroomStem != null && !_mushroomStem.isEmpty()) + { + for (int i = 0; i < 4 && !_mushroomStem.isEmpty(); i++) + { + double lowestY = 0; + Location lowestLoc = null; + + for (Location loc : _mushroomStem.keySet()) + { + if (!UtilTime.elapsed(_mushroomStem.get(loc), 6000)) + continue; + + if (lowestLoc == null || loc.getY() < lowestY) + { + lowestY = loc.getY(); + lowestLoc = loc; + } + } + + if (lowestLoc == null) + continue; + + _mushroomStem.remove(lowestLoc); + + MapUtil.QuickChangeBlockAt(lowestLoc, 100, (byte) 15); + } + } + else + { + _stemsGrown = true; + } + + if (_stemsGrown && _mushroomTop != null && !_mushroomTop.isEmpty()) + { + int attempts = 0; + int done = 0; + while (done < 6 && attempts < 400) + { + attempts++; + + // Random Block + Location loc = UtilAlg.Random(_mushroomTop.keySet()); + + if (!UtilTime.elapsed(_mushroomTop.get(loc), 6000)) + continue; + + Block block = loc.getBlock(); + + if (block.getRelative(BlockFace.DOWN).getType() == Material.AIR && block.getRelative(BlockFace.NORTH).getType() == Material.AIR && block.getRelative(BlockFace.EAST).getType() == Material.AIR && block.getRelative(BlockFace.SOUTH).getType() == Material.AIR && block.getRelative(BlockFace.WEST).getType() == Material.AIR) + continue; + + _mushroomTop.remove(loc); + + MapUtil.QuickChangeBlockAt(block.getLocation(), 99, (byte) 14); + + done++; + } + } + } + +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitDestructor.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitDestructor.java index b5710854f..178ae8ef1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitDestructor.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitDestructor.java @@ -44,7 +44,7 @@ public class KitDestructor extends ProgressingKit { super(manager, "Destructor", "bridgedesctructor", KitAvailability.Achievement, 99999, DESCRIPTION, PERKS, EntityType.ZOMBIE, IN_HAND); - this.setAchievementRequirements(ACHIEVEMENTS); + setAchievementRequirements(ACHIEVEMENTS); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/OverpoweredBridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/OverpoweredBridge.java index 17b6b5ce5..5935aaee0 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/OverpoweredBridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/OverpoweredBridge.java @@ -14,7 +14,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.EnchantmentStorageMeta; @@ -29,7 +28,6 @@ import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.events.PlayerPrepareTeleportEvent; -import nautilus.game.arcade.game.Game.GameState; import nautilus.game.arcade.game.games.AbsorptionFix; import nautilus.game.arcade.game.games.bridge.Bridge; import net.md_5.bungee.api.ChatColor; @@ -72,38 +70,8 @@ public class OverpoweredBridge extends Bridge public void ParseData() { _starterChests = new HashMap<>(); - - ParseLavaBridge(); - ParseWoodBridge(); - ParseIceBridge(); - ParseLillyPad(); - ParseMushrooms(); - - ParseChests(); - - ParseOre(WorldData.GetCustomLocs("73")); // Red - ParseOre(WorldData.GetCustomLocs("14")); // Yellow - ParseOre(WorldData.GetCustomLocs("129")); // Green - ParseOre(WorldData.GetCustomLocs("56")); // Blue - - //Mass Teams - if (!WorldData.GetCustomLocs("152").isEmpty()) - ParseOre(WorldData.GetCustomLocs("152")); - if (!WorldData.GetCustomLocs("41").isEmpty()) - ParseOre(WorldData.GetCustomLocs("41")); - if (!WorldData.GetCustomLocs("133").isEmpty()) - ParseOre(WorldData.GetCustomLocs("133")); - if (!WorldData.GetCustomLocs("57").isEmpty()) - ParseOre(WorldData.GetCustomLocs("57")); - - if (!WorldData.GetCustomLocs("100").isEmpty()) - ParseOre(WorldData.GetCustomLocs("100")); - if (!WorldData.GetCustomLocs("86").isEmpty()) - ParseOre(WorldData.GetCustomLocs("86")); - if (!WorldData.GetCustomLocs("103").isEmpty()) - ParseOre(WorldData.GetCustomLocs("103")); - if (!WorldData.GetCustomLocs("22").isEmpty()) - ParseOre(WorldData.GetCustomLocs("22")); + + super.ParseData(); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java index 5d63023a5..8c575627c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java @@ -294,7 +294,9 @@ public class PerkDestructor extends Perk if (lowest != null) { - if (lowest.getType() != Material.AIR && UtilBlock.airFoliage(lowest.getRelative(BlockFace.DOWN))) + Block down = lowest.getRelative(BlockFace.DOWN); + + if (lowest.getType() != Material.AIR && (UtilBlock.airFoliage(down) || down.isLiquid())) { lowest.getWorld().playEffect(lowest.getLocation(), Effect.STEP_SOUND, lowest.getType()); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/FoodForTheMassesStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/FoodForTheMassesStatTracker.java index 5495e89a2..de127e6b2 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/FoodForTheMassesStatTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/FoodForTheMassesStatTracker.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.stats; +import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -40,6 +41,11 @@ public class FoodForTheMassesStatTracker extends StatTracker Player player = UtilPlayer.searchExact(event.GetLog().GetPlayer().GetName()); if (player == null) return; + + if (killer.getItemInHand().getType() != Material.APPLE) + { + return; + } if (event.GetLog().GetKiller().GetReason() != null && event.GetLog().GetKiller().GetReason().contains("Apple Thrower")) { From 36f318e4a0afaa8019835746c04454c35acbf984 Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 6 Feb 2017 21:00:30 +0000 Subject: [PATCH 003/133] KP Upgrades (1) --- .../game/arcade/game/games/bridge/Bridge.java | 2 +- .../game/games/bridge/kits/KitApple.java | 74 ++++++++++++++- .../game/games/bridge/kits/KitBerserker.java | 93 +++++++++++++++---- .../game/games/skywars/kits/KitMetal.java | 4 + .../game/arcade/kit/ProgressingKit.java | 8 ++ 5 files changed, 158 insertions(+), 23 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java index 813f8349a..eabc0b467 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java @@ -290,7 +290,7 @@ public class Bridge extends TeamGame implements OreObsfucation // If this is an old map or the builders haven't done it properly we can use this more of an estimate of the border size // Step 1 - Get the average location of the spawns, we will assume this is the centre of the island Location center = UtilAlg.getAverageLocation(team.GetSpawns()); - center.add(UtilAlg.getTrajectory(SpectatorSpawn, center).multiply(20)); + center.add(UtilAlg.getTrajectory(SpectatorSpawn, center).multiply(15)); // Step 2 - Calculate an estimate for the size of the border. We'll go with half but the setSize uses the radius so it works out the same to leave it like this double distToCenter = UtilMath.offset2d(SpectatorSpawn, center); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java index 78fc4acae..c3a40cdab 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java @@ -13,6 +13,9 @@ import org.bukkit.inventory.ItemStack; public class KitApple extends ProgressingKit { + private static final String PERK = "Apples"; + private static final String STARTING = "Starting amount"; + private static final String[] DESCRIPTION = { "Possess the rare skill of finding apples frequently!", "", @@ -20,20 +23,81 @@ public class KitApple extends ProgressingKit click(true, "the apple to throw it") }; - private static final Perk[] PERKS = { - new PerkApple(10000) - }; + private static final Perk[][] PERKS = + { + { + new PerkApple(17000) + }, + { + new PerkApple(15000) + }, + { + new PerkApple(15000) + }, + { + new PerkApple(13000) + }, + { + new PerkApple(13000) + }, + { + new PerkApple(11000) + }, + }; + + private static final String[][] UPGRADE_DETAILS = + { + { + reduceCooldown(COOLDOWN, 2) + }, + { + increaseNumber(PERK, STARTING, 3, PERK) + }, + { + reduceCooldown(COOLDOWN, 2) + }, + { + increaseNumber(PERK, STARTING, 3, PERK) + }, + { + reduceCooldown(COOLDOWN, 2) + }, + }; private static final ItemStack IN_HAND = new ItemStack(Material.APPLE); public KitApple(ArcadeManager manager) { - super(manager, "Apple", "bridgeapple", KitAvailability.Free, DESCRIPTION, PERKS, EntityType.ZOMBIE, IN_HAND); + super(manager, "Apple", "bridgeapple", KitAvailability.Free, DESCRIPTION, PERKS, UPGRADE_DETAILS, EntityType.ZOMBIE, IN_HAND); } @Override public void GiveItems(Player player) { - + int level = getUpgradeLevel(player.getUniqueId()); + int apples = 0; + + switch (level) + { + case 2: + case 3: + apples = 3; + break; + case 4: + case 5: + apples = 6; + default: + break; + } + + if (apples > 0) { + player.getInventory().addItem(new ItemStack(Material.APPLE, apples)); + } + } + + @Override + public boolean showUpgrades() + { + return true; } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java index 497017ee6..5d76bf540 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java @@ -1,17 +1,17 @@ package nautilus.game.arcade.game.games.bridge.kits; +import org.bukkit.Material; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + import mineplex.core.common.util.C; -import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.ProgressingKit; import nautilus.game.arcade.kit.perks.PerkAxeman; import nautilus.game.arcade.kit.perks.PerkLeap; -import org.bukkit.Material; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; public class KitBerserker extends ProgressingKit { @@ -23,27 +23,86 @@ public class KitBerserker extends ProgressingKit "Deal " + C.cGreen + "+1" + C.cWhite + " damage using axes", click(false, " with your axe to use " + C.cGreen + "Berserker Leap") }; - - private static final Perk[] PERKS = { - new PerkLeap("Beserker Leap", 1.2, 1.2, 8000), - new PerkAxeman(), - }; - - private static final ItemStack[] PLAYER_ITEMS = { - ItemStackFactory.Instance.CreateStack(Material.STONE_AXE) - }; + + private static final Perk[][] PERKS = + { + { + new PerkLeap("Beserker Leap", 1.2, 1.2, 14000), + new PerkAxeman(), + }, + { + new PerkLeap("Beserker Leap", 1.2, 1.2, 13000), + new PerkAxeman(), + }, + { + new PerkLeap("Beserker Leap", 1.2, 1.2, 13000), + new PerkAxeman(), + }, + { + new PerkLeap("Beserker Leap", 1.2, 1.2, 12000), + new PerkAxeman(), + }, + { + new PerkLeap("Beserker Leap", 1.2, 1.2, 12000), + new PerkAxeman(), + }, + { + new PerkLeap("Beserker Leap", 1.2, 1.2, 11000), + new PerkAxeman(), + }, + }; + + private static final String[][] UPGRADE_DETAILS = + { + { + reduceCooldown(COOLDOWN, 1) + }, + { + receiveItem("Crafting Table", 1) + }, + { + reduceCooldown(COOLDOWN, 1) + }, + { + receiveItem("Iron Axe", 1) + }, + { + reduceCooldown(COOLDOWN, 1) + }, + }; private static final ItemStack IN_HAND = new ItemStack(Material.STONE_AXE); public KitBerserker(ArcadeManager manager) { - super(manager, "Berserker", "bridgeberserker", KitAvailability.Free, DESCRIPTION, PERKS, EntityType.ZOMBIE, IN_HAND); - + super(manager, "Berserker", "bridgeberserker", KitAvailability.Free, DESCRIPTION, PERKS, UPGRADE_DETAILS, EntityType.ZOMBIE, IN_HAND); } @Override public void GiveItems(Player player) { - player.getInventory().addItem(PLAYER_ITEMS); + int level = getUpgradeLevel(player.getUniqueId()); + + // Axe + if (level >= 4) + { + player.getInventory().addItem(new ItemStack(Material.IRON_AXE)); + } + else + { + player.getInventory().addItem(new ItemStack(Material.STONE_AXE)); + } + + //Crafting table + if (level >= 2) + { + player.getInventory().addItem(new ItemStack(Material.WORKBENCH)); + } + } + + @Override + public boolean showUpgrades() + { + return true; } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/kits/KitMetal.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/kits/KitMetal.java index a5e4be83e..5d6cf5ff5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/kits/KitMetal.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/kits/KitMetal.java @@ -90,6 +90,10 @@ public class KitMetal extends ProgressingKit @Override public void GiveItems(Player player) { + int level = getUpgradeLevel(player.getUniqueId()); + + + player.getInventory().addItem(PLAYER_ITEMS); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/ProgressingKit.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/ProgressingKit.java index a93f7415e..eabe114f5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/ProgressingKit.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/ProgressingKit.java @@ -30,6 +30,7 @@ import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilText; import mineplex.core.donation.Donor; import mineplex.core.menu.Menu; import mineplex.core.progression.ProgressiveKit; @@ -53,6 +54,8 @@ import net.minecraft.server.v1_8_R3.World; public abstract class ProgressingKit extends Kit implements ProgressiveKit { + public static final String COOLDOWN = "Cooldown"; + private static final FireworkEffect EFFECT = FireworkEffect.builder() .withColor(Color.AQUA) .with(Type.BALL) @@ -420,6 +423,11 @@ public abstract class ProgressingKit extends Kit implements ProgressiveKit return "Receive " + C.cGreen + amount + C.cWhite + " " + item + " every " + C.cGreen + time + C.cWhite + " second" + (time == 1 ? "" : "s") + (max > 0 ? ". Max " + C.cGreen + max : ""); } + + public static String receiveItem(String item, int amount) + { + return "Receive " + (amount == 1 ? (UtilText.startsWithVowel(item) ? "an" :" a") : C.cGreen + amount) + " " + item; + } public static String click(boolean left, String comp) { From 3018f264ccab79a3d7952eef46ea3de1f4c6a66d Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 6 Feb 2017 23:28:27 +0000 Subject: [PATCH 004/133] QA ready! --- .../src/nautilus/game/arcade/game/games/bridge/Bridge.java | 2 +- .../nautilus/game/arcade/game/games/bridge/kits/KitApple.java | 2 +- .../game/arcade/game/games/bridge/kits/KitBerserker.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java index eabc0b467..c01dde25e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java @@ -299,7 +299,7 @@ public class Bridge extends TeamGame implements OreObsfucation for (Player player : team.GetPlayers(true)) { borderModule.setCenter(player, center); - borderModule.setSize(player, distToCenter * 0.6); + borderModule.setSize(player, distToCenter * 0.8); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java index c3a40cdab..e915f72b4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java @@ -98,6 +98,6 @@ public class KitApple extends ProgressingKit @Override public boolean showUpgrades() { - return true; + return false; } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java index 5d76bf540..70f3591a4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java @@ -103,6 +103,6 @@ public class KitBerserker extends ProgressingKit @Override public boolean showUpgrades() { - return true; + return false; } } From 2f9f55226a161e687920effaa8438510422dc73f Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 7 Feb 2017 00:05:10 +0000 Subject: [PATCH 005/133] Adjust world border distance --- .../src/nautilus/game/arcade/game/games/bridge/Bridge.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java index c01dde25e..beaf472c5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java @@ -299,7 +299,7 @@ public class Bridge extends TeamGame implements OreObsfucation for (Player player : team.GetPlayers(true)) { borderModule.setCenter(player, center); - borderModule.setSize(player, distToCenter * 0.8); + borderModule.setSize(player, distToCenter * 0.9); } } From 63cef754f6cda01cc2892a7d8cbe1233fd6d7d59 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Thu, 23 Feb 2017 14:57:52 -0300 Subject: [PATCH 006/133] St Patricks outfit --- .../core/cosmetic/ui/page/CostumePage.java | 17 ++- .../mineplex/core/gadget/GadgetManager.java | 13 ++ .../stpatricks/OutfitStPatricksBoots.java | 15 +++ .../OutfitStPatricksChestplate.java | 15 +++ .../stpatricks/OutfitStPatricksHat.java | 15 +++ .../stpatricks/OutfitStPatricksLeggings.java | 15 +++ .../stpatricks/OutfitStPatricksSuit.java | 121 ++++++++++++++++++ .../gadget/set/suits/SetStPatricksSuit.java | 22 ++++ 8 files changed, 227 insertions(+), 6 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksBoots.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/set/suits/SetStPatricksSuit.java 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 66cb24998..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 @@ -1,23 +1,26 @@ package mineplex.core.cosmetic.ui.page; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; + import mineplex.core.account.CoreClientManager; import mineplex.core.common.currency.GlobalCurrency; 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.gadgets.outfit.freezesuit.OutfitFreezeSuit; import mineplex.core.gadget.gadgets.outfit.ravesuit.OutfitRaveSuit; import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuit; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksSuit; import mineplex.core.gadget.types.Gadget; import mineplex.core.gadget.types.GadgetType; import mineplex.core.gadget.types.ItemGadget; import mineplex.core.gadget.types.OutfitGadget; import mineplex.core.shop.item.IButton; import mineplex.core.shop.item.ShopItem; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.ClickType; /** * Created by shaun on 14-09-15. @@ -42,11 +45,13 @@ public class CostumePage extends GadgetPage OutfitGadget outfitGadget = ((OutfitGadget) gadget); - int offset = 0; + int offset; if (gadget instanceof OutfitRaveSuit) offset = 0; else if (gadget instanceof OutfitSpaceSuit) offset = 1; - else offset = 2; + else if (gadget instanceof OutfitFreezeSuit) offset = 2; + else if (gadget instanceof OutfitStPatricksSuit) offset = 3; + else offset = 4; slot = offset + 1 + 18; //1 buffer to left, 18 = 2 lines down diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java index b326e71e5..912f96dbc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java @@ -150,6 +150,10 @@ import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitBoots; import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitChestplate; import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitHelmet; import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitLeggings; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksBoots; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksChestplate; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksHat; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksLeggings; import mineplex.core.gadget.gadgets.outfit.windupsuit.OutfitWindUpSuitBoosterManager; import mineplex.core.gadget.gadgets.particle.ParticleChristmasTree; import mineplex.core.gadget.gadgets.particle.ParticleCoalFumes; @@ -203,6 +207,7 @@ import mineplex.core.gadget.set.SetWisdom; import mineplex.core.gadget.set.suits.SetFreezeSuit; import mineplex.core.gadget.set.suits.SetRaveSuit; import mineplex.core.gadget.set.suits.SetSpaceSuit; +import mineplex.core.gadget.set.suits.SetStPatricksSuit; import mineplex.core.gadget.types.ArrowEffectGadget; import mineplex.core.gadget.types.BalloonGadget; import mineplex.core.gadget.types.DeathEffectGadget; @@ -312,8 +317,11 @@ public class GadgetManager extends MiniPlugin addSet(new SetRaveSuit(this)); addSet(new SetSpaceSuit(this)); addSet(new SetFreezeSuit(this)); + addSet(new SetStPatricksSuit(this)); // Hidden in this update //addSet(new SetWindUpSuit(this)); + + // Sets addSet(new SetParty(this)); addSet(new SetCupidsLove(this)); addSet(new SetEmerald(this)); @@ -369,6 +377,11 @@ public class GadgetManager extends MiniPlugin addGadget(new OutfitFreezeSuitChestplate(this)); addGadget(new OutfitFreezeSuitLeggings(this)); addGadget(new OutfitFreezeSuitBoots(this)); + + addGadget(new OutfitStPatricksHat(this)); + addGadget(new OutfitStPatricksChestplate(this)); + addGadget(new OutfitStPatricksLeggings(this)); + addGadget(new OutfitStPatricksBoots(this)); addGadget(new OutfitTeam(this, "Team Helmet", -1, ArmorSlot.HELMET, Material.LEATHER_HELMET, (byte)0)); addGadget(new OutfitTeam(this, "Team Shirt", -1, ArmorSlot.CHEST, Material.LEATHER_CHESTPLATE, (byte)0)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksBoots.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksBoots.java new file mode 100644 index 000000000..27c01b350 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksBoots.java @@ -0,0 +1,15 @@ +package mineplex.core.gadget.gadgets.outfit.stpatricks; + +import org.bukkit.Material; + +import mineplex.core.gadget.GadgetManager; + +public class OutfitStPatricksBoots extends OutfitStPatricksSuit +{ + + public OutfitStPatricksBoots(GadgetManager manager) + { + super(manager, "St Patrick's Boots", -18, ArmorSlot.BOOTS, Material.LEATHER_BOOTS, (byte) 0); + } + +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java new file mode 100644 index 000000000..edc9f75f2 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java @@ -0,0 +1,15 @@ +package mineplex.core.gadget.gadgets.outfit.stpatricks; + +import org.bukkit.Material; + +import mineplex.core.gadget.GadgetManager; + +public class OutfitStPatricksChestplate extends OutfitStPatricksSuit +{ + + public OutfitStPatricksChestplate(GadgetManager manager) + { + super(manager, "St Patrick's Chest", -18, ArmorSlot.CHEST, Material.LEATHER_CHESTPLATE, (byte) 0); + } + +} \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java new file mode 100644 index 000000000..f1b9a91a6 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java @@ -0,0 +1,15 @@ +package mineplex.core.gadget.gadgets.outfit.stpatricks; + +import org.bukkit.Material; + +import mineplex.core.gadget.GadgetManager; + +public class OutfitStPatricksHat extends OutfitStPatricksSuit +{ + + public OutfitStPatricksHat(GadgetManager manager) + { + super(manager, "St Patrick's Hat", -18, ArmorSlot.HELMET, Material.LEATHER_HELMET, (byte) 0); + } + +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java new file mode 100644 index 000000000..6b80314fc --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java @@ -0,0 +1,15 @@ +package mineplex.core.gadget.gadgets.outfit.stpatricks; + +import org.bukkit.Material; + +import mineplex.core.gadget.GadgetManager; + +public class OutfitStPatricksLeggings extends OutfitStPatricksSuit +{ + + public OutfitStPatricksLeggings(GadgetManager manager) + { + super(manager, "St Patrick's Pants", -18, ArmorSlot.LEGS, Material.LEATHER_LEGGINGS, (byte) 0); + } + +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java new file mode 100644 index 000000000..74a3ff429 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java @@ -0,0 +1,121 @@ +package mineplex.core.gadget.gadgets.outfit.stpatricks; + +import java.util.HashSet; +import java.util.Iterator; + +import org.bukkit.Color; +import org.bukkit.Material; +import org.bukkit.entity.Item; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.LeatherArmorMeta; +import org.bukkit.util.Vector; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilText; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.types.OutfitGadget; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; + +public class OutfitStPatricksSuit extends OutfitGadget +{ + + private HashSet _items = new HashSet<>(); + + public OutfitStPatricksSuit(GadgetManager manager, String name, int cost, OutfitGadget.ArmorSlot slot, Material mat, byte data) + { + super(manager, name, UtilText.splitLinesToArray(new String[]{C.cGray + "Placeholder"}, LineFormat.LORE), cost, slot, mat, data); + setColor(Color.fromRGB(0, 153, 0)); + ItemStack displayItem = new ItemStack(mat, 1, data); + if (displayItem.getItemMeta() instanceof LeatherArmorMeta) + { + LeatherArmorMeta leatherArmorMeta = (LeatherArmorMeta) displayItem.getItemMeta(); + leatherArmorMeta.setColor(Color.fromRGB(0, 153, 0)); + displayItem.setItemMeta(leatherArmorMeta); + } + setDisplayItem(displayItem); + } + + @Override + public void enableCustom(Player player, boolean message) + { + applyArmor(player, message); + } + + @Override + public void disableCustom(Player player, boolean message) + { + removeArmor(player, message); + } + + @EventHandler + public void onPlayerMove(PlayerMoveEvent event) + { + // Prevents event running 4 times + if (getSlot() != ArmorSlot.HELMET) + return; + + if (!setActive(event.getPlayer())) + return; + + // Drops emeralds + ItemStack itemStack = new ItemStack(Material.GOLD_INGOT); + ItemMeta itemMeta = itemStack.getItemMeta(); + itemMeta.setDisplayName("DROPPED" + System.currentTimeMillis() + UtilMath.random.nextInt()); + itemStack.setItemMeta(itemMeta); + Item emerald = event.getPlayer().getWorld().dropItem(event.getPlayer().getLocation().add(0.5, 1.5, 0.5), itemStack); + _items.add(emerald); + emerald.setVelocity(new Vector((Math.random()-0.5)*0.3, Math.random()-0.4, (Math.random()-0.5)*0.3)); + } + + @EventHandler + public void onUpdate(UpdateEvent event) + { + // Prevents event running 4 times + if (getSlot() != ArmorSlot.HELMET) + return; + + if (event.getType() == UpdateType.TICK) + cleanItems(); + } + + @EventHandler + public void onItemPickup(PlayerPickupItemEvent event) + { + // Prevents event running 4 times + if (getSlot() != ArmorSlot.HELMET) + return; + + if (_items.contains(event.getItem())) + { + event.setCancelled(true); + } + } + + private boolean setActive(Player player) + { + return getSet() != null && getSet().isActive(player); + } + + public void cleanItems() + { + Iterator it = _items.iterator(); + while (it.hasNext()) + { + Item item = it.next(); + if (item.getTicksLived() >= 20) + { + item.remove(); + it.remove(); + } + } + } + +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/suits/SetStPatricksSuit.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/suits/SetStPatricksSuit.java new file mode 100644 index 000000000..1e04f08f9 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/suits/SetStPatricksSuit.java @@ -0,0 +1,22 @@ +package mineplex.core.gadget.set.suits; + +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksBoots; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksChestplate; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksHat; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksLeggings; +import mineplex.core.gadget.types.GadgetSet; + +public class SetStPatricksSuit extends GadgetSet +{ + + public SetStPatricksSuit(GadgetManager manager) + { + super(manager, "St Patrick's Suit", "Placeholder", + manager.getGadget(OutfitStPatricksHat.class), + manager.getGadget(OutfitStPatricksChestplate.class), + manager.getGadget(OutfitStPatricksLeggings.class), + manager.getGadget(OutfitStPatricksBoots.class)); + } + +} From e731a91e40eae64b4870cdc24ef25535585628cb Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Thu, 23 Feb 2017 17:35:50 -0300 Subject: [PATCH 007/133] Leprechaun pet --- .../mineplex/core/common/skin/SkinData.java | 1 + .../core/cosmetic/ui/page/PetPage.java | 22 +++++++++++++------ .../src/mineplex/core/pet/PetManager.java | 18 +++++++++++++++ .../src/mineplex/core/pet/PetType.java | 20 ++++++++++++++++- 4 files changed, 53 insertions(+), 8 deletions(-) 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 ff803a28b..3e4c49575 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 @@ -64,6 +64,7 @@ public class SkinData public final static SkinData TURKEY = new SkinData("eyJ0aW1lc3RhbXAiOjE0NzU3NzM2MTc5MDQsInByb2ZpbGVJZCI6IjlmY2FlZDhiMTRiNTRmN2ZhNjRjYjYwNDBlNzA1MjcyIiwicHJvZmlsZU5hbWUiOiJMQ2FzdHIxIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8xYzdmYjczMTRkNmY1ZTMzNmVjN2ViNTI1ZGM0ODMzOWNhMjI4ZDk3ODU1MDM3ZDZhNDIwOGZjNzYwNDc1NiJ9fX0=", "eZWi1LOD8ke7MCUAfhspBCnyfCoGM8suFLKtbW6b27CURoRBG3eKIfwLYYeMp3ObjoZ8gCB90s28Qyw5XMzwvvowy9W/b5cYC0OzQ8+GR7tDZoWc28tGqGBM8cmDJIFQgZdceBIIr2lXeAvEJfLbyrus46hPjk8YTiQW2DsBq88BhKIy6Igb1rGqJ1goVERF07b6+/yMdLKCaT8OZFzKLXfo5rY5gr6HLnvsQiNL9aTrl74agXn1GUcP+QVNe7/c9lYmv5vLCBst1YiIPq27NZASZ++Fwyv6+PRlaFZZYtMHVd4UZeYPl7ak1Cdi/1sUcRpkBbJM8AHIrqq0iuXxrLbc6ldQ2cYQKHg9ljIpW/EZanuf6Wgm/LK1JnxXne9GUb/xPzB1EnZ95i8/u9WJa+NixEcfc3pAzDPYncIR8lishFwyBRta6BCG76U3UY2lQr3YD/48AJ49r7+WVU0gOP/h2SDSdAZHEdvkpVJ0w/xA+SevJ7Y7xA5EJ655YMQ0F8f3WUFTf1pFklE5E+fwkMVCWOPw7UMy558IcRSpdWAPPyf8sc7CpDqRk37/vXWRDa+7YBfgskK6B2eXowrzThUOBx+AmDTF3Rv8ZSr1Un0FWGi+GQ5ny7W9dJBMomzyMUbzz9stsCml5XB+6xLP2MD+9lO1bHipKS6qkhtZChE="); public final static SkinData GINGERBREAD = new SkinData("eyJ0aW1lc3RhbXAiOjE0ODAxOTk5MjM0NTUsInByb2ZpbGVJZCI6IjRjOGQ1NjllZWZlMTRkOGE4YzJmMmM4ODA3ODA3ODRmIiwicHJvZmlsZU5hbWUiOiJHaW5nZXJicmVhZE1hbiIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzAyM2IxZGQ5MWQyYjM2Y2FkZTU2NjVjM2Y3ODk3ZmNiOGRlMWFlNjE5YTRlOTYxODU2MzdiMTliZGNmZjQ3In19fQ==", "lND5lQCzd5DKdn+ps82zn55hrSDr12bBLFoSbxetOj7MaYAuHCkJPQQOXdcMh3TLLSgxmQzEWkIHSUo760/2Qfd2uDDOTVfZZqiFjiOwDQ7YQjkokqNaC3U9gEq+LBJ+IgEkwaCsluXYMIK0Wvqx1DFa82pg8bSYGczJfTw/1kQsUUTpmao6ChZw3yrHTPow38onD95f9i6yVcnhSpPfM/JTQuL4N6Jdcql6VRJNSvCHJvEgh6R2p0w7DJhEGIzkFaF3lPdBqw+Mm97fBPvznscd4s6gpH07gUl/T+vlyHyRBLm85Pgm70r4MQ+c/nGOQOXzFMNpO8RIot/uhd7t3bvSi6yFzZQm7P9QLCLm/0C84x0sCugjeN/hVA347FWnuRPcya5xPzlpTWAW7pCjheAz0mvnPUMYT6Wp4CJx6bPdePnaiLFSeK8EyQIU9IUQJgXqMA3cOwqMBdh/0r71fTInPdgXsVxabmGbCgIuK3A2hSgxpcZv9412T0NIJYSTi0s2B3dyAaZJrdF5wa1hIr8au63SWFJww3GEEOF5YObEyVvKj2yS40iaHaRrfn1DeALT0eD0oN1zzK66FKbFuDmZmm4Thel9gKt+QcnR2uHlFLEBUogpIXyeC8zca7SOppANloOpO4mBbf22dXBJogenVd425JWaXOHJ6NVqIBw="); public final static SkinData LOVE_DOCTOR = new SkinData("eyJ0aW1lc3RhbXAiOjE0ODQ0MzM1MjQxMjAsInByb2ZpbGVJZCI6IjlmY2FlZDhiMTRiNTRmN2ZhNjRjYjYwNDBlNzA1MjcyIiwicHJvZmlsZU5hbWUiOiJMQ2FzdHIxIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9iY2RiZTM2OTM1NGZjMzUxY2RhNGRmY2Y2OWM0MzY3ODcwYjI4ZWE3NDUzYWVjM2IzMjgyM2YyMWMzNTJlNTUifX19", "KD0NsKFlS+9/JpPQdT0Lq2jo942WeHpFevJPR3T9JO/5NVmNprupsWuTgepw14iHoax8/xyP8S4XksYq8hJ30e+gRKXVReqtq4l8JetXJILI7JTL6EHj/Flg4t0O6ASIm3Hr+w86IKrPb0NwHTjHJHvbf0r7k3E/TMLbq0/c7Xgi+JgC0uQd+wIPZhQe92P3O7eGH858X0vsxG0FVzgnEAlHVLmqBCwqxMU5CsBp0JCTVIbtp+JNmveCsfLagP6mi39rUudbueXJQgqLv7H7Zw+ZNINLLaKPNVO6Od8sX3c+CSUQ+Bm9bakYr628k/z0krTdNpLG7OGXWoT3XShW6HXB/z7o7hpuDXJW7HdyvmWv9GVyWLm2USNe7/3Ugs2zWZI1f+t6t+V3EVr3T+nR4zpY/ISdlTsLtV/Daebr0v/V0YlaM0UaASzz16ob3p1cfao7C7BZwKqOBKoSyHpnuLhd70wOtNrhhPDU9dWQBC/l6uojcMJ9lQMsxFmHj4JFqJYl7p/UXnq1vnYBo1P3A//IGl4gL1Hv8U0I14LT77/AMYH57mItgD0/VnE4bvPIFML/4cX7L9qpdLoOAAyfa5P9cAfzhUnVnRRLM016MpGtvY8SfbZ68Of1Xjz/dZ9/fBEcObXPHGX2QNuJRFiWJjRVKjO7ok0qfiVUEmuZr6I="); + public final static SkinData LEPRECHAUN = new SkinData("eyJ0aW1lc3RhbXAiOjE0ODc4NzI5Mjg1ODIsInByb2ZpbGVJZCI6IjlmY2FlZDhiMTRiNTRmN2ZhNjRjYjYwNDBlNzA1MjcyIiwicHJvZmlsZU5hbWUiOiJMQ2FzdHIxIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS80ZTBkZjZhZGNiNzkzMzM5ZjFhOGNkM2E0ZGQ2ZThjNGQ2ZWFjYmU5NWMzZDA5OTI4NDMyMWFiZGI5MTgwOSJ9fX0=", "cyIYHTdzvVBOyYoiJZTvNS8Et5pzqBNxuz6GQspE2lBkW2Bj82JNv5oczsf3oxYAG4zxdb96G8+7UKBmoJdvx0x6UD7Dk0dnKrwpXfOhe+jRxtwMGMsdYCb8URWaoIoeKpxdCmAtjgV6FI8zDy2Yzi+MF4O9e4VqH0tMBoD2/CZScQwNEzc4YXf2M2fglKn9uK2+xrgLV+XS+SNdIn7BRiNlQf96u6N2G0lO+eb09LbIfIgAgfnyLiARccWa+VNo6gwlCFyRMnwOlgqxL5XA5Um4kkx2ZReRRCDFQ4NV5eLBktLd5wpECyOuY7v7S3zLqwbhwG47gS8hnXqmtHG5RW0RUQZEryg638Cw7hwr2k09iStfok8WeZUIJ+fuUWgdArvbtN36a2pCXyFdqzp+E8xzSF4E9SQv0K+1lNj+w4L58dh8pddeKK8m5bpjINj4xZ6nf7reWYQAX/imVNYTXTW8JqYnF+++xViBwmfeeM3PmEg+wyTduh+M25nyhGcqn5l+UyQ9aMzzdNs2aEdx12fOm1sOFXjHrHWeo6ciEm7sY1SDjiJ99VVXuGHCJWBtxq/B+c+vC/Cj8itEYOetwe5NKrgI99pZjG+KiRr4L0n8/NA3Px7SbKUUpHse80pNMjGfFW4pAOyFXJaKHrObWT2iL2AnTe+yfdY4sf/JZT4="); // 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/src/mineplex/core/cosmetic/ui/page/PetPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/PetPage.java index 503f2897d..e338dc8fc 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 @@ -22,6 +22,8 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; import mineplex.core.account.CoreClientManager; import mineplex.core.common.currency.GlobalCurrency; @@ -165,9 +167,12 @@ public class PetPage extends ShopPageBase itemLore.add(C.cBlack); itemLore.add(C.cGreen + "Click to Disable"); - addButton(slot, new ShopItem(pet.getMaterial(), pet.getData(), - pet.getName() + " (" + C.cWhite + petName + C.cGreen + ")", - itemLore.toArray(new String[itemLore.size()]), 1, false, false), new DeactivatePetButton(this, getPlugin().getPetManager())); + ItemStack item = pet.getDisplayItem(); + ItemMeta itemMeta = item.getItemMeta(); + itemMeta.setDisplayName("A"); + item.setItemMeta(itemMeta); + + addButton(slot, new ShopItem(item, false, false).hideInfo(), new DeactivatePetButton(this, getPlugin().getPetManager())); addGlow(slot); } @@ -194,10 +199,13 @@ public class PetPage extends ShopPageBase //petItem.setType(Material.getMaterial(201)); } }*/ - - addButton(slot, new ShopItem(pet.getMaterial(), pet.getData(), - pet.getName() + " (" + C.cWhite + petName + C.cGreen + ")", - itemLore.toArray(new String[itemLore.size()]), 1, false, false), new ActivatePetButton(pet, this)); + + ItemStack item = pet.getDisplayItem(); + ItemMeta itemMeta = item.getItemMeta(); + itemMeta.setDisplayName("A"); + item.setItemMeta(itemMeta); + + addButton(slot, new ShopItem(item, false, false).hideInfo(), new ActivatePetButton(pet, this)); //addButton(slot, new ShopItem(petItem, false, false), iButton); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java index ce936a333..fb9d96e57 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java @@ -392,6 +392,24 @@ public class PetManager extends MiniClientPlugin UtilEnt.silence(villager, true); _trueLovePets.put(zombie, new TrueLoveData(player, zombie, villager)); } + else if (petType.equals(PetType.LEPRECHAUN)) + { + Zombie zombie = (Zombie) pet; + zombie.setBaby(true); + + UtilEnt.silence(zombie, true); + UtilEnt.ghost(zombie, true, true); + + ItemStack[] armors = new ItemStack[] + { + SkinData.LEPRECHAUN.getSkull(), + ItemStackFactory.Instance.createColoredLeatherArmor(0, org.bukkit.Color.fromRGB(1, 153, 0)), + ItemStackFactory.Instance.createColoredLeatherArmor(0, org.bukkit.Color.fromRGB(2, 153, 0)), + ItemStackFactory.Instance.createColoredLeatherArmor(0, org.bukkit.Color.fromRGB(3, 153, 0)) + }; + + zombie.getEquipment().setArmorContents(armors); + } _activePetOwnerTypes.put(player.getName(), petType); _activePetOwners.put(player.getName(), pet); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetType.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetType.java index d3aba90ab..fa16e8a11 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetType.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetType.java @@ -6,6 +6,7 @@ import java.util.Optional; import org.bukkit.Material; import org.bukkit.entity.EntityType; +import org.bukkit.inventory.ItemStack; import mineplex.core.pet.sales.PetSalesPackage; @@ -30,7 +31,8 @@ public enum PetType BLAZE("Grim Reaper", EntityType.BLAZE, -8, "Aww isn't he so cute with his little wings and little scythe?"), GINGERBREAD_MAN("Gingerbread Man", EntityType.ZOMBIE, -16, "Looks like you can catch him after all."), CUPID_PET("Cupid", EntityType.ZOMBIE, -17, "Sometimes you need a little extra help finding true Love. Why not have Cupid help you out?", Material.BOW, (byte) 0), - TRUE_LOVE_PET("True Love", EntityType.ZOMBIE, -14, "Sometimes love means chasing the person of your dreams until you catch them.", Material.APPLE, YearMonth.of(2017, Month.FEBRUARY)) + TRUE_LOVE_PET("True Love", EntityType.ZOMBIE, -14, "Sometimes love means chasing the person of your dreams until you catch them.", Material.APPLE, YearMonth.of(2017, Month.FEBRUARY)), + LEPRECHAUN("Leprechaun", EntityType.ZOMBIE, -18, "Placeholder") // TODO CHECK IF LOBBY IS 1.9+ // Not in this update //SHULKER("Shulker Pet", EntityType.BAT, 0, "Is it a turtle or an alien? Either way its shot can be really UPLIFTING.") @@ -42,6 +44,7 @@ public enum PetType private final Material _material; private final byte _data; private YearMonth _yearMonth; + private ItemStack _displayItem; PetType(String name, EntityType entityType, int price) { @@ -84,6 +87,12 @@ public enum PetType _yearMonth = yearMonth; } + PetType(String name, EntityType entityType, int price, String lore, ItemStack displayItem) + { + this(name, entityType, price, lore); + _displayItem = displayItem; + } + public String getName() { return _name; @@ -114,6 +123,15 @@ public enum PetType return _data; } + public ItemStack getDisplayItem() + { + if (_displayItem == null) + { + return new ItemStack(_material, _data); + } + return _displayItem; + } + public YearMonth getYearMonth() { return _yearMonth; From 8088cef29f7d080351b360709e4392e38f7f37ba Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Thu, 23 Feb 2017 20:12:11 -0300 Subject: [PATCH 008/133] Leprechaun pet fixed --- .../core/cosmetic/ui/page/PetPage.java | 25 +++---------------- .../src/mineplex/core/pet/PetManager.java | 14 ++++------- .../src/mineplex/core/pet/PetType.java | 5 ++-- 3 files changed, 12 insertions(+), 32 deletions(-) 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 e338dc8fc..4feb82934 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 @@ -169,7 +169,8 @@ public class PetPage extends ShopPageBase ItemStack item = pet.getDisplayItem(); ItemMeta itemMeta = item.getItemMeta(); - itemMeta.setDisplayName("A"); + itemMeta.setDisplayName(C.cGreen + C.Bold + pet.getName() + C.cGreen + " (" + C.cWhite + petName + C.cGreen + ")"); + itemMeta.setLore(itemLore); item.setItemMeta(itemMeta); addButton(slot, new ShopItem(item, false, false).hideInfo(), new DeactivatePetButton(this, getPlugin().getPetManager())); @@ -180,29 +181,11 @@ public class PetPage extends ShopPageBase { itemLore.add(C.cBlack); itemLore.add(C.cGreen + "Click to Enable"); - /* - ItemStack petItem = ItemStackFactory.Instance.CreateStack(pet.getMaterial(), pet.getData(), 1, - pet.getName() + " (" + C.cWhite + petName + C.cGreen + ")", itemLore); - - IButton iButton = new ActivatePetButton(pet, this); - - if (pet.equals(PetType.SHULKER)) - { - petItem = UtilItem.getVersionSpecificItem(_player, UtilPlayer.PlayerVersion._1_9, petItem); - if (petItem.getType().equals(Material.BARRIER)) - { - iButton = null; - } - else - { - // Does not set the item stack yet - //petItem.setType(Material.getMaterial(201)); - } - }*/ ItemStack item = pet.getDisplayItem(); ItemMeta itemMeta = item.getItemMeta(); - itemMeta.setDisplayName("A"); + itemMeta.setDisplayName(C.cGreen + C.Bold + pet.getName() + C.cGreen + " (" + C.cWhite + petName + C.cGreen + ")"); + itemMeta.setLore(itemLore); item.setItemMeta(itemMeta); addButton(slot, new ShopItem(item, false, false).hideInfo(), new ActivatePetButton(pet, this)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java index fb9d96e57..fbf972c22 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java @@ -398,17 +398,13 @@ public class PetManager extends MiniClientPlugin zombie.setBaby(true); UtilEnt.silence(zombie, true); - UtilEnt.ghost(zombie, true, true); - ItemStack[] armors = new ItemStack[] - { - SkinData.LEPRECHAUN.getSkull(), - ItemStackFactory.Instance.createColoredLeatherArmor(0, org.bukkit.Color.fromRGB(1, 153, 0)), - ItemStackFactory.Instance.createColoredLeatherArmor(0, org.bukkit.Color.fromRGB(2, 153, 0)), - ItemStackFactory.Instance.createColoredLeatherArmor(0, org.bukkit.Color.fromRGB(3, 153, 0)) - }; + zombie.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, Integer.MAX_VALUE, 1, false, false)); - zombie.getEquipment().setArmorContents(armors); + zombie.getEquipment().setHelmet(SkinData.LEPRECHAUN.getSkull()); + zombie.getEquipment().setChestplate(ItemStackFactory.Instance.createColoredLeatherArmor(1, org.bukkit.Color.fromRGB(0, 153, 0))); + zombie.getEquipment().setLeggings(ItemStackFactory.Instance.createColoredLeatherArmor(2, org.bukkit.Color.fromRGB(0, 153, 0))); + zombie.getEquipment().setBoots(ItemStackFactory.Instance.createColoredLeatherArmor(3, org.bukkit.Color.fromRGB(0, 153, 0))); } _activePetOwnerTypes.put(player.getName(), petType); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetType.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetType.java index fa16e8a11..52d953443 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetType.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetType.java @@ -8,6 +8,7 @@ import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.inventory.ItemStack; +import mineplex.core.common.skin.SkinData; import mineplex.core.pet.sales.PetSalesPackage; public enum PetType @@ -32,7 +33,7 @@ public enum PetType GINGERBREAD_MAN("Gingerbread Man", EntityType.ZOMBIE, -16, "Looks like you can catch him after all."), CUPID_PET("Cupid", EntityType.ZOMBIE, -17, "Sometimes you need a little extra help finding true Love. Why not have Cupid help you out?", Material.BOW, (byte) 0), TRUE_LOVE_PET("True Love", EntityType.ZOMBIE, -14, "Sometimes love means chasing the person of your dreams until you catch them.", Material.APPLE, YearMonth.of(2017, Month.FEBRUARY)), - LEPRECHAUN("Leprechaun", EntityType.ZOMBIE, -18, "Placeholder") + LEPRECHAUN("Leprechaun", EntityType.ZOMBIE, -18, "Placeholder", SkinData.LEPRECHAUN.getSkull()) // TODO CHECK IF LOBBY IS 1.9+ // Not in this update //SHULKER("Shulker Pet", EntityType.BAT, 0, "Is it a turtle or an alien? Either way its shot can be really UPLIFTING.") @@ -127,7 +128,7 @@ public enum PetType { if (_displayItem == null) { - return new ItemStack(_material, _data); + return new ItemStack(_material, 1, _data); } return _displayItem; } From a32cb6ab2fe778974ccf8a57bd1e1d3007f1f166 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Fri, 24 Feb 2017 19:39:54 -0300 Subject: [PATCH 009/133] Mount --- .../stpatricks/OutfitStPatricksSuit.java | 8 +- .../src/mineplex/core/mount/MountManager.java | 5 +- .../mount/types/MountStPatricksHorse.java | 119 ++++++++++++++++++ .../particleeffects/RainbowTrailEffect.java | 112 +++++++++++++++++ 4 files changed, 238 insertions(+), 6 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTrailEffect.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java index 74a3ff429..dd3adc971 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java @@ -65,14 +65,14 @@ public class OutfitStPatricksSuit extends OutfitGadget if (!setActive(event.getPlayer())) return; - // Drops emeralds + // Drops gold ItemStack itemStack = new ItemStack(Material.GOLD_INGOT); ItemMeta itemMeta = itemStack.getItemMeta(); itemMeta.setDisplayName("DROPPED" + System.currentTimeMillis() + UtilMath.random.nextInt()); itemStack.setItemMeta(itemMeta); - Item emerald = event.getPlayer().getWorld().dropItem(event.getPlayer().getLocation().add(0.5, 1.5, 0.5), itemStack); - _items.add(emerald); - emerald.setVelocity(new Vector((Math.random()-0.5)*0.3, Math.random()-0.4, (Math.random()-0.5)*0.3)); + Item gold = event.getPlayer().getWorld().dropItem(event.getPlayer().getLocation().add(0.5, 1.5, 0.5), itemStack); + _items.add(gold); + gold.setVelocity(new Vector((Math.random()-0.5)*0.3, Math.random()-0.4, (Math.random()-0.5)*0.3)); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/MountManager.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/MountManager.java index 869f8e261..6371980f2 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/MountManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/MountManager.java @@ -35,6 +35,7 @@ import mineplex.core.mount.types.MountMule; import mineplex.core.mount.types.MountNightmareSteed; import mineplex.core.mount.types.MountSlime; import mineplex.core.mount.types.MountSpider; +import mineplex.core.mount.types.MountStPatricksHorse; import mineplex.core.mount.types.MountTitan; import mineplex.core.mount.types.MountUndead; import mineplex.core.mount.types.MountValentinesSheep; @@ -48,7 +49,7 @@ public class MountManager extends MiniPlugin private DisguiseManager _disguiseManager; private List> _types; - private NautHashMap> _playerActiveMountMap = new NautHashMap>(); + private NautHashMap> _playerActiveMountMap = new NautHashMap<>(); public MountManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, BlockRestore blockRestore, DisguiseManager disguiseManager) { @@ -79,10 +80,10 @@ public class MountManager extends MiniPlugin _types.add(new MountValentinesSheep(this)); _types.add(new MountFreedomHorse(this)); _types.add(new MountNightmareSteed(this)); - // Hidden in this update _types.add(new MountChicken(this)); _types.add(new MountCake(this)); _types.add(new MountLoveTrain(this)); + _types.add(new MountStPatricksHorse(this)); //_types.add(new MountSheep(this)); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java new file mode 100644 index 000000000..7129556b8 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java @@ -0,0 +1,119 @@ +package mineplex.core.mount.types; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.entity.Horse; +import org.bukkit.entity.Item; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.HorseJumpEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.inventory.ItemStack; + +import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilText; +import mineplex.core.mount.HorseMount; +import mineplex.core.mount.MountManager; +import mineplex.core.mount.SingleEntityMountData; +import mineplex.core.particleeffects.RainbowTrailEffect; +import mineplex.core.recharge.Recharge; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; + +public class MountStPatricksHorse extends HorseMount +{ + + private HashSet _items = new HashSet<>(); + private Map, RainbowTrailEffect> _trailMap = new HashMap<>(); + + public MountStPatricksHorse(MountManager manager) + { + super(manager, "St Patrick's Mount", + UtilText.splitLineToArray(UtilText.colorWords("The British might be coming, but with this impressive mount you have nothing to fear.", + ChatColor.RED, ChatColor.WHITE, ChatColor.BLUE), LineFormat.LORE), + Material.FIREWORK, (byte) 0, -7, Horse.Color.WHITE, Horse.Style.WHITE, Horse.Variant.HORSE, 1, null); + } + + @Override + public void enableCustom(Player player) + { + super.enableCustom(player); + SingleEntityMountData horseData = getActive().get(player); + horseData.getEntity().getInventory().setArmor(new ItemStack(Material.GOLD_BARDING)); + _trailMap.put(horseData, new RainbowTrailEffect(horseData.getEntity(), Manager.getPlugin(), _items)); + _trailMap.get(horseData).start(); + } + + @Override + public void disable(Player player) + { + super.disable(player); + List> toRemove = new ArrayList<>(); + for (SingleEntityMountData horseData : _trailMap.keySet()) + { + if (horseData.getOwner().equals(player)) + toRemove.add(horseData); + } + for (SingleEntityMountData horseData : toRemove) + { + _trailMap.get(horseData).stop(); + _trailMap.remove(horseData); + } + } + + @EventHandler + public void horseJump(HorseJumpEvent event) + { + for (SingleEntityMountData horseData : _trailMap.keySet()) + { + if (horseData.getEntity().equals(event.getEntity())) + { + if (!Recharge.Instance.use(horseData.getOwner(), getName(), 2500, false, false, "Cosmetics")) + { + event.setPower(0f); + event.setCancelled(true); + return; + } + _trailMap.get(horseData).setJumping(true); + } + } + } + + @EventHandler + public void onItemPickup(PlayerPickupItemEvent event) + { + if (_items.contains(event.getItem())) + { + event.setCancelled(true); + } + } + + @EventHandler + public void onUpdate(UpdateEvent event) + { + if (event.getType() == UpdateType.TICK) + cleanItems(); + } + + public void cleanItems() + { + Iterator it = _items.iterator(); + while (it.hasNext()) + { + Item item = it.next(); + if (item.getTicksLived() >= 20) + { + item.remove(); + it.remove(); + } + } + } + +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTrailEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTrailEffect.java new file mode 100644 index 000000000..f707165b7 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTrailEffect.java @@ -0,0 +1,112 @@ +package mineplex.core.particleeffects; + +import java.awt.Color; +import java.util.HashSet; + +import org.bukkit.Material; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Item; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.util.Vector; + +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.particles.ColoredParticle; +import mineplex.core.common.util.particles.DustSpellColor; + +public class RainbowTrailEffect extends Effect +{ + + private HashSet _items; + + private Color _color = Color.RED; + private long _count, _jumpingTimer = 0; + private boolean _isJumping = false; + private Entity _entity; + + private Color _red = new Color(255, 0, 0); + private Color _orange = new Color(255, 127, 0); + private Color _yellow = new Color(255, 255, 0); + private Color _green = new Color(0, 255, 0); + private Color _blue = new Color(0, 0, 255); + private Color _indigo = new Color(75, 0, 130); + private Color _violet = new Color(143, 0, 255); + + public RainbowTrailEffect(Entity entity, JavaPlugin javaPlugin, HashSet items) + { + super(-1, new EffectLocation(entity), javaPlugin); + _entity = entity; + _items = items; + } + + @Override + public void runEffect() + { + if (!_entity.isValid() || _entity.isDead()) + { + stop(); + return; + } + ColoredParticle coloredParticle = new ColoredParticle(UtilParticle.ParticleType.RED_DUST, + new DustSpellColor(_color), _effectLocation.getLocation().clone().add(0, .5, 0)); + for (int i = 0; i < 7; i++) + { + coloredParticle.setLocation(_effectLocation.getLocation().clone().add(0, .5, 0)); + coloredParticle.display(); + if (_isJumping) + { + coloredParticle.setLocation(_effectLocation.getLocation().clone().add(.25, .5, 0)); + coloredParticle.display(); + coloredParticle.setLocation(_effectLocation.getLocation().clone().add(0, .5, .25)); + coloredParticle.display(); + } + } + if (_isJumping) + { + _jumpingTimer++; + if (_jumpingTimer >= 30) + { + setJumping(false); + _jumpingTimer = 0; + } + } + _count++; + if (_count % 5 == 0) + { + if (_color.equals(_red)) + _color = _orange; + else if (_color.equals(_orange)) + _color = _yellow; + else if (_color.equals(_yellow)) + _color = _green; + else if (_color.equals(_green)) + _color = _blue; + else if (_color.equals(_blue)) + _color = _indigo; + else if (_color.equals(_indigo)) + _color = _violet; + else + _color = _red; + } + if (_count == Long.MAX_VALUE - 1) + _count = 0; + } + + public void setJumping(boolean jumping) + { + _isJumping = jumping; + if (_isJumping) + { + ItemStack itemStack = new ItemStack(Material.GOLD_INGOT); + ItemMeta itemMeta = itemStack.getItemMeta(); + itemMeta.setDisplayName("DROPPED" + System.currentTimeMillis() + UtilMath.random.nextInt()); + itemStack.setItemMeta(itemMeta); + Item gold = _entity.getWorld().dropItem(_entity.getLocation().add(0.5, 1.5, 0.5), itemStack); + _items.add(gold); + gold.setVelocity(new Vector((Math.random()-0.5)*0.3, Math.random()-0.4, (Math.random()-0.5)*0.3)); + } + } + +} From b2fd8ac748ca45f591c46290ab5389385f970acf Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Fri, 24 Feb 2017 22:06:18 -0300 Subject: [PATCH 010/133] Rainbow taunt --- .../gadget/gadgets/taunts/RainbowTaunt.java | 48 ++++++++++++ .../particleeffects/RainbowTauntEffect.java | 76 +++++++++++++++++++ .../particleeffects/RainbowTrailEffect.java | 3 +- 3 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/RainbowTaunt.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java 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 new file mode 100644 index 000000000..c506fd575 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/taunts/RainbowTaunt.java @@ -0,0 +1,48 @@ +package mineplex.core.gadget.gadgets.taunts; + +import org.bukkit.Material; +import org.bukkit.entity.Player; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilText; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.types.TauntGadget; +import mineplex.core.recharge.Recharge; + +public class RainbowTaunt extends TauntGadget +{ + + private static final int COOLDOWN = 30000; + private static final int PVP_COOLDOWN = 10000; + + public RainbowTaunt(GadgetManager manager) + { + super(manager, "Rainbow Taunt", UtilText.splitLinesToArray(new String[]{C.cGray + "Placeholder"}, + LineFormat.LORE), -18, Material.GLASS, (byte) 0); + setCanPlayWithPvp(false); + setPvpCooldown(PVP_COOLDOWN); + } + + @Override + public void onStart(Player player) + { + if (!Recharge.Instance.use(player, getName(), COOLDOWN, true, false, "Cosmetics")) + return; + + + } + + @Override + public void onPlay(Player player) + { + + } + + @Override + public void onFinish(Player player) + { + + } + +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java new file mode 100644 index 000000000..8af6585b0 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java @@ -0,0 +1,76 @@ +package mineplex.core.particleeffects; + +import java.awt.Color; + +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.util.Vector; + +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.particles.ColoredParticle; +import mineplex.core.common.util.particles.DustSpellColor; + +public class RainbowTauntEffect extends Effect +{ + + private static final int PARTICLES = 100; + private static final int HEIGHT = 5; + + private int _step = 0; + + private Color _red = new Color(255, 0, 0); + private Color _orange = new Color(255, 127, 0); + private Color _yellow = new Color(255, 255, 0); + private Color _green = new Color(0, 255, 0); + private Color _blue = new Color(0, 0, 255); + private Color _indigo = new Color(75, 0, 130); + private Color _violet = new Color(143, 0, 255); + + private Color _color = _red; + + public RainbowTauntEffect(Player player, JavaPlugin javaPlugin) + { + super(-1, new EffectLocation(player), javaPlugin); + } + + @Override + public void runEffect() + { + Location location = getEffectLocation().getLocation(); + Location target = getTargetLocation().getLocation(); + Vector link = target.toVector().subtract(location.toVector()); + float length = (float) link.length(); + float pitch = (float) (4 * HEIGHT / Math.pow(length, 2)); + for (int i = 0; i < PARTICLES; i++) { + Vector v = link.clone().normalize().multiply(length * i / PARTICLES); + float x = ((float) i / PARTICLES) * length - length / 2; + float y = (float) (-pitch * Math.pow(x, 2) + HEIGHT); + location.add(v).add(0, y, 0); + ColoredParticle coloredParticle = new ColoredParticle(UtilParticle.ParticleType.RED_DUST, + new DustSpellColor(_color), _effectLocation.getLocation().clone().add(0, .5, 0)); + coloredParticle.display(); + location.subtract(0, y, 0).subtract(v); + + _step++; + if (_step % 5 == 0) + { + if (_color.equals(_red)) + _color = _orange; + else if (_color.equals(_orange)) + _color = _yellow; + else if (_color.equals(_yellow)) + _color = _green; + else if (_color.equals(_green)) + _color = _blue; + else if (_color.equals(_blue)) + _color = _indigo; + else if (_color.equals(_indigo)) + _color = _violet; + else + _color = _red; + } + } + } + +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTrailEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTrailEffect.java index f707165b7..04652f71e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTrailEffect.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTrailEffect.java @@ -21,7 +21,6 @@ public class RainbowTrailEffect extends Effect private HashSet _items; - private Color _color = Color.RED; private long _count, _jumpingTimer = 0; private boolean _isJumping = false; private Entity _entity; @@ -34,6 +33,8 @@ public class RainbowTrailEffect extends Effect private Color _indigo = new Color(75, 0, 130); private Color _violet = new Color(143, 0, 255); + private Color _color = _red; + public RainbowTrailEffect(Entity entity, JavaPlugin javaPlugin, HashSet items) { super(-1, new EffectLocation(entity), javaPlugin); From d471ac112ec61a83eac2dcbc5a60578a7ceb69fe Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Fri, 24 Feb 2017 22:08:04 -0300 Subject: [PATCH 011/133] Fixed rainbow taunt a bit --- .../src/mineplex/core/gadget/gadgets/taunts/RainbowTaunt.java | 4 +++- .../src/mineplex/core/particleeffects/RainbowTauntEffect.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) 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 c506fd575..25e6f8557 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 @@ -8,6 +8,7 @@ import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilText; import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.types.TauntGadget; +import mineplex.core.particleeffects.RainbowTauntEffect; import mineplex.core.recharge.Recharge; public class RainbowTaunt extends TauntGadget @@ -30,7 +31,8 @@ public class RainbowTaunt extends TauntGadget if (!Recharge.Instance.use(player, getName(), COOLDOWN, true, false, "Cosmetics")) return; - + RainbowTauntEffect rainbowTauntEffect = new RainbowTauntEffect(player, Manager.getPlugin()); + rainbowTauntEffect.start(); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java index 8af6585b0..5875ea06c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java @@ -31,7 +31,7 @@ public class RainbowTauntEffect extends Effect public RainbowTauntEffect(Player player, JavaPlugin javaPlugin) { - super(-1, new EffectLocation(player), javaPlugin); + super(80, new EffectLocation(player), javaPlugin); } @Override From 7201e0ec0de349eefecf63c7a0bbec8009ab7b02 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Fri, 24 Feb 2017 22:08:36 -0300 Subject: [PATCH 012/133] Added taunt to menu --- .../Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java index 912f96dbc..1d459ecb4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java @@ -180,6 +180,7 @@ 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.EternalTaunt; +import mineplex.core.gadget.gadgets.taunts.RainbowTaunt; import mineplex.core.gadget.gadgets.wineffect.WinEffectBabyChicken; import mineplex.core.gadget.gadgets.wineffect.WinEffectFlames; import mineplex.core.gadget.gadgets.wineffect.WinEffectHalloween; @@ -570,6 +571,7 @@ public class GadgetManager extends MiniPlugin // TAUNTS!!! addGadget(new EternalTaunt(this)); addGadget(new BlowAKissTaunt(this)); + addGadget(new RainbowTaunt(this)); for (GadgetType gadgetType : GadgetType.values()) { From 28746c7873af35ec7013cba93e04a0bfc707ead8 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Thu, 2 Mar 2017 15:50:56 -0300 Subject: [PATCH 013/133] St Patricks Chest --- .../mineplex/core/reward/RewardManager.java | 19 ++++++++++ .../src/mineplex/core/reward/RewardPool.java | 1 + .../src/mineplex/core/reward/RewardType.java | 1 + .../mineplex/core/treasure/TreasureStyle.java | 7 ++++ .../mineplex/core/treasure/TreasureType.java | 4 ++- .../core/treasure/gui/BuyChestButton.java | 9 +++++ .../core/treasure/gui/TreasurePage.java | 35 ++++++++++++++++++- 7 files changed, 74 insertions(+), 2 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java index 8475fb95f..ea083fbbf 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java @@ -91,6 +91,10 @@ import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitBoots; import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitChestplate; import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitHelmet; import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitLeggings; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksBoots; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksChestplate; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksHat; +import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksLeggings; import mineplex.core.gadget.gadgets.particle.ParticleChristmasTree; import mineplex.core.gadget.gadgets.particle.ParticleCoalFumes; import mineplex.core.gadget.gadgets.particle.ParticleFairy; @@ -113,6 +117,7 @@ import mineplex.core.gadget.gadgets.particle.shadow.ParticleFoot; 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; import mineplex.core.gadget.gadgets.wineffect.WinEffectFlames; import mineplex.core.gadget.gadgets.wineffect.WinEffectHalloween; @@ -140,6 +145,7 @@ import mineplex.core.mount.types.MountMule; import mineplex.core.mount.types.MountNightmareSteed; import mineplex.core.mount.types.MountSlime; import mineplex.core.mount.types.MountSpider; +import mineplex.core.mount.types.MountStPatricksHorse; import mineplex.core.mount.types.MountUndead; import mineplex.core.mount.types.MountValentinesSheep; import mineplex.core.mount.types.MountZombie; @@ -545,6 +551,11 @@ public class RewardManager addPetReward(Type.LOVECHEST, PetType.CUPID_PET, rarity, 50, 500); addGadget(Type.LOVECHEST, getGadget(WinEffectLoveIsABattlefield.class), rarity, 100, 500); + + // ST PATRICKS + addGadget(Type.STPATRICKS, getGadget(OutfitStPatricksChestplate.class), rarity, 50); + addGadget(Type.STPATRICKS, getGadget(OutfitStPatricksLeggings.class), rarity, 50); + addGadget(Type.STPATRICKS, getGadget(OutfitStPatricksBoots.class), rarity, 50); } public void addLegendary() @@ -761,6 +772,14 @@ public class RewardManager addGadget(Type.LOVECHEST, getGadget(MorphLoveDoctor.class), rarity, 30, 5000); addGadget(Type.LOVECHEST, getGadget(BlowAKissTaunt.class), rarity, 50, 5000); addGadget(Type.LOVECHEST, getGadget(ParticleWingsLove.class), rarity, 10, 5000); + + // ST PATRICKS + addGadget(Type.STPATRICKS, getGadget(RainbowTaunt.class), rarity, 30); + addGadget(Type.STPATRICKS, getGadget(OutfitStPatricksHat.class), rarity, 15); + + addPetReward(Type.STPATRICKS, PetType.LEPRECHAUN, rarity, 30); + + addMount(Type.STPATRICKS, getMount(MountStPatricksHorse.class), rarity, 30); } public UnknownPackageReward addMount(Type type, Mount mount, RewardRarity rarity, int weight) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardPool.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardPool.java index c8a1fc4fc..870dce7c2 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardPool.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardPool.java @@ -65,6 +65,7 @@ public class RewardPool GINGERBREAD(false, 1), MINESTRIKE(true, 2), LOVECHEST(false, 1), + STPATRICKS(false, 1), CARL_SPINNER(true); private boolean _useDuplicates; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardType.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardType.java index f235c8dda..33381f37e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardType.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardType.java @@ -21,6 +21,7 @@ public enum RewardType MINESTRIKE_CHEST( 0, 2, 16, 0), LOVE_CHEST( 0, 6, 18, 0), VALENTINES_GIFT( 0, 7, 20, 20), + ST_PATRICKS( 0, 6, 18, 0), SPINNER_FILLER( 0.1, 1, 4, 20), SPINNER_REAL( 0.000001, 0.05, 0.4, 5); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureStyle.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureStyle.java index aab8d9172..b29622c3d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureStyle.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureStyle.java @@ -90,6 +90,13 @@ public enum TreasureStyle ParticleType.HEART, Sound.VILLAGER_YES, Sound.VILLAGER_YES + ), + STPATRICKS( + ParticleType.HAPPY_VILLAGER, + ParticleType.HAPPY_VILLAGER, + ParticleType.HAPPY_VILLAGER, + Sound.VILLAGER_YES, + Sound.VILLAGER_YES ); private ParticleType _secondaryParticle; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureType.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureType.java index 8766e644a..c81c578c6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureType.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureType.java @@ -32,7 +32,9 @@ public enum TreasureType MINESTRIKE(C.cGold + "Minestrike Treasure", "Minestrike Chest", "MinestrikeChest", RewardType.MINESTRIKE_CHEST, Material.CHEST, TreasureStyle.MINESTRIKE, RewardPool.Type.MINESTRIKE, true, 10000), - LOVE_CHEST(C.cRed + "Love Treasure", "Love Chest", "LoveChest", RewardType.LOVE_CHEST, Material.CHEST, TreasureStyle.LOVECHEST, RewardPool.Type.LOVECHEST, true, 20000); + LOVE_CHEST(C.cRed + "Love Treasure", "Love Chest", "LoveChest", RewardType.LOVE_CHEST, Material.CHEST, TreasureStyle.LOVECHEST, RewardPool.Type.LOVECHEST, true, 20000), + + ST_PATRICKS(C.cGreen + "St Patrick's Treasure", "St Patricks Chest", "StPatricksChest", RewardType.ST_PATRICKS, Material.CHEST, TreasureStyle.STPATRICKS,RewardPool.Type.STPATRICKS, true, 20000); private final String _name; private final RewardType _rewardType; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/BuyChestButton.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/BuyChestButton.java index ef1e9775a..12bc94e90 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/BuyChestButton.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/BuyChestButton.java @@ -49,6 +49,15 @@ public class BuyChestButton implements IButton return; } + if (_chestType == TreasureType.LOVE_CHEST) + { + if (!new File("../../update/files/EnableLoveChest.dat").exists()) + { + player.sendMessage(F.main("Treasure", "That chest is no longer available for purchase!")); + return; + } + } + if (_chestType == TreasureType.TRICK_OR_TREAT) { if (!new File("../../update/files/EnableTrickOrTreat.dat").exists()) 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 4fda07f6c..5fe3c7c31 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java @@ -137,6 +137,7 @@ public class TreasurePage extends ShopPageBase int gingerbreadCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.GINGERBREAD.getItemName()); int minestrikeCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.MINESTRIKE.getItemName()); int loveCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.LOVE_CHEST.getItemName()); + int stpatricksCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.ST_PATRICKS.getItemName()); boolean availableChristmas = false; boolean availableFreedom = false; @@ -144,7 +145,8 @@ public class TreasurePage extends ShopPageBase boolean availableTrick = false; boolean availableThank = false; boolean availableGingerbread = false; - boolean availableLove = new File("../../update/files/EnableLoveChest.dat").exists(); + boolean availableLove = false; + boolean availableStPatricks = new File("../../update/files/EnableStPatricksChest.dat").exists(); List shardLore = new ArrayList<>(); shardLore.add(" "); @@ -407,6 +409,30 @@ public class TreasurePage extends ShopPageBase } } + List stpatricksLore = Lists.newArrayList(); + stpatricksLore.add(" "); + stpatricksLore.add(F.value("Love Chests Owned", "" + loveCount)); + stpatricksLore.add(" "); + stpatricksLore.addAll(UtilText.splitLines(new String[]{C.cGray + "Placeholder"}, LineFormat.LORE)); + stpatricksLore.add(" "); + if (stpatricksCount > 0) + { + stpatricksLore.add(C.cGreen + "Click to Open!"); + } + else + { + if (!availableStPatricks) + { + stpatricksLore.add(C.cRed + "This item is no longer available"); + } + else + { + stpatricksLore.add(ChatColor.RESET + "Click to craft for " + C.cAqua + TreasureType.LOVE_CHEST.getPurchasePrice() + " Treasure Shards"); + stpatricksLore.add(" "); + stpatricksLore.add(ChatColor.RESET + "or Purchase at: " + C.cYellow + "www.mineplex.com/shop"); + } + } + ShopItem shards = new ShopItem(Material.PRISMARINE_SHARD, C.cAqua + C.Bold + treasureShards + " Treasure Shards", shardLore.toArray(new String[0]), 0, false); // Normal chests @@ -425,6 +451,7 @@ public class TreasurePage extends ShopPageBase ItemStack thank = new ShopItem(Material.COOKED_CHICKEN, C.cGoldB + "Thankful Treasure", thankLore.toArray(new String[0]), 0, false, false); ItemStack gingerbread = SkinData.GINGERBREAD.getSkull(C.cRedB + "Gingerbread" + C.cGreenB + " Treasure", gingerbreadLore); ItemStack lovechest = new ShopItem(Material.WOOL, (byte) 6, C.cRedB + "Love Chest", lovechestLore.toArray(new String[0]), 0, false, false); + ItemStack stpatricks = SkinData.LEPRECHAUN.getSkull(C.cGreenB + "St Patrick's Treasure", stpatricksLore); // Adds shard item addItem(49, shards); @@ -447,6 +474,7 @@ public class TreasurePage extends ShopPageBase TreasurePageItem thankTreasureItem = new TreasurePageItem(thank, thankCount, TreasureType.THANKFUL); TreasurePageItem gingerbreadTreasureItem = new TreasurePageItem(gingerbread, gingerbreadCount, TreasureType.GINGERBREAD); TreasurePageItem loveChestItem = new TreasurePageItem(lovechest, loveCount, TreasureType.LOVE_CHEST); + TreasurePageItem stPatricksItem = new TreasurePageItem(stpatricks, stpatricksCount, TreasureType.ST_PATRICKS); _normalTreasures.add(oldTreasureItem); _normalTreasures.add(ancientTreasureItem); @@ -455,6 +483,11 @@ public class TreasurePage extends ShopPageBase _normalTreasures.add(omegaTreasureItem); _normalTreasures.add(minestrikeTreasureItem); + if (availableStPatricks) + _specialTreasures.add(stPatricksItem); + else + _seasonalTreasures.add(stPatricksItem); + if (availableLove) _specialTreasures.add(loveChestItem); else From 2b18d62f0fd4b8d42edb9968be32ec20f9ebbebe Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Fri, 3 Mar 2017 21:50:16 -0300 Subject: [PATCH 014/133] Added icons and lores Added floor for the chest Fixed little copy paste error in BuyChestButton Reduced amount of gold in the costume --- .../stpatricks/OutfitStPatricksSuit.java | 37 ++++++++----------- .../gadget/gadgets/taunts/RainbowTaunt.java | 5 ++- .../mount/types/MountStPatricksHorse.java | 7 ++-- .../src/mineplex/core/pet/PetType.java | 2 +- .../animation/BlockChangeAnimation.java | 10 +++++ .../core/treasure/gui/BuyChestButton.java | 12 +----- 6 files changed, 34 insertions(+), 39 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java index dd3adc971..48cd96acb 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java @@ -8,7 +8,6 @@ import org.bukkit.Material; import org.bukkit.entity.Item; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; -import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -31,7 +30,7 @@ public class OutfitStPatricksSuit extends OutfitGadget public OutfitStPatricksSuit(GadgetManager manager, String name, int cost, OutfitGadget.ArmorSlot slot, Material mat, byte data) { - super(manager, name, UtilText.splitLinesToArray(new String[]{C.cGray + "Placeholder"}, LineFormat.LORE), cost, slot, mat, data); + super(manager, name, UtilText.splitLinesToArray(new String[]{C.cGray + "Wherever a Leprechaun goes he leaves behind a trail of gold and a hint of spring."}, LineFormat.LORE), cost, slot, mat, data); setColor(Color.fromRGB(0, 153, 0)); ItemStack displayItem = new ItemStack(mat, 1, data); if (displayItem.getItemMeta() instanceof LeatherArmorMeta) @@ -55,26 +54,6 @@ public class OutfitStPatricksSuit extends OutfitGadget removeArmor(player, message); } - @EventHandler - public void onPlayerMove(PlayerMoveEvent event) - { - // Prevents event running 4 times - if (getSlot() != ArmorSlot.HELMET) - return; - - if (!setActive(event.getPlayer())) - return; - - // Drops gold - ItemStack itemStack = new ItemStack(Material.GOLD_INGOT); - ItemMeta itemMeta = itemStack.getItemMeta(); - itemMeta.setDisplayName("DROPPED" + System.currentTimeMillis() + UtilMath.random.nextInt()); - itemStack.setItemMeta(itemMeta); - Item gold = event.getPlayer().getWorld().dropItem(event.getPlayer().getLocation().add(0.5, 1.5, 0.5), itemStack); - _items.add(gold); - gold.setVelocity(new Vector((Math.random()-0.5)*0.3, Math.random()-0.4, (Math.random()-0.5)*0.3)); - } - @EventHandler public void onUpdate(UpdateEvent event) { @@ -84,6 +63,20 @@ public class OutfitStPatricksSuit extends OutfitGadget if (event.getType() == UpdateType.TICK) cleanItems(); + + if (event.getType() == UpdateType.FASTER) + { + for (Player player : getActive()) + { + ItemStack itemStack = new ItemStack(Material.GOLD_INGOT); + ItemMeta itemMeta = itemStack.getItemMeta(); + itemMeta.setDisplayName(player.getName() + "DROPPED" + System.currentTimeMillis() + UtilMath.random.nextInt()); + itemStack.setItemMeta(itemMeta); + Item gold = player.getWorld().dropItem(player.getLocation().add(0.5, 1.5, 0.5), itemStack); + _items.add(gold); + gold.setVelocity(new Vector((Math.random() - 0.5) * 0.3, Math.random() - 0.4, (Math.random() - 0.5) * 0.3)); + } + } } @EventHandler 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 25e6f8557..16e94cd67 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 @@ -19,10 +19,11 @@ public class RainbowTaunt extends TauntGadget public RainbowTaunt(GadgetManager manager) { - super(manager, "Rainbow Taunt", UtilText.splitLinesToArray(new String[]{C.cGray + "Placeholder"}, - LineFormat.LORE), -18, Material.GLASS, (byte) 0); + super(manager, "Rainbow Taunt", UtilText.splitLinesToArray(new String[]{C.cGray + "At the end of every Rainbow they say there is a pot of Gold.", C.cWhite + "Type /taunt in game to use this taunt."}, + LineFormat.LORE), -18, Material.WOOL, (byte) 11); setCanPlayWithPvp(false); setPvpCooldown(PVP_COOLDOWN); + setShouldPlay(false); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java index 7129556b8..0558f1644 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java @@ -7,7 +7,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Horse; import org.bukkit.entity.Item; @@ -17,6 +16,7 @@ import org.bukkit.event.entity.HorseJumpEvent; import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.inventory.ItemStack; +import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilText; import mineplex.core.mount.HorseMount; @@ -36,9 +36,8 @@ public class MountStPatricksHorse extends HorseMount public MountStPatricksHorse(MountManager manager) { super(manager, "St Patrick's Mount", - UtilText.splitLineToArray(UtilText.colorWords("The British might be coming, but with this impressive mount you have nothing to fear.", - ChatColor.RED, ChatColor.WHITE, ChatColor.BLUE), LineFormat.LORE), - Material.FIREWORK, (byte) 0, -7, Horse.Color.WHITE, Horse.Style.WHITE, Horse.Variant.HORSE, 1, null); + UtilText.splitLinesToArray(new String[]{C.cGray + "You know the cow that jumped over the moon? Total show off."}, LineFormat.LORE), + Material.CAULDRON, (byte) 0, -7, Horse.Color.WHITE, Horse.Style.WHITE, Horse.Variant.HORSE, 1, null); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetType.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetType.java index 52d953443..e5453d7fe 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetType.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetType.java @@ -33,7 +33,7 @@ public enum PetType GINGERBREAD_MAN("Gingerbread Man", EntityType.ZOMBIE, -16, "Looks like you can catch him after all."), CUPID_PET("Cupid", EntityType.ZOMBIE, -17, "Sometimes you need a little extra help finding true Love. Why not have Cupid help you out?", Material.BOW, (byte) 0), TRUE_LOVE_PET("True Love", EntityType.ZOMBIE, -14, "Sometimes love means chasing the person of your dreams until you catch them.", Material.APPLE, YearMonth.of(2017, Month.FEBRUARY)), - LEPRECHAUN("Leprechaun", EntityType.ZOMBIE, -18, "Placeholder", SkinData.LEPRECHAUN.getSkull()) + LEPRECHAUN("Leprechaun", EntityType.ZOMBIE, -18, "Apparently this little guy lost his Pot of Gold in the war.", SkinData.LEPRECHAUN.getSkull()) // TODO CHECK IF LOBBY IS 1.9+ // Not in this update //SHULKER("Shulker Pet", EntityType.BAT, 0, "Is it a turtle or an alien? Either way its shot can be really UPLIFTING.") diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/BlockChangeAnimation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/BlockChangeAnimation.java index f98716e24..f2629eb1f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/BlockChangeAnimation.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/BlockChangeAnimation.java @@ -94,6 +94,11 @@ public class BlockChangeAnimation extends Animation mat = Material.WOOL; data = 6; } + else if (getTreasure().getTreasureType() == TreasureType.ST_PATRICKS) + { + mat = Material.WOOL; + data = 13; + } else continue; @@ -141,6 +146,11 @@ public class BlockChangeAnimation extends Animation mat = Material.WOOL; data = 14; } + else if (getTreasure().getTreasureType() == TreasureType.ST_PATRICKS) + { + mat = Material.GOLD_BLOCK; + data = 0; + } else continue; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/BuyChestButton.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/BuyChestButton.java index 12bc94e90..087374d5d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/BuyChestButton.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/BuyChestButton.java @@ -49,15 +49,6 @@ public class BuyChestButton implements IButton return; } - if (_chestType == TreasureType.LOVE_CHEST) - { - if (!new File("../../update/files/EnableLoveChest.dat").exists()) - { - player.sendMessage(F.main("Treasure", "That chest is no longer available for purchase!")); - return; - } - } - if (_chestType == TreasureType.TRICK_OR_TREAT) { if (!new File("../../update/files/EnableTrickOrTreat.dat").exists()) @@ -107,7 +98,8 @@ public class BuyChestButton implements IButton } if (!_page.getPlugin().hasItemsToGivePlayer(_chestType.getRewardPool(), player) && (_chestType == TreasureType.ILLUMINATED || _chestType == TreasureType.OMEGA - || _chestType == TreasureType.HAUNTED || _chestType == TreasureType.GINGERBREAD)) + || _chestType == TreasureType.HAUNTED || _chestType == TreasureType.GINGERBREAD + || _chestType == TreasureType.ST_PATRICKS)) { player.sendMessage(F.main("Treasure", "You seem to have all treasures for this chest unlocked already!")); return; From 4a496ea4c16dd1b22731ca46dc3914b8f381dcdc Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Fri, 3 Mar 2017 22:34:21 -0300 Subject: [PATCH 015/133] Added particle for when opening the chests --- .../core/common/shape/ShapeWings.java | 24 +++++++++++++++++++ .../animation/ChestSpawnAnimation.java | 15 +++++++++--- 2 files changed, 36 insertions(+), 3 deletions(-) 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 439bf4958..3800260ed 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 @@ -110,6 +110,30 @@ public class ShapeWings extends ShapeGrid implements CosmeticShape "00000$#$00000", "000000$000000" }; + + public static final String[] FOUR_LEAF_CLOVER = new String[] + { + "$$$$$$$$###$$$$$$$", + "$$$$$$##***#$$$$$$", + "$$$$##****%#$$$$$$", + "$$$#******%#$###$$", + "$$$#***%#%%##***#$", + "$$$$#**%#%#*****#$", + "$$$####*%%#*%%**#$", + "$##***#*%#**##**##", + "#***%%*###******%#", + "#**%##*%###%%%%%%#", + "#**#**%%#**######$", + "$#****%#*****#$$$$", + "$$#*%%%#******#$$$", + "$$#####**%#****#$$", + "$$$$$##**%#***%#$$", + "$$$$$###****%%%#$$", + "$$$$##$#%%%%%##$$$", + "$$$##$$$#####$$$$$", + "$###$$$$$$$$$$$$$$", + "$##$$$$$$$$$$$$$$$" + }; /** diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/ChestSpawnAnimation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/ChestSpawnAnimation.java index ce268629c..04ffd2a14 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/ChestSpawnAnimation.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/ChestSpawnAnimation.java @@ -17,6 +17,7 @@ import org.bukkit.util.Vector; import com.google.common.collect.Lists; import mineplex.core.Managers; +import mineplex.core.common.shape.ShapeWings; import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilBlock; @@ -36,9 +37,6 @@ import mineplex.core.treasure.BlockInfo; import mineplex.core.treasure.Treasure; import mineplex.core.treasure.TreasureType; -/** - * Created by Shaun on 8/29/2014. - */ public class ChestSpawnAnimation extends Animation { private static final int ANIMATION_DURATION = 80; @@ -62,6 +60,10 @@ public class ChestSpawnAnimation extends Animation private List _bats = Lists.newArrayList(); + private ShapeWings _cloverBlack = new ShapeWings(ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '#', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER); + private ShapeWings _cloverDarkGreen = new ShapeWings(ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '%', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER); + private ShapeWings _cloverGreen = new ShapeWings(ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '*', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER); + public ChestSpawnAnimation(Treasure treasure, Block block, List chestBlockInfo, Block openingCenter, double radialOffset, JavaPlugin javaPlugin) { super(treasure); @@ -245,6 +247,13 @@ public class ChestSpawnAnimation extends Animation doBats(true, _centerLocation.clone().add(0, 6, 0), _bats); } } + else if (getTreasure().getTreasureType() == TreasureType.ST_PATRICKS) + { + Location location = _centerLocation.clone().add(0, 5, 0); + _cloverBlack.displayColored(location, Color.BLACK); + _cloverDarkGreen.displayColored(location, new Color(0, 100, 0)); + _cloverGreen.displayColored(location, Color.GREEN); + } //Spawn Chest if (getTicks() >= ANIMATION_DURATION) From d6605e973d731a31c1addedde4c0ad3c4a8e167f Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Fri, 3 Mar 2017 23:38:32 -0300 Subject: [PATCH 016/133] Changed chest animation --- .../core/particleeffects/CloverEffect.java | 33 +++++++++++++++++++ .../src/mineplex/core/treasure/Treasure.java | 12 +++++-- .../animation/ChestSpawnAnimation.java | 19 +++++------ 3 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/particleeffects/CloverEffect.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/CloverEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/CloverEffect.java new file mode 100644 index 000000000..7f62e7100 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/CloverEffect.java @@ -0,0 +1,33 @@ +package mineplex.core.particleeffects; + +import java.awt.Color; + +import org.bukkit.Location; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.util.Vector; + +import mineplex.core.common.shape.ShapeWings; +import mineplex.core.common.util.UtilParticle; + +public class CloverEffect extends Effect +{ + + private ShapeWings _cloverBlack = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '#', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER); + private ShapeWings _cloverDarkGreen = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '%', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER); + private ShapeWings _cloverGreen = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '*', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER); + + public CloverEffect(JavaPlugin plugin, Location location) + { + super(-1, new EffectLocation(location), plugin, 1); + } + + @Override + public void runEffect() + { + Location location = getEffectLocation().getLocation(); + _cloverBlack.displayColored(location, Color.BLACK); + _cloverDarkGreen.displayColored(location, new Color(0, 100, 0)); + _cloverGreen.displayColored(location, Color.GREEN); + } + +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java index 71b04ad99..07811b870 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java @@ -49,9 +49,6 @@ import mineplex.core.treasure.animation.LootRareAnimation; import mineplex.core.treasure.animation.LootUncommonAnimation; import mineplex.core.treasure.animation.TreasureRemoveAnimation; -/** - * Created by Shaun on 8/27/2014. - */ public class Treasure { private BlockRestore _blockRestore; @@ -215,6 +212,15 @@ public class Treasure double rX = Math.random() * 2 - 1, rZ = Math.random() * 2 - 1; UtilParticle.PlayParticle(type, block.getLocation().add(.5 + rX, .7, .5 + rZ), .5f, .5f, .5f, .25f, 1, ViewDist.NORMAL); } + else if (_treasureType == TreasureType.ST_PATRICKS) + { + int r = (int) (Math.random() * 2); + double rX = Math.random() * 2 - 1, rZ = Math.random() * 2 - 1; + ColoredParticle coloredParticle = new ColoredParticle(UtilParticle.ParticleType.RED_DUST, + new DustSpellColor((r == 0) ? Color.GREEN : new Color(0, 100, 0)), + block.getLocation().add(.5 + rX, .7, .5 + rZ)); + coloredParticle.display(); + } else { UtilParticle.PlayParticle(type, block.getLocation().add(0.5, 0.5, 0.5), 0.5F, 0.5F, 0.5F, 0.2F, 0, diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/ChestSpawnAnimation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/ChestSpawnAnimation.java index 04ffd2a14..80eab149e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/ChestSpawnAnimation.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/ChestSpawnAnimation.java @@ -17,7 +17,6 @@ import org.bukkit.util.Vector; import com.google.common.collect.Lists; import mineplex.core.Managers; -import mineplex.core.common.shape.ShapeWings; import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilBlock; @@ -44,7 +43,7 @@ public class ChestSpawnAnimation extends Animation private Block _block; private byte _direction; private Location _centerLocation; - + private Location _particleLocation; private Vector _particleDirection; @@ -60,10 +59,6 @@ public class ChestSpawnAnimation extends Animation private List _bats = Lists.newArrayList(); - private ShapeWings _cloverBlack = new ShapeWings(ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '#', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER); - private ShapeWings _cloverDarkGreen = new ShapeWings(ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '%', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER); - private ShapeWings _cloverGreen = new ShapeWings(ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '*', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER); - public ChestSpawnAnimation(Treasure treasure, Block block, List chestBlockInfo, Block openingCenter, double radialOffset, JavaPlugin javaPlugin) { super(treasure); @@ -136,7 +131,8 @@ public class ChestSpawnAnimation extends Animation UtilParticle.PlayParticle(getTreasure().getTreasureType().getStyle().getSecondaryParticle(), newLoc, 0f, 0f, 0f, 0, 1, ViewDist.NORMAL, UtilServer.getPlayers()); } - else if (getTreasure().getTreasureType() == TreasureType.MYTHICAL || getTreasure().getTreasureType() == TreasureType.MINESTRIKE) + else if (getTreasure().getTreasureType() == TreasureType.MYTHICAL || getTreasure().getTreasureType() == TreasureType.MINESTRIKE || + getTreasure().getTreasureType() == TreasureType.ST_PATRICKS) { float y = 5 * scale; double width = 0.7 * ((double) getTicks() / (double) ANIMATION_DURATION); @@ -155,7 +151,10 @@ public class ChestSpawnAnimation extends Animation } else { - ColoredParticle coloredParticle = new ColoredParticle(ParticleType.RED_DUST, new DustSpellColor(Color.YELLOW), _centerLocation.clone().add(x * width, y, z * width)); + DustSpellColor minestrikeColor = new DustSpellColor(Color.YELLOW); + DustSpellColor stpatricksColor = new DustSpellColor(Color.GREEN); + ColoredParticle coloredParticle = new ColoredParticle(ParticleType.RED_DUST, + (getTreasure().getTreasureType() == TreasureType.MINESTRIKE) ? minestrikeColor : stpatricksColor, _centerLocation.clone().add(x * width, y, z * width)); coloredParticle.display(); } } @@ -250,9 +249,7 @@ public class ChestSpawnAnimation extends Animation else if (getTreasure().getTreasureType() == TreasureType.ST_PATRICKS) { Location location = _centerLocation.clone().add(0, 5, 0); - _cloverBlack.displayColored(location, Color.BLACK); - _cloverDarkGreen.displayColored(location, new Color(0, 100, 0)); - _cloverGreen.displayColored(location, Color.GREEN); + } //Spawn Chest From 85b5eee92f8a33425c737d1657e8dfac1b2fe085 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Sat, 4 Mar 2017 00:40:53 -0300 Subject: [PATCH 017/133] Fixed the rainbow taunt --- .../gadget/gadgets/taunts/RainbowTaunt.java | 9 ++++++ .../particleeffects/RainbowTauntEffect.java | 30 +++++++++++++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) 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 16e94cd67..70e8000b4 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 @@ -1,5 +1,8 @@ package mineplex.core.gadget.gadgets.taunts; +import java.util.HashSet; + +import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -8,6 +11,7 @@ import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilText; import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.types.TauntGadget; +import mineplex.core.particleeffects.EffectLocation; import mineplex.core.particleeffects.RainbowTauntEffect; import mineplex.core.recharge.Recharge; @@ -32,7 +36,12 @@ public class RainbowTaunt extends TauntGadget if (!Recharge.Instance.use(player, getName(), COOLDOWN, true, false, "Cosmetics")) return; + HashSet ignore = new HashSet<>(); + ignore.add(Material.AIR); + Location loc = player.getTargetBlock(ignore, 64).getLocation().add(0.5, 0.5, 0.5); + RainbowTauntEffect rainbowTauntEffect = new RainbowTauntEffect(player, Manager.getPlugin()); + rainbowTauntEffect.setTargetLocation(new EffectLocation(loc)); rainbowTauntEffect.start(); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java index 5875ea06c..886bc3aef 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java @@ -37,7 +37,7 @@ public class RainbowTauntEffect extends Effect @Override public void runEffect() { - Location location = getEffectLocation().getLocation(); + /*Location location = getEffectLocation().getFixedLocation(); Location target = getTargetLocation().getLocation(); Vector link = target.toVector().subtract(location.toVector()); float length = (float) link.length(); @@ -48,7 +48,7 @@ public class RainbowTauntEffect extends Effect float y = (float) (-pitch * Math.pow(x, 2) + HEIGHT); location.add(v).add(0, y, 0); ColoredParticle coloredParticle = new ColoredParticle(UtilParticle.ParticleType.RED_DUST, - new DustSpellColor(_color), _effectLocation.getLocation().clone().add(0, .5, 0)); + new DustSpellColor(_color), location); coloredParticle.display(); location.subtract(0, y, 0).subtract(v); @@ -70,6 +70,32 @@ public class RainbowTauntEffect extends Effect else _color = _red; } + }*/ + Location location = getEffectLocation().getFixedLocation(); + Location target = getTargetLocation().getFixedLocation(); + Color[] colors = new Color[]{_violet, _indigo, _blue, _green, _yellow, _orange, _red}; + + for (int i = 0; i < 7; i++) + { + line(location.clone().add(0, 0.25 * i, 0), target.clone().add(0, 0.25 * i, 0), colors[i]); + } + } + + private void line(Location startLocation, Location targetLocation, Color color) + { + Vector link = targetLocation.toVector().subtract(startLocation.toVector()); + float length = (float) link.length(); + float pitch = (float) (4 * HEIGHT / Math.pow(length, 2)); + for (int i = 0; i < PARTICLES; i++) + { + Vector v = link.clone().normalize().multiply(length * i / PARTICLES); + float x = ((float) i / PARTICLES) * length - length / 2; + float y = (float) (-pitch * Math.pow(x, 2) + HEIGHT); + startLocation.add(v).add(0, y, 0); + ColoredParticle coloredParticle = new ColoredParticle(UtilParticle.ParticleType.RED_DUST, + new DustSpellColor(color), startLocation); + coloredParticle.display(); + startLocation.subtract(0, y, 0).subtract(v); } } From f9b66e28f4650ad0c621ca5a021fe26f78f313d7 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Sat, 4 Mar 2017 14:07:24 -0300 Subject: [PATCH 018/133] Fixed taunts not being disabled correctly --- .../core/cosmetic/ui/page/TauntPage.java | 8 +++++--- .../src/mineplex/core/gadget/GadgetManager.java | 17 +++++++++-------- .../mineplex/core/gadget/types/TauntGadget.java | 1 + 3 files changed, 15 insertions(+), 11 deletions(-) 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 a519cfce8..b4e8a1568 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 @@ -29,7 +29,7 @@ public class TauntPage extends GadgetPage @Override protected void buildPage() { - int slot = 10; + int slot = 10; List list = getPlugin().getGadgetManager().getGadgets(GadgetType.TAUNT); if(list != null) @@ -37,8 +37,10 @@ public class TauntPage extends GadgetPage { addGadget(gadget, slot); - if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.TAUNT) == gadget) - addGlow(slot); + if (gadget.isActive(getPlayer())) + { + addGlow(slot); + } slot++; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java index 1d459ecb4..014504a07 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java @@ -2,8 +2,10 @@ package mineplex.core.gadget; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.UUID; import java.util.function.Predicate; @@ -28,7 +30,6 @@ import mineplex.core.account.CoreClientManager; import mineplex.core.achievement.AchievementManager; import mineplex.core.blockrestore.BlockRestore; import mineplex.core.common.util.F; -import mineplex.core.common.util.NautHashMap; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilPlayer; @@ -256,10 +257,10 @@ public class GadgetManager extends MiniPlugin private TreasureManager _treasureManager; private SoulManager _soulManager; - private NautHashMap> _gadgets; + private Map> _gadgets; - private final NautHashMap _lastMove = new NautHashMap<>(); - private final NautHashMap> _playerActiveGadgetMap = new NautHashMap<>(); + private final Map _lastMove = new HashMap<>(); + private final Map> _playerActiveGadgetMap = new HashMap<>(); private final HashSet _sets = new HashSet<>(); @@ -336,7 +337,7 @@ public class GadgetManager extends MiniPlugin private void createGadgets() { - _gadgets = new NautHashMap<>(); + _gadgets = new HashMap<>(); // Items addGadget(new ItemEtherealPearl(this)); @@ -1040,7 +1041,7 @@ public class GadgetManager extends MiniPlugin public void setActive(Player player, Gadget gadget) { if (!_playerActiveGadgetMap.containsKey(player)) - _playerActiveGadgetMap.put(player, new NautHashMap()); + _playerActiveGadgetMap.put(player, new HashMap<>()); _playerActiveGadgetMap.get(player).put(gadget.getGadgetType(), gadget); } @@ -1048,7 +1049,7 @@ public class GadgetManager extends MiniPlugin public Gadget getActive(Player player, GadgetType gadgetType) { if (!_playerActiveGadgetMap.containsKey(player)) - _playerActiveGadgetMap.put(player, new NautHashMap()); + _playerActiveGadgetMap.put(player, new HashMap<>()); return _playerActiveGadgetMap.get(player).get(gadgetType); } @@ -1056,7 +1057,7 @@ public class GadgetManager extends MiniPlugin public void removeActive(Player player, Gadget gadget) { if (!_playerActiveGadgetMap.containsKey(player)) - _playerActiveGadgetMap.put(player, new NautHashMap()); + _playerActiveGadgetMap.put(player, new HashMap<>()); _playerActiveGadgetMap.get(player).remove(gadget.getGadgetType()); } 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 6076bcf0c..730cbcfcd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/TauntGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/TauntGadget.java @@ -70,6 +70,7 @@ public abstract class TauntGadget extends Gadget @Override public void disableCustom(Player player, boolean message) { + super.disableCustom(player, message); finish(player); } From 3d76f04508332ba7aa1c9911796ba6965a2a6014 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Sat, 4 Mar 2017 16:08:55 -0300 Subject: [PATCH 019/133] Fixed rainbow taunt lagging players --- .../gadget/gadgets/taunts/RainbowTaunt.java | 10 ++-- .../particleeffects/RainbowTauntEffect.java | 60 ++++--------------- .../core/titles/tracks/HolidayCheerTrack.java | 2 +- .../core/titles/tracks/LuckyTrack.java | 4 +- .../titles/tracks/TreasureHunterTrack.java | 4 +- .../src/mineplex/core/treasure/Treasure.java | 5 ++ .../core/treasure/TreasureLocation.java | 6 +- .../core/treasure/TreasureManager.java | 33 +++++++++- .../animation/StPatricksChestAnimation.java | 46 ++++++++++++++ .../treasure/event/TreasureStartEvent.java | 12 ++-- .../core/treasure/gui/TreasurePage.java | 2 +- 11 files changed, 111 insertions(+), 73 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/StPatricksChestAnimation.java 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 70e8000b4..db03bf13a 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 @@ -1,13 +1,12 @@ package mineplex.core.gadget.gadgets.taunts; -import java.util.HashSet; - import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilText; import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.types.TauntGadget; @@ -36,12 +35,11 @@ public class RainbowTaunt extends TauntGadget if (!Recharge.Instance.use(player, getName(), COOLDOWN, true, false, "Cosmetics")) return; - HashSet ignore = new HashSet<>(); - ignore.add(Material.AIR); - Location loc = player.getTargetBlock(ignore, 64).getLocation().add(0.5, 0.5, 0.5); + double randX = UtilMath.random(3.5, 15), randZ = UtilMath.random(3.5, 15); + Location target = player.getLocation().clone().add(randX, 0, randZ); RainbowTauntEffect rainbowTauntEffect = new RainbowTauntEffect(player, Manager.getPlugin()); - rainbowTauntEffect.setTargetLocation(new EffectLocation(loc)); + rainbowTauntEffect.setTargetLocation(new EffectLocation(target)); rainbowTauntEffect.start(); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java index 886bc3aef..8bba6d82c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java @@ -14,66 +14,28 @@ import mineplex.core.common.util.particles.DustSpellColor; public class RainbowTauntEffect extends Effect { - private static final int PARTICLES = 100; - private static final int HEIGHT = 5; + private static final int PARTICLES = 25; + private static final double HEIGHT = 4; - private int _step = 0; - - private Color _red = new Color(255, 0, 0); - private Color _orange = new Color(255, 127, 0); - private Color _yellow = new Color(255, 255, 0); - private Color _green = new Color(0, 255, 0); - private Color _blue = new Color(0, 0, 255); - private Color _indigo = new Color(75, 0, 130); - private Color _violet = new Color(143, 0, 255); - - private Color _color = _red; + private static final Color RED = new Color(255, 0, 0); + private static final Color ORANGE = new Color(255, 127, 0); + private static final Color YELLOW = new Color(255, 255, 0); + private static final Color GREEN = new Color(0, 255, 0); + private static final Color BLUE = new Color(0, 0, 255); + private static final Color INDIGO = new Color(75, 0, 130); + private static final Color VIOLET = new Color(143, 0, 255); public RainbowTauntEffect(Player player, JavaPlugin javaPlugin) { - super(80, new EffectLocation(player), javaPlugin); + super(16, new EffectLocation(player), javaPlugin, 5); } @Override public void runEffect() { - /*Location location = getEffectLocation().getFixedLocation(); - Location target = getTargetLocation().getLocation(); - Vector link = target.toVector().subtract(location.toVector()); - float length = (float) link.length(); - float pitch = (float) (4 * HEIGHT / Math.pow(length, 2)); - for (int i = 0; i < PARTICLES; i++) { - Vector v = link.clone().normalize().multiply(length * i / PARTICLES); - float x = ((float) i / PARTICLES) * length - length / 2; - float y = (float) (-pitch * Math.pow(x, 2) + HEIGHT); - location.add(v).add(0, y, 0); - ColoredParticle coloredParticle = new ColoredParticle(UtilParticle.ParticleType.RED_DUST, - new DustSpellColor(_color), location); - coloredParticle.display(); - location.subtract(0, y, 0).subtract(v); - - _step++; - if (_step % 5 == 0) - { - if (_color.equals(_red)) - _color = _orange; - else if (_color.equals(_orange)) - _color = _yellow; - else if (_color.equals(_yellow)) - _color = _green; - else if (_color.equals(_green)) - _color = _blue; - else if (_color.equals(_blue)) - _color = _indigo; - else if (_color.equals(_indigo)) - _color = _violet; - else - _color = _red; - } - }*/ Location location = getEffectLocation().getFixedLocation(); Location target = getTargetLocation().getFixedLocation(); - Color[] colors = new Color[]{_violet, _indigo, _blue, _green, _yellow, _orange, _red}; + Color[] colors = new Color[]{VIOLET, INDIGO, BLUE, GREEN, YELLOW, ORANGE, RED}; for (int i = 0; i < 7; i++) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HolidayCheerTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HolidayCheerTrack.java index 547a84087..00c807f43 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HolidayCheerTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HolidayCheerTrack.java @@ -111,7 +111,7 @@ public class HolidayCheerTrack extends Track @EventHandler public void onUseCosmetic(TreasureStartEvent event) { - if (!HOLIDAY_CHESTS.contains(event.getTreasureType())) + if (!HOLIDAY_CHESTS.contains(event.getTreasure().getTreasureType())) return; int points = 100; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LuckyTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LuckyTrack.java index a79ffe7ec..f839c01f6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LuckyTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LuckyTrack.java @@ -119,8 +119,8 @@ public class LuckyTrack extends Track int basePoints = POINTS.get(reward.getRarity()); - if (MULTIPLIER.get(event.getTreasureType()) != null) - basePoints *= MULTIPLIER.get(event.getTreasureType()); + if (MULTIPLIER.get(event.getTreasure().getTreasureType()) != null) + basePoints *= MULTIPLIER.get(event.getTreasure().getTreasureType()); incrementFor(event.getPlayer(), basePoints); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TreasureHunterTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TreasureHunterTrack.java index 24348b954..861ef4dbe 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TreasureHunterTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TreasureHunterTrack.java @@ -79,9 +79,9 @@ public class TreasureHunterTrack extends Track @EventHandler public void onUseCosmetic(TreasureStartEvent event) { - if (POINTS.containsKey(event.getTreasureType())) + if (POINTS.containsKey(event.getTreasure().getTreasureType())) { - int basePoints = POINTS.get(event.getTreasureType()); + int basePoints = POINTS.get(event.getTreasure().getTreasureType()); if (isSetActive(event.getPlayer(), SetWisdom.class)) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java index 07811b870..ae1be72ae 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java @@ -458,4 +458,9 @@ public class Treasure { return _treasureType; } + + public void addAnimation(Animation animation) + { + _animations.add(animation); + } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureLocation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureLocation.java index cdef82335..ec1012733 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureLocation.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureLocation.java @@ -172,12 +172,12 @@ public class TreasureLocation implements Listener Bukkit.broadcastMessage(F.main("Treasure", F.name(player.getName()) + " is opening " + pron + name)); } - TreasureStartEvent startEvent = new TreasureStartEvent(player, treasureType, Arrays.asList(rewards)); - UtilServer.CallEvent(startEvent); - Treasure treasure = new Treasure(player, rewards, treasureType.getRewardType(), _chestBlock, _chestSpawns, treasureType, _treasureManager.getBlockRestore(), _hologramManager, _statusManager); _currentTreasure = treasure; + TreasureStartEvent startEvent = new TreasureStartEvent(player, treasure, Arrays.asList(rewards)); + UtilServer.CallEvent(startEvent); + UtilTextMiddle.display(treasureType.getName(), "Choose " + rewards.length + " " + UtilText.plural("Chest", rewards.length) + " To Open", 20, 180, 20, player); UtilPlayer.message(player, F.main("Treasure", "Choose " + rewards.length + " " + UtilText.plural("Chest", rewards.length) + " To Open")); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureManager.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureManager.java index 01c4b1e54..75e20150e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureManager.java @@ -1,10 +1,13 @@ package mineplex.core.treasure; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; import org.bukkit.plugin.java.JavaPlugin; @@ -25,10 +28,10 @@ import mineplex.core.reward.RewardPool; import mineplex.core.reward.RewardType; import mineplex.core.stats.StatsManager; import mineplex.core.status.ServerStatusManager; +import mineplex.core.treasure.animation.Animation; +import mineplex.core.treasure.event.TreasureFinishEvent; +import mineplex.core.treasure.event.TreasureStartEvent; -/** - * Created by Shaun on 8/27/2014. - */ public class TreasureManager extends MiniPlugin { private CoreClientManager _clientManager; @@ -40,6 +43,8 @@ public class TreasureManager extends MiniPlugin private List _treasureLocations; private List _blockLocations; + private Map _treasureAnimations = new HashMap<>(); + public TreasureManager(JavaPlugin plugin, CoreClientManager clientManager, ServerStatusManager statusManager, DonationManager donationManager, InventoryManager inventoryManager, PetManager petManager, GadgetManager gadgetManager, BlockRestore blockRestore, HologramManager hologramManager, StatsManager statsManager, RewardManager rewardManager) { super("Treasure", plugin); @@ -161,4 +166,26 @@ public class TreasureManager extends MiniPlugin { return _blockLocations; } + + @EventHandler + public void playCustomAnimation(TreasureStartEvent event) + { + TreasureType treasureType = event.getTreasure().getTreasureType(); + /*if (treasureType == TreasureType.ST_PATRICKS) + { + StPatricksChestAnimation stPatricksChestAnimation = new StPatricksChestAnimation(event.getTreasure(), event.getTreasure().getCenterBlock()); + event.getTreasure().addAnimation(stPatricksChestAnimation); + _treasureAnimations.put(event.getTreasure(), stPatricksChestAnimation); + }*/ + } + + @EventHandler + public void stopCustomAnimation(TreasureFinishEvent event) + { + if (_treasureAnimations.containsKey(event.getTreasure())) + { + Animation animation = _treasureAnimations.get(event.getTreasure()); + animation.setRunning(false); + } + } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/StPatricksChestAnimation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/StPatricksChestAnimation.java new file mode 100644 index 000000000..4b65b5787 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/StPatricksChestAnimation.java @@ -0,0 +1,46 @@ +package mineplex.core.treasure.animation; + +import java.awt.Color; + +import org.bukkit.block.Block; +import org.bukkit.util.Vector; + +import mineplex.core.common.shape.ShapeWings; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.treasure.Treasure; + +public class StPatricksChestAnimation extends Animation +{ + + private Block _center; + private int _tick = 0; + + private ShapeWings _cloverBlack = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '#', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER); + private ShapeWings _cloverDarkGreen = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '%', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER); + private ShapeWings _cloverGreen = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '*', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER); + + public StPatricksChestAnimation(Treasure treasure, Block center) + { + super(treasure); + _center = center; + } + + @Override + protected void tick() + { + _tick++; + if (_tick % 5 == 0) + { + _cloverBlack.displayColored(_center.getLocation().add(0, 5, 0), Color.BLACK); + _cloverDarkGreen.displayColored(_center.getLocation().add(0, 5, 0), new Color(0, 100, 0)); + _cloverGreen.displayColored(_center.getLocation().add(0, 5, 0), Color.GREEN); + } + } + + @Override + protected void onFinish() + { + + } + +} 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 771de876a..70c891f52 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureStartEvent.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/event/TreasureStartEvent.java @@ -8,20 +8,20 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; import mineplex.core.reward.Reward; -import mineplex.core.treasure.TreasureType; +import mineplex.core.treasure.Treasure; public class TreasureStartEvent extends Event { private static final HandlerList handlers = new HandlerList(); private Player _player; - private TreasureType _treasureType; + private Treasure _treasure; private List _rewards; - public TreasureStartEvent(Player player, TreasureType treasureType, List rewards) + public TreasureStartEvent(Player player, Treasure treasure, List rewards) { _player = player; - _treasureType = treasureType; + _treasure = treasure; _rewards = rewards; } @@ -30,9 +30,9 @@ public class TreasureStartEvent extends Event return _player; } - public TreasureType getTreasureType() + public Treasure getTreasure() { - return _treasureType; + return _treasure; } public List getRewards() 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 5fe3c7c31..0d55ba94e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java @@ -411,7 +411,7 @@ public class TreasurePage extends ShopPageBase List stpatricksLore = Lists.newArrayList(); stpatricksLore.add(" "); - stpatricksLore.add(F.value("Love Chests Owned", "" + loveCount)); + stpatricksLore.add(F.value("St Patrick's Chests Owned", "" + stpatricksCount)); stpatricksLore.add(" "); stpatricksLore.addAll(UtilText.splitLines(new String[]{C.cGray + "Placeholder"}, LineFormat.LORE)); stpatricksLore.add(" "); From 3cc304d99c900d4385900842621737a27789aaa8 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Sat, 4 Mar 2017 23:52:12 -0300 Subject: [PATCH 020/133] Used correct item for the mount --- .../src/mineplex/core/mount/types/MountStPatricksHorse.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java index 0558f1644..a8366cb49 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java @@ -37,7 +37,7 @@ public class MountStPatricksHorse extends HorseMount { super(manager, "St Patrick's Mount", UtilText.splitLinesToArray(new String[]{C.cGray + "You know the cow that jumped over the moon? Total show off."}, LineFormat.LORE), - Material.CAULDRON, (byte) 0, -7, Horse.Color.WHITE, Horse.Style.WHITE, Horse.Variant.HORSE, 1, null); + Material.CAULDRON_ITEM, (byte) 0, -7, Horse.Color.WHITE, Horse.Style.WHITE, Horse.Variant.HORSE, 1, null); } @Override From 63b4dd1053e0ba5655a9b3a11b1804dfe421f3a5 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Mon, 6 Mar 2017 17:33:36 -0300 Subject: [PATCH 021/133] Support server stuff --- .../customerSupport/CustomerSupport.java | 12 +++++++++++ .../salespackage/SalesPackageManager.java | 4 +++- .../salespackages/StPatricksChest.java | 20 +++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 Plugins/Mineplex.StaffServer/src/mineplex/staffServer/salespackage/salespackages/StPatricksChest.java diff --git a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupport.java b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupport.java index 41e6239be..96198be33 100644 --- a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupport.java +++ b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupport.java @@ -166,6 +166,7 @@ public class CustomerSupport extends MiniPlugin implements ResultSetCallable int gingerbreadChestsReceived = 0; int minestrikeChestsReceived = 0; int loveChestsReceived = 0; + int stPatricksChestReceived = 0; for (CoinTransactionToken transaction : donor.getCoinTransactions()) { @@ -319,6 +320,16 @@ public class CustomerSupport extends MiniPlugin implements ResultSetCallable loveChestsReceived += 1; } } + if (transaction.SalesPackageName.startsWith("St Patricks Chest")) + { + if (transaction.Coins == 0 && transaction.Gems == 0) + { + if (transaction.SalesPackageName.split(" ").length == 3) + stPatricksChestReceived += Integer.parseInt(transaction.SalesPackageName.split(" ")[2]); + else if (transaction.SalesPackageName.split(" ").length == 2) + stPatricksChestReceived += 1; + } + } if (transaction.SalesPackageName.startsWith("Valentines Gift")) { if (transaction.Coins == 0 && transaction.Gems == 0) @@ -391,6 +402,7 @@ public class CustomerSupport extends MiniPlugin implements ResultSetCallable caller.sendMessage(C.cBlue + "Trick or Treat Chests Received: " + C.cYellow + trickOrTreatChestsReceived + " " + C.cBlue + "Thankful Chests Received: " + C.cYellow + thankfulChestsReceived); caller.sendMessage(C.cBlue + "Gingerbread Chests Received: " + C.cYellow + gingerbreadChestsReceived + " " + C.cBlue + "Minestrike Chests Received: " + C.cYellow + minestrikeChestsReceived); caller.sendMessage(C.cBlue + "Love Chests Received: " + C.cYellow + loveChestsReceived); + caller.sendMessage(C.cBlue + "St Patrick's Chests Received: " + C.cYellow + stPatricksChestReceived); caller.sendMessage(C.cBlue + "Game Amplifiers Received: " + C.cYellow + boostersReceived); caller.sendMessage(C.cBlue + "Rune Amplifiers (20 min/60 min) Received: " + C.cYellow + runeAmplifier20 + "/" + runeAmplifier60); caller.sendMessage(C.cBlue + "Clan Banner Usage: " + getLockedFreedomStr(client.getUniqueId(), "Clan Banner Usage") + " " + C.cBlue + "Clan Banner Editor: " + getLockedFreedomStr(client.getUniqueId(), "Clan Banner Editor")); diff --git a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/salespackage/SalesPackageManager.java b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/salespackage/SalesPackageManager.java index a8ac55cf0..c1809951d 100644 --- a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/salespackage/SalesPackageManager.java +++ b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/salespackage/SalesPackageManager.java @@ -39,6 +39,7 @@ import mineplex.staffServer.salespackage.salespackages.Pet; import mineplex.staffServer.salespackage.salespackages.PowerPlayClub; import mineplex.staffServer.salespackage.salespackages.RuneAmplifier; import mineplex.staffServer.salespackage.salespackages.SalesPackageBase; +import mineplex.staffServer.salespackage.salespackages.StPatricksChest; import mineplex.staffServer.salespackage.salespackages.ThankfulChest; import mineplex.staffServer.salespackage.salespackages.TrickOrTreatChest; @@ -100,6 +101,7 @@ public class SalesPackageManager extends MiniPlugin AddSalesPackage(new HauntedChest(this)); AddSalesPackage(new MinestrikeChest(this)); AddSalesPackage(new LoveChest(this)); + AddSalesPackage(new StPatricksChest(this)); AddSalesPackage(new TrickOrTreatChest(this)); AddSalesPackage(new ThankfulChest(this)); @@ -171,7 +173,7 @@ public class SalesPackageManager extends MiniPlugin coinBuilder = coinBuilder.extra("[").color("gray").extra(salesPackage.getName()).color("green").click("run_command", "/display " + playerName + " " + salesPackage.getName()).extra("] ").color("gray"); } else if (salesPackage instanceof MythicalChest || salesPackage instanceof AncientChest || salesPackage instanceof OldChest || salesPackage instanceof IlluminatedChest || salesPackage instanceof FreedomChest || salesPackage instanceof HauntedChest || salesPackage instanceof TrickOrTreatChest - || salesPackage instanceof ThankfulChest || salesPackage instanceof GingerbreadChest || salesPackage instanceof MinestrikeChest || salesPackage instanceof LoveChest) + || salesPackage instanceof ThankfulChest || salesPackage instanceof GingerbreadChest || salesPackage instanceof MinestrikeChest || salesPackage instanceof LoveChest || salesPackage instanceof StPatricksChest) { chestBuilder = chestBuilder.extra("[").color("gray").extra(salesPackage.getName()).color("green").click("run_command", "/display " + playerName + " " + salesPackage.getName()).extra("] ").color("gray"); } diff --git a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/salespackage/salespackages/StPatricksChest.java b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/salespackage/salespackages/StPatricksChest.java new file mode 100644 index 000000000..32ae815a6 --- /dev/null +++ b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/salespackage/salespackages/StPatricksChest.java @@ -0,0 +1,20 @@ +package mineplex.staffServer.salespackage.salespackages; + +import org.bukkit.entity.Player; + +import mineplex.staffServer.salespackage.SalesPackageManager; + +public class StPatricksChest extends SalesPackageBase +{ + public StPatricksChest(SalesPackageManager manager) + { + super(manager, "1 St Patricks Chest"); + } + + public void displayToAgent(Player agent, String playerName) + { + addButton(agent, "/sales item " + playerName + " 1 Item St Patricks Chest", "Give 1 St Patricks Chest."); + agent.sendMessage(" "); + addBackButton(agent, playerName); + } +} From 1ffac1dd31096bcdc6504a322c90d9ebec89e1b2 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Mon, 6 Mar 2017 18:09:42 -0300 Subject: [PATCH 022/133] Drop nuggets when removing chests --- .../src/mineplex/core/treasure/Treasure.java | 16 ++++++-- .../core/treasure/TreasureLocation.java | 3 +- .../core/treasure/TreasureManager.java | 39 ++++++++++++++++++ .../animation/TreasureRemoveAnimation.java | 40 +++++++++++++------ 4 files changed, 80 insertions(+), 18 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java index ae1be72ae..f1e489390 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java @@ -79,15 +79,18 @@ public class Treasure private HologramManager _hologramManager; private ServerStatusManager _statusManager; - public Treasure(Player player, Reward[] rewards, RewardType rewardType, Block centerBlock, Block[] chestBlocks, TreasureType treasureType, BlockRestore blockRestore, HologramManager hologramManager, ServerStatusManager statusManager) + private TreasureManager _treasureManager; + + public Treasure(TreasureManager treasureManager, Player player, Reward[] rewards, RewardType rewardType, Block centerBlock, Block[] chestBlocks, TreasureType treasureType, BlockRestore blockRestore, HologramManager hologramManager, ServerStatusManager statusManager) { - this(player, new Random(), rewards, rewardType, centerBlock, chestBlocks, treasureType, hologramManager, statusManager); + this(treasureManager, player, new Random(), rewards, rewardType, centerBlock, chestBlocks, treasureType, hologramManager, statusManager); _blockRestore = blockRestore; } - public Treasure(Player player, Random seed, Reward[] rewards, RewardType rewardType, Block centerBlock, Block[] chestBlocks, TreasureType treasureType, HologramManager hologramManager, ServerStatusManager statusManager) + public Treasure(TreasureManager treasureManager, Player player, Random seed, Reward[] rewards, RewardType rewardType, Block centerBlock, Block[] chestBlocks, TreasureType treasureType, HologramManager hologramManager, ServerStatusManager statusManager) { + _treasureManager = treasureManager; _player = player; _random = seed; @@ -326,7 +329,7 @@ public class Treasure if (isFinished()) { - TreasureRemoveAnimation animation = new TreasureRemoveAnimation(Treasure.this, _openedChestBlockInfo, _chestBlockInfo); + TreasureRemoveAnimation animation = new TreasureRemoveAnimation(Treasure.this, _chestBlockInfo); _animations.add(animation); _finished = true; } @@ -463,4 +466,9 @@ public class Treasure { _animations.add(animation); } + + public TreasureManager getTreasureManager() + { + return _treasureManager; + } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureLocation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureLocation.java index 69726109f..e0e9f13ce 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureLocation.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureLocation.java @@ -115,6 +115,7 @@ public class TreasureLocation implements Listener return; } + chargeAccount(player, treasureType, new Callback() { @Override @@ -172,7 +173,7 @@ public class TreasureLocation implements Listener Bukkit.broadcastMessage(F.main("Treasure", F.name(player.getName()) + " is opening " + pron + name)); } - Treasure treasure = new Treasure(player, rewards, treasureType.getRewardType(), _chestBlock, _chestSpawns, treasureType, _treasureManager.getBlockRestore(), _hologramManager, _statusManager); + Treasure treasure = new Treasure(_treasureManager, player, rewards, treasureType.getRewardType(), _chestBlock, _chestSpawns, treasureType, _treasureManager.getBlockRestore(), _hologramManager, _statusManager); _currentTreasure = treasure; TreasureStartEvent startEvent = new TreasureStartEvent(player, treasure, Arrays.asList(rewards)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureManager.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureManager.java index 75e20150e..13a13af58 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureManager.java @@ -1,14 +1,17 @@ package mineplex.core.treasure; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; import org.bukkit.Location; import org.bukkit.block.Block; +import org.bukkit.entity.Item; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; +import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.plugin.java.JavaPlugin; import com.google.common.collect.Lists; @@ -31,6 +34,8 @@ import mineplex.core.status.ServerStatusManager; import mineplex.core.treasure.animation.Animation; import mineplex.core.treasure.event.TreasureFinishEvent; import mineplex.core.treasure.event.TreasureStartEvent; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; public class TreasureManager extends MiniPlugin { @@ -42,6 +47,7 @@ public class TreasureManager extends MiniPlugin private StatsManager _statsManager; private List _treasureLocations; private List _blockLocations; + private List _items; private Map _treasureAnimations = new HashMap<>(); @@ -58,6 +64,7 @@ public class TreasureManager extends MiniPlugin _treasureLocations = Lists.newArrayList(); _blockLocations = Lists.newArrayList(); + _items = Lists.newArrayList(); for(Location location : LocationConstants.CHEST_LOCATIONS) { @@ -188,4 +195,36 @@ public class TreasureManager extends MiniPlugin animation.setRunning(false); } } + + public void addItem(Item item) + { + _items.add(item); + } + + @EventHandler + public void pickupItem(PlayerPickupItemEvent event) + { + if (_items.contains(event.getItem())) + { + event.setCancelled(true); + } + } + + @EventHandler + public void removeItems(UpdateEvent event) + { + if (event.getType() == UpdateType.TICK) + { + Iterator it = _items.iterator(); + while (it.hasNext()) + { + Item item = it.next(); + if (item.getTicksLived() >= 20) + { + item.remove(); + it.remove(); + } + } + } + } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/TreasureRemoveAnimation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/TreasureRemoveAnimation.java index a97d29f14..c0ada9705 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/TreasureRemoveAnimation.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/TreasureRemoveAnimation.java @@ -3,22 +3,27 @@ package mineplex.core.treasure.animation; import java.util.List; import java.util.Random; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Item; +import org.bukkit.inventory.ItemStack; +import org.bukkit.util.Vector; + +import mineplex.core.common.util.UtilAction; +import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.treasure.BlockInfo; import mineplex.core.treasure.Treasure; +import mineplex.core.treasure.TreasureType; -/** - * Created by shaun on 14-09-15. - */ public class TreasureRemoveAnimation extends Animation { private Random _random = new Random(); - private List _openedChests; private List _otherChests; + private int _count = 0; - public TreasureRemoveAnimation(Treasure treasure, List openedChests, List otherChests) + public TreasureRemoveAnimation(Treasure treasure, List otherChests) { super(treasure); - _openedChests = openedChests; _otherChests = otherChests; } @@ -31,14 +36,13 @@ public class TreasureRemoveAnimation extends Animation { BlockInfo info = _otherChests.remove(_random.nextInt(_otherChests.size())); getTreasure().resetBlockInfo(info); -// System.out.println("otherchests"); + if (getTreasure().getTreasureType() == TreasureType.ST_PATRICKS) + { + // Drops gold nugget + dropItem(ItemStackFactory.Instance.CreateStack(Material.GOLD_NUGGET, (byte) 0, 1, "DroppedNugget" + _count), info); + _count++; + } } -// else if (!_openedChests.isEmpty()) -// { -// System.out.println("openchests"); -// BlockInfo info = _openedChests.remove(_random.nextInt(_openedChests.size())); -// getTreasure().resetBlockInfo(info); -// } else { finish(); @@ -46,6 +50,16 @@ public class TreasureRemoveAnimation extends Animation } } + private void dropItem(ItemStack itemStack, BlockInfo blockInfo) + { + Location location = blockInfo.getBlock().getLocation(); + Item item = location.getWorld().dropItem(location.add(0, .5, 0), itemStack); + Vector vel = new Vector(Math.sin(_count * 9/5d), 0, Math.cos(_count * 9/5d)); + UtilAction.velocity(item, vel, Math.abs(Math.sin(_count * 12/3000d)), false, 0, 0.2 + + Math.abs(Math.cos(_count * 12/3000d))*0.6, 1, false); + getTreasure().getTreasureManager().addItem(item); + } + @Override protected void onFinish() { From 3469b890d491f8e0e313452ced4428704be32c6d Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Tue, 7 Mar 2017 21:51:06 -0300 Subject: [PATCH 023/133] Rainbow taunt now uses sides of player as locations --- .../core/gadget/gadgets/taunts/RainbowTaunt.java | 14 +++++++++----- .../core/particleeffects/RainbowTauntEffect.java | 5 ++--- 2 files changed, 11 insertions(+), 8 deletions(-) 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 db03bf13a..2d9ed339d 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 @@ -3,10 +3,10 @@ package mineplex.core.gadget.gadgets.taunts; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; +import org.bukkit.util.Vector; import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; -import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilText; import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.types.TauntGadget; @@ -35,11 +35,15 @@ public class RainbowTaunt extends TauntGadget if (!Recharge.Instance.use(player, getName(), COOLDOWN, true, false, "Cosmetics")) return; - double randX = UtilMath.random(3.5, 15), randZ = UtilMath.random(3.5, 15); - Location target = player.getLocation().clone().add(randX, 0, randZ); + Vector dir = player.getLocation().getDirection(); + Vector sideA = dir.clone().setX(-dir.getZ()).setZ(dir.getX()); + Vector sideB = dir.clone().setX(dir.getZ()).setZ(-dir.getX()); - RainbowTauntEffect rainbowTauntEffect = new RainbowTauntEffect(player, Manager.getPlugin()); - rainbowTauntEffect.setTargetLocation(new EffectLocation(target)); + Location start = player.getLocation().clone().add(sideA.multiply(4).toLocation(player.getWorld())); + Location end = player.getLocation().clone().add(sideB.multiply(4).toLocation(player.getWorld())); + + RainbowTauntEffect rainbowTauntEffect = new RainbowTauntEffect(start, Manager.getPlugin()); + rainbowTauntEffect.setTargetLocation(new EffectLocation(end)); rainbowTauntEffect.start(); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java index 8bba6d82c..a571a3f0c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/RainbowTauntEffect.java @@ -3,7 +3,6 @@ package mineplex.core.particleeffects; import java.awt.Color; import org.bukkit.Location; -import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.util.Vector; @@ -25,9 +24,9 @@ public class RainbowTauntEffect extends Effect private static final Color INDIGO = new Color(75, 0, 130); private static final Color VIOLET = new Color(143, 0, 255); - public RainbowTauntEffect(Player player, JavaPlugin javaPlugin) + public RainbowTauntEffect(Location start, JavaPlugin javaPlugin) { - super(16, new EffectLocation(player), javaPlugin, 5); + super(16, new EffectLocation(start), javaPlugin, 5); } @Override From 401738f19a550f2502c52035d22645a6ce410367 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Sun, 12 Mar 2017 20:53:43 -0300 Subject: [PATCH 024/133] Removed horse cooldown --- .../mount/types/MountStPatricksHorse.java | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java index a8366cb49..4d4c8bac6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java @@ -12,7 +12,6 @@ import org.bukkit.entity.Horse; import org.bukkit.entity.Item; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; -import org.bukkit.event.entity.HorseJumpEvent; import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.inventory.ItemStack; @@ -23,7 +22,6 @@ import mineplex.core.mount.HorseMount; import mineplex.core.mount.MountManager; import mineplex.core.mount.SingleEntityMountData; import mineplex.core.particleeffects.RainbowTrailEffect; -import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; @@ -67,24 +65,6 @@ public class MountStPatricksHorse extends HorseMount } } - @EventHandler - public void horseJump(HorseJumpEvent event) - { - for (SingleEntityMountData horseData : _trailMap.keySet()) - { - if (horseData.getEntity().equals(event.getEntity())) - { - if (!Recharge.Instance.use(horseData.getOwner(), getName(), 2500, false, false, "Cosmetics")) - { - event.setPower(0f); - event.setCancelled(true); - return; - } - _trailMap.get(horseData).setJumping(true); - } - } - } - @EventHandler public void onItemPickup(PlayerPickupItemEvent event) { From 2b988a02d87e3766c0e6f818122ee0f33d2ea022 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Mon, 13 Mar 2017 19:39:14 -0300 Subject: [PATCH 025/133] Fixed horse --- .../core/mount/types/MountStPatricksHorse.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java index 4d4c8bac6..ad17c2f0d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java @@ -12,6 +12,7 @@ import org.bukkit.entity.Horse; import org.bukkit.entity.Item; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.HorseJumpEvent; import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.inventory.ItemStack; @@ -22,6 +23,7 @@ import mineplex.core.mount.HorseMount; import mineplex.core.mount.MountManager; import mineplex.core.mount.SingleEntityMountData; import mineplex.core.particleeffects.RainbowTrailEffect; +import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; @@ -65,6 +67,21 @@ public class MountStPatricksHorse extends HorseMount } } + @EventHandler + public void horseJump(HorseJumpEvent event) + { + for (SingleEntityMountData horseData : _trailMap.keySet()) + { + if (horseData.getEntity().equals(event.getEntity())) + { + if (Recharge.Instance.use(horseData.getOwner(), getName(), 2500, false, false, "Cosmetics")) + { + _trailMap.get(horseData).setJumping(true); + } + } + } + } + @EventHandler public void onItemPickup(PlayerPickupItemEvent event) { From a49b19ee0cc51fd6df697ffe3226168efed9d112 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 14 Mar 2017 16:08:16 +0000 Subject: [PATCH 026/133] Removal of kit progression from bridges --- .../game/games/bridge/kits/KitApple.java | 76 ++------------- .../game/games/bridge/kits/KitArcher.java | 2 +- .../game/games/bridge/kits/KitBerserker.java | 95 ++++--------------- 3 files changed, 25 insertions(+), 148 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java index e915f72b4..021c06e83 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java @@ -13,9 +13,6 @@ import org.bukkit.inventory.ItemStack; public class KitApple extends ProgressingKit { - private static final String PERK = "Apples"; - private static final String STARTING = "Starting amount"; - private static final String[] DESCRIPTION = { "Possess the rare skill of finding apples frequently!", "", @@ -23,81 +20,20 @@ public class KitApple extends ProgressingKit click(true, "the apple to throw it") }; - private static final Perk[][] PERKS = - { - { - new PerkApple(17000) - }, - { - new PerkApple(15000) - }, - { - new PerkApple(15000) - }, - { - new PerkApple(13000) - }, - { - new PerkApple(13000) - }, - { - new PerkApple(11000) - }, - }; - - private static final String[][] UPGRADE_DETAILS = - { - { - reduceCooldown(COOLDOWN, 2) - }, - { - increaseNumber(PERK, STARTING, 3, PERK) - }, - { - reduceCooldown(COOLDOWN, 2) - }, - { - increaseNumber(PERK, STARTING, 3, PERK) - }, - { - reduceCooldown(COOLDOWN, 2) - }, - }; + private static final Perk[] PERKS = { + new PerkApple(10000) + }; private static final ItemStack IN_HAND = new ItemStack(Material.APPLE); public KitApple(ArcadeManager manager) { - super(manager, "Apple", "bridgeapple", KitAvailability.Free, DESCRIPTION, PERKS, UPGRADE_DETAILS, EntityType.ZOMBIE, IN_HAND); + super(manager, "Apple", "bridgeapple", KitAvailability.Free, DESCRIPTION, PERKS, EntityType.ZOMBIE, IN_HAND); } @Override public void GiveItems(Player player) { - int level = getUpgradeLevel(player.getUniqueId()); - int apples = 0; - - switch (level) - { - case 2: - case 3: - apples = 3; - break; - case 4: - case 5: - apples = 6; - default: - break; - } - - if (apples > 0) { - player.getInventory().addItem(new ItemStack(Material.APPLE, apples)); - } + } - - @Override - public boolean showUpgrades() - { - return false; - } -} +} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitArcher.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitArcher.java index a02a04427..87ee2d8dd 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitArcher.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitArcher.java @@ -53,6 +53,6 @@ public class KitArcher extends ProgressingKit Bridge bridge = (Bridge) Manager.GetGame(); if(!bridge.hasUsedRevive(player)) - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW)); + player.getInventory().addItem(PLAYER_ITEMS); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java index 70f3591a4..9204c8d7a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java @@ -1,17 +1,17 @@ package nautilus.game.arcade.game.games.bridge.kits; -import org.bukkit.Material; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - import mineplex.core.common.util.C; +import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.ProgressingKit; import nautilus.game.arcade.kit.perks.PerkAxeman; import nautilus.game.arcade.kit.perks.PerkLeap; +import org.bukkit.Material; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; public class KitBerserker extends ProgressingKit { @@ -23,86 +23,27 @@ public class KitBerserker extends ProgressingKit "Deal " + C.cGreen + "+1" + C.cWhite + " damage using axes", click(false, " with your axe to use " + C.cGreen + "Berserker Leap") }; - - private static final Perk[][] PERKS = - { - { - new PerkLeap("Beserker Leap", 1.2, 1.2, 14000), - new PerkAxeman(), - }, - { - new PerkLeap("Beserker Leap", 1.2, 1.2, 13000), - new PerkAxeman(), - }, - { - new PerkLeap("Beserker Leap", 1.2, 1.2, 13000), - new PerkAxeman(), - }, - { - new PerkLeap("Beserker Leap", 1.2, 1.2, 12000), - new PerkAxeman(), - }, - { - new PerkLeap("Beserker Leap", 1.2, 1.2, 12000), - new PerkAxeman(), - }, - { - new PerkLeap("Beserker Leap", 1.2, 1.2, 11000), - new PerkAxeman(), - }, - }; - - private static final String[][] UPGRADE_DETAILS = - { - { - reduceCooldown(COOLDOWN, 1) - }, - { - receiveItem("Crafting Table", 1) - }, - { - reduceCooldown(COOLDOWN, 1) - }, - { - receiveItem("Iron Axe", 1) - }, - { - reduceCooldown(COOLDOWN, 1) - }, - }; + + private static final Perk[] PERKS = { + new PerkLeap("Beserker Leap", 1.2, 1.2, 8000), + new PerkAxeman(), + }; + + private static final ItemStack[] PLAYER_ITEMS = { + ItemStackFactory.Instance.CreateStack(Material.STONE_AXE) + }; private static final ItemStack IN_HAND = new ItemStack(Material.STONE_AXE); public KitBerserker(ArcadeManager manager) { - super(manager, "Berserker", "bridgeberserker", KitAvailability.Free, DESCRIPTION, PERKS, UPGRADE_DETAILS, EntityType.ZOMBIE, IN_HAND); + super(manager, "Berserker", "bridgeberserker", KitAvailability.Free, DESCRIPTION, PERKS, EntityType.ZOMBIE, IN_HAND); + } @Override public void GiveItems(Player player) { - int level = getUpgradeLevel(player.getUniqueId()); - - // Axe - if (level >= 4) - { - player.getInventory().addItem(new ItemStack(Material.IRON_AXE)); - } - else - { - player.getInventory().addItem(new ItemStack(Material.STONE_AXE)); - } - - //Crafting table - if (level >= 2) - { - player.getInventory().addItem(new ItemStack(Material.WORKBENCH)); - } + player.getInventory().addItem(PLAYER_ITEMS); } - - @Override - public boolean showUpgrades() - { - return false; - } -} +} \ No newline at end of file From c8a9cffcdf54ff67bd44c072db8937128227e2d3 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 14 Mar 2017 16:08:31 +0000 Subject: [PATCH 027/133] Edit the documentation for per player world borders --- .../nautilus/game/arcade/game/games/bridge/Bridge.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java index beaf472c5..5995d93d3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java @@ -287,19 +287,19 @@ public class Bridge extends TeamGame implements OreObsfucation // Here we do some calculations for per player world borders for (GameTeam team : GetTeamList()) { - // If this is an old map or the builders haven't done it properly we can use this more of an estimate of the border size - // Step 1 - Get the average location of the spawns, we will assume this is the centre of the island + // Step 1 - Get the average location of the spawns, we assume this is generally in an OK position. Location center = UtilAlg.getAverageLocation(team.GetSpawns()); + // Step 1.5 - Move the location back a bit from the centre, this is usually because spawns are on the inside edge of the islands. center.add(UtilAlg.getTrajectory(SpectatorSpawn, center).multiply(15)); // Step 2 - Calculate an estimate for the size of the border. We'll go with half but the setSize uses the radius so it works out the same to leave it like this - double distToCenter = UtilMath.offset2d(SpectatorSpawn, center); + double distToCenter = UtilMath.offset2d(SpectatorSpawn, center) * 0.9; // Step 3 - Send the setCenter and setSize packets to the team members for (Player player : team.GetPlayers(true)) { borderModule.setCenter(player, center); - borderModule.setSize(player, distToCenter * 0.9); + borderModule.setSize(player, distToCenter); } } From a3861d43c4df37d5b54da277ade8a83e267b21fa Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Tue, 14 Mar 2017 13:32:49 -0300 Subject: [PATCH 028/133] Fixes costume throwing items without complete set --- .../stpatricks/OutfitStPatricksSuit.java | 17 +++++++------ .../game/arcade/managers/GameManager.java | 25 ++++++------------- 2 files changed, 17 insertions(+), 25 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java index 48cd96acb..e409360b5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java @@ -68,13 +68,16 @@ public class OutfitStPatricksSuit extends OutfitGadget { for (Player player : getActive()) { - ItemStack itemStack = new ItemStack(Material.GOLD_INGOT); - ItemMeta itemMeta = itemStack.getItemMeta(); - itemMeta.setDisplayName(player.getName() + "DROPPED" + System.currentTimeMillis() + UtilMath.random.nextInt()); - itemStack.setItemMeta(itemMeta); - Item gold = player.getWorld().dropItem(player.getLocation().add(0.5, 1.5, 0.5), itemStack); - _items.add(gold); - gold.setVelocity(new Vector((Math.random() - 0.5) * 0.3, Math.random() - 0.4, (Math.random() - 0.5) * 0.3)); + if (setActive(player)) + { + ItemStack itemStack = new ItemStack(Material.GOLD_INGOT); + ItemMeta itemMeta = itemStack.getItemMeta(); + itemMeta.setDisplayName(player.getName() + "DROPPED" + System.currentTimeMillis() + UtilMath.random.nextInt()); + itemStack.setItemMeta(itemMeta); + Item gold = player.getWorld().dropItem(player.getLocation().add(0.5, 1.5, 0.5), itemStack); + _items.add(gold); + gold.setVelocity(new Vector((Math.random() - 0.5) * 0.3, Math.random() - 0.4, (Math.random() - 0.5) * 0.3)); + } } } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameManager.java index 7e063dd51..d87447cc1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameManager.java @@ -1,8 +1,9 @@ package nautilus.game.arcade.managers; -import mineplex.core.Managers; -import mineplex.core.PlayerSelector; -import mineplex.core.common.util.UtilLambda; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + import org.bukkit.ChatColor; import org.bukkit.Color; import org.bukkit.FireworkEffect.Type; @@ -14,11 +15,13 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; +import mineplex.core.PlayerSelector; import mineplex.core.bonuses.event.CarlSpinnerEvent; import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilFirework; import mineplex.core.common.util.UtilInv; +import mineplex.core.common.util.UtilLambda; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTextBottom; @@ -32,13 +35,13 @@ import mineplex.core.gadget.types.Gadget; import mineplex.core.gadget.types.GadgetType; import mineplex.core.mount.Mount; import mineplex.core.mount.types.MountDragon; -import mineplex.core.titles.Titles; import mineplex.core.portal.GenericServer; import mineplex.core.portal.Intent; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.RestartServerEvent; import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.condition.Condition.ConditionType; + import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.events.GamePrepareCountdownCommence; import nautilus.game.arcade.events.GameStateChangeEvent; @@ -50,20 +53,6 @@ import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.games.uhc.UHC; import nautilus.game.arcade.gametutorial.TutorialPhase; import nautilus.game.arcade.gametutorial.TutorialText; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.FireworkEffect.Type; -import org.bukkit.Location; -import org.bukkit.Sound; -import org.bukkit.entity.Creature; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; public class GameManager implements Listener { From b35a9582df77c332f543375cec5a69b864af1a07 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 14 Mar 2017 17:07:36 +0000 Subject: [PATCH 029/133] Optimise PlayParticle --- .../src/mineplex/core/common/util/UtilParticle.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 0945ad7fd..7b85b4971 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 @@ -372,11 +372,12 @@ public class UtilParticle int count, ViewDist dist, Player... players) { PacketPlayOutWorldParticles packet = getPacket(particle, location, offsetX, offsetY, offsetZ, speed, count, true); - + int distValue = dist.getDist() * dist.getDist(); + for (Player player : players) { // Out of range for player - if (UtilMath.offset(player.getLocation(), location) > dist.getDist()) + if (UtilMath.offsetSquared(player.getLocation(), location) > distValue) continue; UtilPlayer.sendPacket(player, packet); From 15d691370de59b3083898dad461f19a20ff59a52 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 14 Mar 2017 21:05:52 +0000 Subject: [PATCH 030/133] Configuration for bridges --- .../game/arcade/game/games/bridge/Bridge.java | 88 +++++-- .../animation/CustomBridgeAnimation.java | 153 ----------- .../bridge/animation/WoodBridgeAnimation.java | 2 +- .../custom/CustomBridgeAnimation.java | 246 ++++++++++++++++++ .../custom/RadiusCustomBridgeAnimation.java | 58 +++++ .../custom/RandomCustomBridgeAnimation.java | 44 ++++ 6 files changed, 420 insertions(+), 171 deletions(-) delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/CustomBridgeAnimation.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/CustomBridgeAnimation.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RadiusCustomBridgeAnimation.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RandomCustomBridgeAnimation.java diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java index 5995d93d3..3a0e97fc6 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java @@ -37,7 +37,6 @@ import org.bukkit.event.inventory.CraftItemEvent; import org.bukkit.event.inventory.PrepareItemCraftEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent; import org.bukkit.event.player.PlayerBucketFillEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.inventory.CraftingInventory; @@ -70,12 +69,15 @@ import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import nautilus.game.arcade.events.GameStateChangeEvent; +import nautilus.game.arcade.game.DebugCommand; import nautilus.game.arcade.game.Game; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.TeamGame; import nautilus.game.arcade.game.games.bridge.animation.BridgeAnimation; import nautilus.game.arcade.game.games.bridge.animation.BridgeAnimationType; -import nautilus.game.arcade.game.games.bridge.animation.CustomBridgeAnimation; +import nautilus.game.arcade.game.games.bridge.animation.custom.CustomBridgeAnimation; +import nautilus.game.arcade.game.games.bridge.animation.custom.RadiusCustomBridgeAnimation; +import nautilus.game.arcade.game.games.bridge.animation.custom.RandomCustomBridgeAnimation; import nautilus.game.arcade.game.games.bridge.kits.KitApple; import nautilus.game.arcade.game.games.bridge.kits.KitArcher; import nautilus.game.arcade.game.games.bridge.kits.KitBerserker; @@ -114,11 +116,14 @@ public class Bridge extends TeamGame implements OreObsfucation */ private static final int WORLD_BORDER_PREPARE_TICKS = 20; + private static final String CUSTOM_BRIDGE_KEY = "TYPE"; + //Bridge private long _bridgeTime = BRIDGE_TIME; private boolean _bridgesDown = false; private BridgeAnimation _animation; - + private CustomBridgeAnimation[] _customAnimations; + private HashSet _bridgeParts = new HashSet(); //Animals @@ -249,6 +254,11 @@ public class Bridge extends TeamGame implements OreObsfucation _tournament = true; } + _customAnimations = new CustomBridgeAnimation[] { + new RandomCustomBridgeAnimation(this), + new RadiusCustomBridgeAnimation(this) + }; + new CompassModule() .setGiveCompassToAlive(true) .register(this); @@ -269,6 +279,34 @@ public class Bridge extends TeamGame implements OreObsfucation break; } } + + registerDebugCommand(new DebugCommand("bridge", Rank.ADMIN) + { + + @Override + public void Execute(Player caller, String[] args) + { + caller.sendMessage(F.main("Debug", "Spawning the bridges.")); + _bridgeTime = 3000; + } + }); + + registerDebugCommand(new DebugCommand("bridgeinfo", getArcadeManager().getGameCommandRank()) + { + + @Override + public void Execute(Player caller, String[] args) + { + if (_animation == null || !(_animation instanceof CustomBridgeAnimation)) + { + caller.sendMessage(F.main("Debug", "The bridge animation for this map isn't a custom one.")); + return; + } + + caller.sendMessage(F.main("Debug", "Bridge Info:")); + caller.sendMessage(_animation.toString()); + } + }); } @EventHandler @@ -354,15 +392,41 @@ public class Bridge extends TeamGame implements OreObsfucation } _animation = type.createInstance(this); - _animation.onParse(); + break; } + // If none of the premade ones are usable then we need a custom one! if (_animation == null) { - _animation = new CustomBridgeAnimation(this); - _animation.onParse(); + locationLoop : for (String key : WorldData.GetAllCustomLocs().keySet()) + { + if (!key.startsWith(CUSTOM_BRIDGE_KEY)) + { + continue; + } + + String[] split = key.split(" "); + + if (split.length < 2) + { + continue; + } + + String subKey = split[1]; + + for (CustomBridgeAnimation animation : _customAnimations) + { + if (animation.getTypeKey().equalsIgnoreCase(subKey)) + { + _animation = animation; + break locationLoop; + } + } + } } + _animation.onParse(); + ParseChests(); ParseOre(WorldData.GetCustomLocs("73")); // Red @@ -727,7 +791,7 @@ public class Bridge extends TeamGame implements OreObsfucation for (Player player : GetPlayers(true)) { - borderModule.setSize(player, 1000); + borderModule.setSize(player, 10000); } Manager.GetExplosion().SetLiquidDamage(true); @@ -1713,16 +1777,6 @@ public class Bridge extends TeamGame implements OreObsfucation else return 12; } - - @EventHandler - public void debug(PlayerCommandPreprocessEvent event) - { - if (Manager.GetClients().hasRank(event.getPlayer(), Rank.ADMIN) && event.getMessage().contains("/oretoggle")) - _ore.ToggleVisibility(); - - if (Manager.GetClients().hasRank(event.getPlayer(), Rank.ADMIN) && event.getMessage().contains("/bridge")) - _bridgeTime = 3000; - } @EventHandler public void disableIceForm(BlockFormEvent event) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/CustomBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/CustomBridgeAnimation.java deleted file mode 100644 index 921676590..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/CustomBridgeAnimation.java +++ /dev/null @@ -1,153 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.animation; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.block.Block; - -import mineplex.core.blockrestore.BlockRestore; -import mineplex.core.common.util.UtilBlock; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilParticle; -import mineplex.core.common.util.UtilParticle.ParticleType; -import mineplex.core.common.util.UtilParticle.ViewDist; -import mineplex.core.updater.UpdateType; -import nautilus.game.arcade.game.games.bridge.Bridge; - -public class CustomBridgeAnimation extends BridgeAnimation -{ - - private static final String REGION_KEY = "BRIDGE"; - private static final String BRIDGE_DATA_KEY = "CUSTOM_BRIDGE"; - private static final double RATE = 0.5; - - private final BlockRestore _restore; - private final Map _bridgeBlocks; - - private int[] _blockIds; - - private double _maxDistance; - private double _minDistance; - - public CustomBridgeAnimation(Bridge bridge) - { - super(bridge); - - _restore = bridge.getArcadeManager().GetBlockRestore(); - _bridgeBlocks = new HashMap<>(AVERAGE_BRIDGE_BLOCKS); - } - - @Override - public void onParse() - { - _maxDistance = 0; - - for (String key : _worldData.GetAllCustomLocs().keySet()) - { - if (!key.startsWith(BRIDGE_DATA_KEY)) - { - continue; - } - - String[] split = key.split(" "); - int[] blockIds = new int[split.length - 1]; - - for (int i = 1; i < split.length; i++) - { - try - { - blockIds[i - 1] = Integer.parseInt(split[i]); - } - catch (NumberFormatException e) - { - continue; - } - } - - _blockIds = blockIds; - } - - for (String key : _worldData.GetAllCustomLocs().keySet()) - { - if (!key.startsWith(REGION_KEY)) - { - continue; - } - - List locations = _worldData.GetCustomLocs(key); - - if (locations.size() < 2) - { - continue; - } - - for (Block block : UtilBlock.getInBoundingBox(locations.get(0), locations.get(1))) - { - boolean shouldAdd = false; - - for (int id : _blockIds) - { - if (block.getTypeId() == id) - { - shouldAdd = true; - break; - } - } - - if (!shouldAdd) - { - continue; - } - - double dist = UtilMath.offset2d(block.getLocation(), _bridge.GetSpectatorLocation()); - - if (dist > _maxDistance) - { - _maxDistance = dist; - } - - _restore.add(block, Material.AIR.getId(), (byte) 0, Integer.MAX_VALUE); - _bridgeBlocks.put(block.getLocation(), dist); - } - } - - _minDistance = _maxDistance; - } - - @Override - public void onUpdate(UpdateType type) - { - if (type != UpdateType.FAST) - { - return; - } - - _minDistance -= RATE; - - Iterator iterator = _bridgeBlocks.keySet().iterator(); - - while (iterator.hasNext()) - { - Location location = iterator.next(); - double dist = _bridgeBlocks.get(location); - - if (dist > _minDistance) - { - Block block = location.getBlock(); - - _restore.restore(block); - UtilParticle.PlayParticleToAll(ParticleType.FIREWORKS_SPARK, block.getLocation().add(0.5, 1.5, 0.5), 0.25F, 0.25F, 0.25F, 0.05F, 5, ViewDist.NORMAL); - - location.getWorld().playSound(location, Sound.ZOMBIE_UNFECT, 1.5F, 1); - - iterator.remove(); - } - } - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/WoodBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/WoodBridgeAnimation.java index ecafe937b..e149f2bc3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/WoodBridgeAnimation.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/WoodBridgeAnimation.java @@ -108,7 +108,7 @@ public class WoodBridgeAnimation extends BridgeAnimation } } - if (toDo.size() == 0) + if (toDo.isEmpty()) { return; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/CustomBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/CustomBridgeAnimation.java new file mode 100644 index 000000000..18f45bd3f --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/CustomBridgeAnimation.java @@ -0,0 +1,246 @@ +package nautilus.game.arcade.game.games.bridge.animation.custom; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.bukkit.Effect; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.World; +import org.bukkit.block.Block; + +import mineplex.core.blockrestore.BlockRestore; +import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilParticle.ParticleType; +import mineplex.core.common.util.UtilParticle.ViewDist; +import nautilus.game.arcade.game.games.bridge.Bridge; +import nautilus.game.arcade.game.games.bridge.animation.BridgeAnimation; + +public abstract class CustomBridgeAnimation extends BridgeAnimation +{ + + private static final String BLOCK_IDS_KEY = "BLOCK_IDS"; + private static final String RATE_KEY = "RATE"; + private static final String PARTICLE_KEY = "PARTICLE"; + private static final String SOUND_KEY = "SOUND"; + private static final String REGION_KEY = "BRIDGE"; + + protected final BlockRestore _restore; + + private final String _typeKey; + protected final Map _bridgeBlocks; + + // Configuration + protected List _blockIds; + protected int _rate; + protected ParticleType _particle; + + // Sound + protected Sound _sound; + protected float _pitch; + + protected double _maxDistance; + + public CustomBridgeAnimation(Bridge bridge, String typeKey) + { + super(bridge); + + _restore = bridge.getArcadeManager().GetBlockRestore(); + + _typeKey = typeKey; + _bridgeBlocks = new HashMap<>(AVERAGE_BRIDGE_BLOCKS); + + // Defaults + // Wood, Logs, Fences + _blockIds = Arrays.asList(5, 17, 85); + _rate = 1; + _particle = ParticleType.BLOCK_DUST; + } + + @Override + public void onParse() + { + List blockIds = new ArrayList<>(); + + for (String key : _worldData.GetAllCustomLocs().keySet()) + { + String[] split = key.split(" "); + String subKey = split[0]; + + if (split.length < 2) + { + continue; + } + + switch (subKey) + { + + case BLOCK_IDS_KEY: + // Set the block ids that the animation will use + + for (int i = 1; i < split.length; i++) + { + try + { + blockIds.add(Integer.parseInt(split[i])); + } + catch (NumberFormatException e) + { + continue; + } + } + + break; + + case RATE_KEY: + // Set the rate at which the animation will run at + + try + { + _rate = Integer.parseInt(split[1]); + } + catch (NumberFormatException e) + { + continue; + } + + break; + + case PARTICLE_KEY: + // Set which type of particle will be displayed when a block + // spawns + + try + { + _particle = ParticleType.valueOf(split[1]); + } + catch (IllegalArgumentException e) + { + continue; + } + + break; + + case SOUND_KEY: + // Set the sound and pitch that will be played when a block + // spawns + + if (split.length < 3) + { + continue; + } + + try + { + _sound = Sound.valueOf(split[1]); + } + catch (IllegalArgumentException e) + { + continue; + } + + try + { + _pitch = Float.parseFloat(split[2]); + } + catch (NumberFormatException e) + { + continue; + } + + break; + + default: + break; + } + } + + // Set configuration values + _blockIds = blockIds; + + // Save all blocks in a big map. + for (String key : _worldData.GetAllCustomLocs().keySet()) + { + if (!key.startsWith(REGION_KEY)) + { + continue; + } + + List locations = _worldData.GetCustomLocs(key); + + if (locations.size() < 2) + { + continue; + } + + for (Block block : UtilBlock.getInBoundingBox(locations.get(0), locations.get(1))) + { + if (!_blockIds.contains(block.getTypeId())) + { + continue; + } + + double dist = UtilMath.offset2d(block.getLocation(), _bridge.GetSpectatorLocation()); + + if (dist > _maxDistance) + { + _maxDistance = dist; + } + + _restore.add(block, Material.AIR.getId(), (byte) 0, Integer.MAX_VALUE); + _bridgeBlocks.put(block.getLocation(), dist); + } + } + } + + public void onBlockSet(Block block) + { + World world = _worldData.World; + Location location = block.getLocation().add(0.5, 0.5, 0.5); + + if (_particle != null) + { + if (_particle == ParticleType.BLOCK_DUST) + { + world.playEffect(location, Effect.STEP_SOUND, block.getType(), block.getData()); + } + else + { + UtilParticle.PlayParticleToAll(_particle, block.getLocation(), 0.5F, 0.5F, 0.5F, 0.5F, 5, ViewDist.NORMAL); + } + } + + if (_sound != null) + { + world.playSound(location, _sound, 1, _pitch); + } + } + + public final String getTypeKey() + { + return _typeKey; + } + + @Override + public String toString() + { + StringBuilder builder = new StringBuilder(); + + builder.append("Type: " + _typeKey).append("\n"); + builder.append("Bridge Blocks: " + _bridgeBlocks.size()).append("\n"); + builder.append("Block Ids: " + _blockIds).append("\n"); + builder.append("Rate: " + _rate).append("\n"); + builder.append("Particle: " + (_particle == null ? "Null" : _particle.getFriendlyName())).append("\n"); + builder.append("Sound: " + (_sound == null ? "Null" : _sound.toString() + " Pitch: " + _pitch)).append("\n"); + builder.append("Max Distance: " + _maxDistance).append("\n"); + + return builder.toString(); + } + +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RadiusCustomBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RadiusCustomBridgeAnimation.java new file mode 100644 index 000000000..fe0779c7c --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RadiusCustomBridgeAnimation.java @@ -0,0 +1,58 @@ +package nautilus.game.arcade.game.games.bridge.animation.custom; + +import java.util.Iterator; + +import org.bukkit.Location; +import org.bukkit.block.Block; + +import mineplex.core.updater.UpdateType; +import nautilus.game.arcade.game.games.bridge.Bridge; + +public class RadiusCustomBridgeAnimation extends CustomBridgeAnimation +{ + + private double _minDistance; + + public RadiusCustomBridgeAnimation(Bridge bridge) + { + super(bridge, "RADIUS"); + } + + @Override + public void onParse() + { + super.onParse(); + + _minDistance = _maxDistance; + } + + @Override + public void onUpdate(UpdateType type) + { + if (type != UpdateType.FAST) + { + return; + } + + _minDistance -= _rate; + + Iterator iterator = _bridgeBlocks.keySet().iterator(); + + while (iterator.hasNext()) + { + Location location = iterator.next(); + double dist = _bridgeBlocks.get(location); + + if (dist > _minDistance) + { + Block block = location.getBlock(); + + _restore.restore(block); + onBlockSet(block); + + iterator.remove(); + } + } + } + +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RandomCustomBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RandomCustomBridgeAnimation.java new file mode 100644 index 000000000..badf135bb --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RandomCustomBridgeAnimation.java @@ -0,0 +1,44 @@ +package nautilus.game.arcade.game.games.bridge.animation.custom; + +import java.util.Iterator; + +import org.bukkit.Location; +import org.bukkit.block.Block; + +import mineplex.core.updater.UpdateType; +import nautilus.game.arcade.game.games.bridge.Bridge; + +public class RandomCustomBridgeAnimation extends CustomBridgeAnimation +{ + + public RandomCustomBridgeAnimation(Bridge bridge) + { + super(bridge, "RANDOM"); + } + + @Override + public void onUpdate(UpdateType type) + { + if (type != UpdateType.TICK) + { + return; + } + + Iterator iterator = _bridgeBlocks.keySet().iterator(); + int i = 0; + + while (iterator.hasNext() && i < _rate) + { + i++; + Location location = iterator.next(); + + Block block = location.getBlock(); + + _restore.restore(block); + onBlockSet(block); + + iterator.remove(); + } + } + +} From 4778d28be46e699895637ade2ea9d1d1a5cbf1ee Mon Sep 17 00:00:00 2001 From: samczsun Date: Fri, 10 Mar 2017 15:48:50 -0500 Subject: [PATCH 031/133] Allow overriding enabled team armor --- .../micro/modes/OverpoweredMicroBattles.java | 6 +++++- .../game/games/micro/modes/TinyWinners.java | 3 +++ .../arcade/game/games/sheep/modes/EweHeroes.java | 3 +++ .../games/sheep/modes/OverpoweredSheepQuest.java | 6 +++++- .../arcade/game/modules/TeamArmorModule.java | 16 ++++++++++++++-- 5 files changed, 30 insertions(+), 4 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/modes/OverpoweredMicroBattles.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/modes/OverpoweredMicroBattles.java index b1f19b179..7adb3c904 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/modes/OverpoweredMicroBattles.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/modes/OverpoweredMicroBattles.java @@ -5,6 +5,7 @@ import nautilus.game.arcade.GameType; import nautilus.game.arcade.game.games.AbsorptionFix; import nautilus.game.arcade.game.games.micro.Micro; import nautilus.game.arcade.game.games.micro.modes.kits.KitOverlord; +import nautilus.game.arcade.game.modules.TeamArmorModule; import nautilus.game.arcade.kit.Kit; /** @@ -23,7 +24,10 @@ public class OverpoweredMicroBattles extends Micro new KitOverlord(manager) }, GameType.Brawl); - + + getModule(TeamArmorModule.class) + .dontGiveTeamArmor(); + new AbsorptionFix(this); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/modes/TinyWinners.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/modes/TinyWinners.java index 2eab38c90..9e66f6631 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/modes/TinyWinners.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/modes/TinyWinners.java @@ -14,6 +14,7 @@ import nautilus.game.arcade.game.games.champions.kits.KitKnight; import nautilus.game.arcade.game.games.champions.kits.KitMage; import nautilus.game.arcade.game.games.champions.kits.KitRanger; import nautilus.game.arcade.game.games.micro.Micro; +import nautilus.game.arcade.game.modules.TeamArmorModule; import nautilus.game.arcade.kit.Kit; /** @@ -41,6 +42,8 @@ public class TinyWinners extends Micro Manager.getClassManager().GetItemFactory().getProximityManager().setProxyLimit(6); StrictAntiHack = true; + getModule(TeamArmorModule.class) + .dontGiveTeamArmor(); manager.enableChampionsModules(); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/EweHeroes.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/EweHeroes.java index a55694553..b66971a8c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/EweHeroes.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/EweHeroes.java @@ -18,6 +18,7 @@ import nautilus.game.arcade.game.games.champions.kits.KitKnight; import nautilus.game.arcade.game.games.champions.kits.KitMage; import nautilus.game.arcade.game.games.champions.kits.KitRanger; import nautilus.game.arcade.game.games.sheep.SheepGame; +import nautilus.game.arcade.game.modules.TeamArmorModule; import nautilus.game.arcade.kit.Kit; /** @@ -47,6 +48,8 @@ public class EweHeroes extends SheepGame Manager.getClassManager().GetItemFactory().getProximityManager().setProxyLimit(6); StrictAntiHack = true; + getModule(TeamArmorModule.class) + .dontGiveTeamArmor(); new ChampionsFixes(this); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/OverpoweredSheepQuest.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/OverpoweredSheepQuest.java index 8b44da93c..64a4c46ae 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/OverpoweredSheepQuest.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/OverpoweredSheepQuest.java @@ -5,6 +5,7 @@ import nautilus.game.arcade.GameType; import nautilus.game.arcade.game.games.AbsorptionFix; import nautilus.game.arcade.game.games.sheep.SheepGame; import nautilus.game.arcade.game.games.sheep.modes.kits.KitShepherd; +import nautilus.game.arcade.game.modules.TeamArmorModule; import nautilus.game.arcade.kit.Kit; /** @@ -21,7 +22,10 @@ public class OverpoweredSheepQuest extends SheepGame { new KitShepherd(manager) }, GameType.Brawl); - + + getModule(TeamArmorModule.class) + .dontGiveTeamArmor(); + new AbsorptionFix(this); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/TeamArmorModule.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/TeamArmorModule.java index 1d75f12ac..e158fd9d9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/TeamArmorModule.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/TeamArmorModule.java @@ -37,13 +37,25 @@ public class TeamArmorModule extends Module public TeamArmorModule giveTeamArmor() { - this._giveTeamArmor = true; + _giveTeamArmor = true; return this; } public TeamArmorModule giveHotbarItem() { - this._giveHotbarItem = true; + _giveHotbarItem = true; + return this; + } + + public TeamArmorModule dontGiveTeamArmor() + { + _giveTeamArmor = false; + return this; + } + + public TeamArmorModule dontGiveHotbarItem() + { + _giveHotbarItem = false; return this; } From 2881071c74b5a16d8aff04206b7e657f86021a80 Mon Sep 17 00:00:00 2001 From: AlexTheCoder Date: Fri, 10 Mar 2017 15:43:40 -0500 Subject: [PATCH 032/133] Patch Carl reward animation not cleaning up and update the votifier server to use uuid as the key for the status repository --- .../src/mineplex/core/bonuses/BonusManager.java | 7 ++++--- .../src/mineplex/votifier/VotifierManager.java | 5 ++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java index b22f39e3c..931e8d658 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java @@ -242,6 +242,7 @@ public class BonusManager extends MiniClientPlugin implements I _voteList.add("http://vote3.mineplex.com"); } _canVote = true; + Bukkit.broadcastMessage("CAN VOTE IS TRUE"); _youtubers = new ArrayList<>(); if (!ClansBonus) @@ -260,7 +261,7 @@ public class BonusManager extends MiniClientPlugin implements I } else { - if(carlLocation != null) + if (carlLocation != null) { _carlNpc.setLocation(carlLocation); } @@ -405,14 +406,14 @@ public class BonusManager extends MiniClientPlugin implements I if (event.getType() != UpdateType.TICK) return; + _animation.itemClean(); + if (_canVote) return; if (!_enabled) return; - _animation.itemClean(); - if (!_animationRunning) return; diff --git a/Plugins/Mineplex.Votifier/src/mineplex/votifier/VotifierManager.java b/Plugins/Mineplex.Votifier/src/mineplex/votifier/VotifierManager.java index 2bb683ac8..68023807b 100644 --- a/Plugins/Mineplex.Votifier/src/mineplex/votifier/VotifierManager.java +++ b/Plugins/Mineplex.Votifier/src/mineplex/votifier/VotifierManager.java @@ -118,9 +118,8 @@ public class VotifierManager extends MiniPlugin } } - String lowerPlayerName = playerName.toLowerCase(); - final PlayerStatus usStatus = _usPlayerRepo.getElement(lowerPlayerName); - final PlayerStatus euStatus = _euPlayerRepo.getElement(lowerPlayerName); + final PlayerStatus usStatus = _usPlayerRepo.getElement(uuid.toString()); + final PlayerStatus euStatus = _euPlayerRepo.getElement(uuid.toString()); System.out.println("Loaded " + playerName + " with uuid " + uuid); System.out.println("Attempting to award bonus"); From 2dce455f93ade1d834eb13ece5e569a6f6068faa Mon Sep 17 00:00:00 2001 From: AlexTheCoder Date: Fri, 10 Mar 2017 15:51:04 -0500 Subject: [PATCH 033/133] Update Carl animation to use shards instead of coins --- .../core/bonuses/animations/AnimationCarl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/animations/AnimationCarl.java b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/animations/AnimationCarl.java index 4ea6aa93b..eadfe6cfc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/animations/AnimationCarl.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/animations/AnimationCarl.java @@ -48,13 +48,13 @@ public class AnimationCarl extends Animation for (int i = 50; i < 60; i++) { Item gem = _creeper.getWorld().dropItem(_creeper.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.EMERALD, (byte) 0, 1, " " + i)); - Item coin = _creeper.getWorld().dropItem(_creeper.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.DOUBLE_PLANT, (byte) 0, 1, " " + i)); + Item shard = _creeper.getWorld().dropItem(_creeper.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.PRISMARINE_SHARD, (byte) 0, 1, " " + i)); _items.add(gem); - _items.add(coin); + _items.add(shard); Vector vel = new Vector(Math.sin(i * 9/5d), 0, Math.cos(i * 9/5d)); UtilAction.velocity(gem, vel, Math.abs(Math.sin(i * 12/3000d)), false, 0, 0.2 + Math.abs(Math.cos(i * 12/3000d))*0.6, 1, false); - UtilAction.velocity(coin, vel, Math.abs(Math.sin(UtilMath.r(i) * 30/3000d)), false, 0, 0.2 + Math.abs(Math.cos(UtilMath.r(i) * 30/3000d))*0.6, 1, false); + UtilAction.velocity(shard, vel, Math.abs(Math.sin(UtilMath.r(i) * 30/3000d)), false, 0, 0.2 + Math.abs(Math.cos(UtilMath.r(i) * 30/3000d))*0.6, 1, false); } } @@ -62,11 +62,11 @@ public class AnimationCarl extends Animation { for (int i = 50; i < 60; i++) { - Item coin = _creeper.getWorld().dropItem(_creeper.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.DOUBLE_PLANT, (byte) 0, 1, " " + i)); - _items.add(coin); + Item shard = _creeper.getWorld().dropItem(_creeper.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.PRISMARINE_SHARD, (byte) 0, 1, " " + i)); + _items.add(shard); Vector vel = new Vector(Math.sin(UtilMath.r(i) * 7/5d), 0, Math.cos(UtilMath.r(i) * 7/5d)); - UtilAction.velocity(coin, vel, Math.abs(Math.sin(UtilMath.r(i) * 7/3000d)), false, 0, 0.2 + Math.abs(Math.cos(UtilMath.r(i) * 7/3000d))*0.6, 1, false); + UtilAction.velocity(shard, vel, Math.abs(Math.sin(UtilMath.r(i) * 7/3000d)), false, 0, 0.2 + Math.abs(Math.cos(UtilMath.r(i) * 7/3000d))*0.6, 1, false); } } From 572e461eb2d09f5cf2727b7da35510deca72d5cc Mon Sep 17 00:00:00 2001 From: AlexTheCoder Date: Fri, 10 Mar 2017 15:58:08 -0500 Subject: [PATCH 034/133] Remove stray debug text --- .../Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java | 1 - 1 file changed, 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java index 931e8d658..0c261460c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java @@ -242,7 +242,6 @@ public class BonusManager extends MiniClientPlugin implements I _voteList.add("http://vote3.mineplex.com"); } _canVote = true; - Bukkit.broadcastMessage("CAN VOTE IS TRUE"); _youtubers = new ArrayList<>(); if (!ClansBonus) From db2feeac427163c82bd461367df8e88ec72c6cbd Mon Sep 17 00:00:00 2001 From: samczsun Date: Fri, 3 Mar 2017 22:00:13 -0500 Subject: [PATCH 035/133] Reorganize tracks, add BotB track --- .../core/titles/tracks/ItemizedTrack.java | 33 +++++++++++++++++++ .../core/titles/tracks/TrackManager.java | 24 ++++++++++++++ .../titles/tracks/award/Bridges2017Track.java | 31 +++++++++++++++++ .../tracks/{ => custom}/DongerTrack.java | 8 +++-- .../tracks/{ => custom}/EarlyBirdTrack.java | 7 ++-- .../tracks/{ => custom}/HappyGaryTrack.java | 7 ++-- .../tracks/{ => custom}/LeaderTrack.java | 7 ++-- .../titles/tracks/{ => custom}/SnekTrack.java | 8 +++-- .../tracks/{ => custom}/TableFlipTrack.java | 7 ++-- .../tracks/{ => custom}/WizardTrack.java | 8 +++-- .../{ => standard}/GemCollectorTrack.java | 5 ++- .../{ => standard}/HolidayCheerTrack.java | 5 ++- .../{ => standard}/KitCollectorTrack.java | 5 ++- .../tracks/{ => standard}/LevelerTrack.java | 5 ++- .../tracks/{ => standard}/LuckyTrack.java | 5 ++- .../{ => standard}/MineplexMasteryTrack.java | 7 ++-- .../{ => standard}/PartyAnimalTrack.java | 5 ++- .../tracks/{ => standard}/PeacefulTrack.java | 5 ++- .../{ => standard}/PerfectionistTrack.java | 6 +++- .../tracks/{ => standard}/PowerPlayTrack.java | 7 ++-- .../tracks/{ => standard}/SurvivorTrack.java | 6 +++- .../{ => standard}/SweetToothTrack.java | 5 ++- .../{ => standard}/TreasureHunterTrack.java | 5 ++- .../tracks/{ => standard}/UnluckyTrack.java | 5 ++- .../tracks/{ => standard}/WarriorTrack.java | 5 ++- .../game/games/christmas/Christmas.java | 2 +- .../arcade/game/games/skyfall/Island.java | 5 ++- .../arcade/game/games/skyfall/Skyfall.java | 3 -- .../arcade/game/games/skywars/Skywars.java | 4 +-- .../games/survivalgames/SurvivalGames.java | 4 +-- .../arcade/managers/GameRewardManager.java | 2 +- .../game/arcade/stats/KillsStatTracker.java | 2 +- .../game/arcade/stats/WinStatTracker.java | 2 +- 33 files changed, 200 insertions(+), 45 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/ItemizedTrack.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/award/Bridges2017Track.java rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => custom}/DongerTrack.java (75%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => custom}/EarlyBirdTrack.java (88%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => custom}/HappyGaryTrack.java (81%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => custom}/LeaderTrack.java (75%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => custom}/SnekTrack.java (74%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => custom}/TableFlipTrack.java (85%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => custom}/WizardTrack.java (81%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/GemCollectorTrack.java (89%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/HolidayCheerTrack.java (96%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/KitCollectorTrack.java (90%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/LevelerTrack.java (90%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/LuckyTrack.java (95%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/MineplexMasteryTrack.java (86%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/PartyAnimalTrack.java (91%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/PeacefulTrack.java (90%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/PerfectionistTrack.java (86%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/PowerPlayTrack.java (78%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/SurvivorTrack.java (80%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/SweetToothTrack.java (91%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/TreasureHunterTrack.java (93%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/UnluckyTrack.java (94%) rename Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/{ => standard}/WarriorTrack.java (89%) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/ItemizedTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/ItemizedTrack.java new file mode 100644 index 000000000..2710bf8d0 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/ItemizedTrack.java @@ -0,0 +1,33 @@ +package mineplex.core.titles.tracks; + +import net.md_5.bungee.api.ChatColor; + +import org.bukkit.entity.Player; + +import mineplex.core.Managers; +import mineplex.core.inventory.InventoryManager; +import mineplex.core.titles.tracks.Track; + +public class ItemizedTrack extends Track +{ + private final InventoryManager _inventoryManager = Managers.require(InventoryManager.class); + + public ItemizedTrack(String trackId, String shortName, String description, boolean hideIfUnowned) + { + super(trackId, shortName, description, hideIfUnowned); + } + + public ItemizedTrack(String trackId, ChatColor color, String shortName, String longName, String description) + { + super(trackId, color, shortName, longName, description); + } + + public ItemizedTrack(String trackId, ChatColor color, String shortName, String longName, String description, boolean hideIfUnowned) + { + super(trackId, color, shortName, longName, description, hideIfUnowned); + } + + public boolean owns(Player player) { + return _inventoryManager.Get(player).getItemCount("Track " + getId()) > 0; + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java index 1e6e3b91c..1cd788dce 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java @@ -8,6 +8,27 @@ import java.util.Map; import mineplex.core.MiniPlugin; import mineplex.core.ReflectivelyCreateMiniPlugin; +import mineplex.core.titles.tracks.custom.DongerTrack; +import mineplex.core.titles.tracks.custom.EarlyBirdTrack; +import mineplex.core.titles.tracks.custom.HappyGaryTrack; +import mineplex.core.titles.tracks.custom.LeaderTrack; +import mineplex.core.titles.tracks.custom.SnekTrack; +import mineplex.core.titles.tracks.custom.TableFlipTrack; +import mineplex.core.titles.tracks.custom.WizardTrack; +import mineplex.core.titles.tracks.award.Bridges2017Track; +import mineplex.core.titles.tracks.standard.GemCollectorTrack; +import mineplex.core.titles.tracks.standard.HolidayCheerTrack; +import mineplex.core.titles.tracks.standard.LevelerTrack; +import mineplex.core.titles.tracks.standard.LuckyTrack; +import mineplex.core.titles.tracks.standard.MineplexMasteryTrack; +import mineplex.core.titles.tracks.standard.PartyAnimalTrack; +import mineplex.core.titles.tracks.standard.PeacefulTrack; +import mineplex.core.titles.tracks.standard.PerfectionistTrack; +import mineplex.core.titles.tracks.standard.PowerPlayTrack; +import mineplex.core.titles.tracks.standard.SweetToothTrack; +import mineplex.core.titles.tracks.standard.TreasureHunterTrack; +import mineplex.core.titles.tracks.standard.UnluckyTrack; +import mineplex.core.titles.tracks.standard.WarriorTrack; @ReflectivelyCreateMiniPlugin public class TrackManager extends MiniPlugin @@ -42,6 +63,9 @@ public class TrackManager extends MiniPlugin // registerTrack(new SurvivorTrack()); registerTrack(new LevelerTrack()); registerTrack(new PerfectionistTrack()); + + // Awarded tracks + registerTrack(new Bridges2017Track()); } private void registerTrack(Track track) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/award/Bridges2017Track.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/award/Bridges2017Track.java new file mode 100644 index 000000000..03e686d86 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/award/Bridges2017Track.java @@ -0,0 +1,31 @@ +package mineplex.core.titles.tracks.award; + +import net.md_5.bungee.api.ChatColor; + +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; +import mineplex.core.titles.tracks.ItemizedTrack; + +public class Bridges2017Track extends ItemizedTrack +{ + public Bridges2017Track() + { + super( + "botb2017", + ChatColor.GOLD, + "BotB 2017", + "2017 Bridges Champion", + "This track is awarded to the winners of the 2017 BotB Tournament", + true); + + special(); + + getRequirements() + .addTier(new TrackTier( + "2017 Bridges Champion", + null, + this::owns, + new TrackFormat(ChatColor.GOLD, ChatColor.GOLD) + )); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/DongerTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/DongerTrack.java similarity index 75% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/DongerTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/DongerTrack.java index 9d03b4eb1..bdefb8144 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/DongerTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/DongerTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.custom; import java.util.Set; @@ -6,6 +6,10 @@ import net.md_5.bungee.api.ChatColor; import com.google.common.collect.Sets; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; + public class DongerTrack extends Track { private static final Set OWNERS = Sets.newHashSet( @@ -13,7 +17,7 @@ public class DongerTrack extends Track "a20d59d1-cfd8-4116-ac27-45d9c7eb4a97" ); - protected DongerTrack() + public DongerTrack() { super("donger", ChatColor.AQUA, "Donger", "Donger", "ヽ༼ຈل͜ຈ༽ノ", true); special(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/EarlyBirdTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/EarlyBirdTrack.java similarity index 88% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/EarlyBirdTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/EarlyBirdTrack.java index 9e7551900..5fd11ec04 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/EarlyBirdTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/EarlyBirdTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.custom; import java.sql.ResultSet; import java.sql.SQLException; @@ -15,12 +15,15 @@ import com.google.common.collect.Sets; import mineplex.core.Managers; import mineplex.core.account.CoreClientManager; import mineplex.core.account.ILoginProcessor; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class EarlyBirdTrack extends Track { private final Set _wonEternal = Sets.newConcurrentHashSet(); - protected EarlyBirdTrack() + public EarlyBirdTrack() { super("early-bird", ChatColor.AQUA, "Early Bird", "Early Bird", "This track is unlocked by receiving the Eternal rank from chickens in the 2016 Thanksgiving Event", true); special(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HappyGaryTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/HappyGaryTrack.java similarity index 81% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HappyGaryTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/HappyGaryTrack.java index fe75d1bf4..25b98d970 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HappyGaryTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/HappyGaryTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.custom; import java.util.Set; @@ -9,12 +9,15 @@ import com.google.common.collect.Sets; import mineplex.core.Managers; import mineplex.core.account.CoreClientManager; import mineplex.core.common.Rank; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class HappyGaryTrack extends Track { private final CoreClientManager _coreClientManager = Managers.require(CoreClientManager.class); - protected HappyGaryTrack() + public HappyGaryTrack() { super("happygary", ChatColor.GOLD, "Happy Gary", "Happy Gary", "ᐛ", true); special(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LeaderTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/LeaderTrack.java similarity index 75% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LeaderTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/LeaderTrack.java index 80b14ce33..e7a600b17 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LeaderTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/LeaderTrack.java @@ -1,16 +1,19 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.custom; import net.md_5.bungee.api.ChatColor; import mineplex.core.Managers; import mineplex.core.account.CoreClientManager; import mineplex.core.common.Rank; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class LeaderTrack extends Track { private final CoreClientManager _coreClientManager = Managers.require(CoreClientManager.class); - protected LeaderTrack() + public LeaderTrack() { super("leader", ChatColor.DARK_RED, "Leader", "What's a Leader?", "also wat does dev mean", true); special(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/SnekTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/SnekTrack.java similarity index 74% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/SnekTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/SnekTrack.java index 7d2f1ad51..5744f36b3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/SnekTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/SnekTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.custom; import java.util.Set; @@ -6,13 +6,17 @@ import net.md_5.bungee.api.ChatColor; import com.google.common.collect.Sets; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; + public class SnekTrack extends Track { private static final Set OWNERS = Sets.newHashSet( "b86b54da-93dd-46f9-be33-27bd92aa36d7" ); - protected SnekTrack() + public SnekTrack() { super("snek", ChatColor.DARK_GREEN, "Snek", "Snek", "oh you have do me a frighten", true); special(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TableFlipTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/TableFlipTrack.java similarity index 85% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TableFlipTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/TableFlipTrack.java index 4924fe3ef..0ace62597 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TableFlipTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/TableFlipTrack.java @@ -1,16 +1,19 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.custom; import net.md_5.bungee.api.ChatColor; import mineplex.core.Managers; import mineplex.core.account.CoreClientManager; import mineplex.core.common.Rank; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class TableFlipTrack extends Track { private final CoreClientManager _coreClientManager = Managers.require(CoreClientManager.class); - protected TableFlipTrack() + public TableFlipTrack() { super("tableflip", ChatColor.AQUA, "Tableflip", "Tableflip", "(╯°□°)╯ ︵ ┻━┻", true); special(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/WizardTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/WizardTrack.java similarity index 81% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/WizardTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/WizardTrack.java index 768c67620..3f0e85c3e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/WizardTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/WizardTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.custom; import java.util.Set; @@ -6,6 +6,10 @@ import net.md_5.bungee.api.ChatColor; import com.google.common.collect.Sets; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; + // hmu t3 public class WizardTrack extends Track { @@ -14,7 +18,7 @@ public class WizardTrack extends Track "2016b565-0a63-4a2d-800b-b786ac256288" ); - protected WizardTrack() + public WizardTrack() { super("wizard", ChatColor.DARK_PURPLE, "Wizard", "Wizard", "(ノ◕ヮ◕)ノ*:・゚✧", true); special(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/GemCollectorTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/GemCollectorTrack.java similarity index 89% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/GemCollectorTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/GemCollectorTrack.java index f3dfde3e5..1fa16a704 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/GemCollectorTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/GemCollectorTrack.java @@ -1,10 +1,13 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import net.md_5.bungee.api.ChatColor; import org.bukkit.entity.Player; import mineplex.core.gadget.set.SetEmerald; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class GemCollectorTrack extends Track { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HolidayCheerTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/HolidayCheerTrack.java similarity index 96% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HolidayCheerTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/HolidayCheerTrack.java index 00c807f43..5a3e67e76 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HolidayCheerTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/HolidayCheerTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import java.util.HashMap; import java.util.HashSet; @@ -24,6 +24,9 @@ import mineplex.core.gadget.set.SetFreedom; import mineplex.core.gadget.set.SetFrostLord; import mineplex.core.gadget.types.Gadget; import mineplex.core.gadget.types.GadgetSet; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; import mineplex.core.treasure.TreasureType; import mineplex.core.treasure.event.TreasureStartEvent; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/KitCollectorTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/KitCollectorTrack.java similarity index 90% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/KitCollectorTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/KitCollectorTrack.java index df1366f33..66657f5a9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/KitCollectorTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/KitCollectorTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import net.md_5.bungee.api.ChatColor; @@ -8,6 +8,9 @@ import mineplex.core.Managers; import mineplex.core.achievement.AchievementCategory; import mineplex.core.donation.DonationManager; import mineplex.core.game.GameDisplay; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class KitCollectorTrack extends Track { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LevelerTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/LevelerTrack.java similarity index 90% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LevelerTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/LevelerTrack.java index f079f9d52..5d16b8da8 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LevelerTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/LevelerTrack.java @@ -1,10 +1,13 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import net.md_5.bungee.api.ChatColor; import mineplex.core.Managers; import mineplex.core.achievement.Achievement; import mineplex.core.achievement.AchievementManager; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class LevelerTrack extends Track { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LuckyTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/LuckyTrack.java similarity index 95% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LuckyTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/LuckyTrack.java index f839c01f6..7a8d3f0b5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LuckyTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/LuckyTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import java.util.EnumMap; import java.util.HashSet; @@ -14,6 +14,9 @@ import org.bukkit.inventory.ItemStack; import mineplex.core.reward.Reward; import mineplex.core.reward.RewardRarity; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; import mineplex.core.treasure.TreasureType; import mineplex.core.treasure.event.TreasureStartEvent; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/MineplexMasteryTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/MineplexMasteryTrack.java similarity index 86% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/MineplexMasteryTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/MineplexMasteryTrack.java index 6135da8af..326ac6d98 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/MineplexMasteryTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/MineplexMasteryTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import net.md_5.bungee.api.ChatColor; @@ -7,12 +7,15 @@ import org.bukkit.entity.Player; import mineplex.core.Managers; import mineplex.core.game.GameDisplay; import mineplex.core.stats.StatsManager; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class MineplexMasteryTrack extends Track { private final StatsManager _statsManager; - protected MineplexMasteryTrack() + public MineplexMasteryTrack() { super("mineplex-mastery", "Mineplex Mastery", "This track is unlocked by winning different games on Mineplex"); getRequirements() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/PartyAnimalTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PartyAnimalTrack.java similarity index 91% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/PartyAnimalTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PartyAnimalTrack.java index 96426f84d..a626e623d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/PartyAnimalTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PartyAnimalTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import java.util.HashMap; import java.util.Map; @@ -13,6 +13,9 @@ import mineplex.core.gadget.gadgets.item.ItemFirework; import mineplex.core.gadget.gadgets.item.ItemPartyPopper; import mineplex.core.gadget.set.SetParty; import mineplex.core.gadget.types.Gadget; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class PartyAnimalTrack extends Track { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/PeacefulTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PeacefulTrack.java similarity index 90% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/PeacefulTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PeacefulTrack.java index 123856b8d..1afd61773 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/PeacefulTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PeacefulTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import java.util.HashSet; import java.util.Set; @@ -9,6 +9,9 @@ import org.bukkit.entity.Player; import mineplex.core.gadget.set.SetMusic; import mineplex.core.game.GameDisplay; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class PeacefulTrack extends Track { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/PerfectionistTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PerfectionistTrack.java similarity index 86% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/PerfectionistTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PerfectionistTrack.java index ceb768357..7bd458dd5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/PerfectionistTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PerfectionistTrack.java @@ -1,10 +1,14 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import net.md_5.bungee.api.ChatColor; import org.bukkit.entity.Player; import mineplex.core.Managers; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackManager; +import mineplex.core.titles.tracks.TrackTier; public class PerfectionistTrack extends Track { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/PowerPlayTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PowerPlayTrack.java similarity index 78% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/PowerPlayTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PowerPlayTrack.java index 72730bc78..1badc6ce1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/PowerPlayTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PowerPlayTrack.java @@ -1,16 +1,19 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import net.md_5.bungee.api.ChatColor; import mineplex.core.Managers; import mineplex.core.bonuses.BonusManager; import mineplex.core.powerplayclub.PowerPlayClubRepository; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class PowerPlayTrack extends Track { private final PowerPlayClubRepository _powerPlayClubRepository = Managers.require(BonusManager.class).getPowerPlayClubRepository(); - protected PowerPlayTrack() + public PowerPlayTrack() { super("power-play", ChatColor.AQUA, "Power Play", "Power Play VIP", "This track is unlocked by subscribing to the Power Play Club"); getRequirements() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/SurvivorTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/SurvivorTrack.java similarity index 80% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/SurvivorTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/SurvivorTrack.java index 31b4dca30..6c4cd34ef 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/SurvivorTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/SurvivorTrack.java @@ -1,7 +1,11 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import net.md_5.bungee.api.ChatColor; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; + public class SurvivorTrack extends Track { public SurvivorTrack() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/SweetToothTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/SweetToothTrack.java similarity index 91% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/SweetToothTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/SweetToothTrack.java index b3bd8ca15..b1e28da36 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/SweetToothTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/SweetToothTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import java.util.HashMap; import java.util.Map; @@ -12,6 +12,9 @@ import mineplex.core.gadget.event.PlayerConsumeMelonEvent; import mineplex.core.gadget.gadgets.item.ItemLovePotion; import mineplex.core.gadget.set.SetCandyCane; import mineplex.core.gadget.types.Gadget; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class SweetToothTrack extends Track { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TreasureHunterTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/TreasureHunterTrack.java similarity index 93% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TreasureHunterTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/TreasureHunterTrack.java index 861ef4dbe..d5afe5c49 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TreasureHunterTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/TreasureHunterTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import java.util.EnumMap; @@ -7,6 +7,9 @@ import net.md_5.bungee.api.ChatColor; import org.bukkit.event.EventHandler; import mineplex.core.gadget.set.SetWisdom; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; import mineplex.core.treasure.TreasureType; import mineplex.core.treasure.event.TreasureStartEvent; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/UnluckyTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/UnluckyTrack.java similarity index 94% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/UnluckyTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/UnluckyTrack.java index a23a3b332..3883722bd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/UnluckyTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/UnluckyTrack.java @@ -1,4 +1,4 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import java.util.EnumMap; import java.util.HashSet; @@ -14,6 +14,9 @@ import org.bukkit.inventory.ItemStack; import mineplex.core.reward.Reward; import mineplex.core.reward.RewardRarity; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; import mineplex.core.treasure.event.TreasureStartEvent; public class UnluckyTrack extends Track diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/WarriorTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/WarriorTrack.java similarity index 89% rename from Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/WarriorTrack.java rename to Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/WarriorTrack.java index fb6c129af..dfdd2383d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/WarriorTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/WarriorTrack.java @@ -1,10 +1,13 @@ -package mineplex.core.titles.tracks; +package mineplex.core.titles.tracks.standard; import net.md_5.bungee.api.ChatColor; import org.bukkit.entity.Player; import mineplex.core.gadget.set.SetVampire; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; public class WarriorTrack extends Track { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/christmas/Christmas.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/christmas/Christmas.java index 794bc4cc6..d64e698de 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/christmas/Christmas.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/christmas/Christmas.java @@ -34,7 +34,7 @@ import mineplex.core.common.util.UtilTime; import mineplex.core.packethandler.IPacketHandler; import mineplex.core.packethandler.PacketInfo; import mineplex.core.recharge.Recharge; -import mineplex.core.titles.tracks.HolidayCheerTrack; +import mineplex.core.titles.tracks.standard.HolidayCheerTrack; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.damage.CustomDamageEvent; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skyfall/Island.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skyfall/Island.java index b7a5ef10e..93f15841d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skyfall/Island.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skyfall/Island.java @@ -9,12 +9,11 @@ import org.bukkit.block.Chest; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; -import mineplex.core.Managers; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilMath; import mineplex.core.loot.ChestLoot; -import mineplex.core.titles.tracks.LuckyTrack; -import mineplex.core.titles.tracks.UnluckyTrack; +import mineplex.core.titles.tracks.standard.LuckyTrack; +import mineplex.core.titles.tracks.standard.UnluckyTrack; import nautilus.game.arcade.ArcadeManager; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skyfall/Skyfall.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skyfall/Skyfall.java index d15f72cf2..ab8ae6c56 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skyfall/Skyfall.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skyfall/Skyfall.java @@ -10,7 +10,6 @@ import java.util.UUID; import net.md_5.bungee.api.ChatColor; -import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.FireworkEffect; import org.bukkit.FireworkEffect.Type; @@ -60,8 +59,6 @@ import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTime; import mineplex.core.recharge.Recharge; -import mineplex.core.titles.tracks.LuckyTrack; -import mineplex.core.titles.tracks.UnluckyTrack; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.damage.CustomDamageEvent; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/Skywars.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/Skywars.java index a437aa169..a82efebfc 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/Skywars.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/Skywars.java @@ -68,8 +68,8 @@ import mineplex.core.explosion.ExplosionEvent; import mineplex.core.loot.ChestLoot; import mineplex.core.loot.RandomItem; import mineplex.core.recharge.Recharge; -import mineplex.core.titles.tracks.LuckyTrack; -import mineplex.core.titles.tracks.UnluckyTrack; +import mineplex.core.titles.tracks.standard.LuckyTrack; +import mineplex.core.titles.tracks.standard.UnluckyTrack; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.combat.CombatComponent; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SurvivalGames.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SurvivalGames.java index 56ceef7ed..d1a7665ad 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SurvivalGames.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SurvivalGames.java @@ -101,8 +101,8 @@ import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.loot.ChestLoot; import mineplex.core.loot.RandomItem; import mineplex.core.recharge.Recharge; -import mineplex.core.titles.tracks.LuckyTrack; -import mineplex.core.titles.tracks.UnluckyTrack; +import mineplex.core.titles.tracks.standard.LuckyTrack; +import mineplex.core.titles.tracks.standard.UnluckyTrack; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.core.visibility.VisibilityManager; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameRewardManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameRewardManager.java index 4c8db7903..f1834bdaf 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameRewardManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameRewardManager.java @@ -7,7 +7,7 @@ import mineplex.core.boosters.Booster; import mineplex.core.common.Rank; import mineplex.core.common.currency.GlobalCurrency; import mineplex.core.common.util.*; -import mineplex.core.titles.tracks.GemCollectorTrack; +import mineplex.core.titles.tracks.standard.GemCollectorTrack; import mineplex.minecraft.game.core.combat.CombatComponent; import mineplex.minecraft.game.core.combat.event.CombatDeathEvent; import mineplex.serverdata.Utility; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/KillsStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/KillsStatTracker.java index 7a24f23d1..d7d729926 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/KillsStatTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/KillsStatTracker.java @@ -5,7 +5,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import mineplex.core.common.util.UtilPlayer; -import mineplex.core.titles.tracks.WarriorTrack; +import mineplex.core.titles.tracks.standard.WarriorTrack; import mineplex.minecraft.game.core.combat.event.CombatDeathEvent; import nautilus.game.arcade.game.Game; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/WinStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/WinStatTracker.java index 68c9de226..fd0b57ccb 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/WinStatTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/WinStatTracker.java @@ -6,7 +6,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import mineplex.core.titles.tracks.PeacefulTrack; +import mineplex.core.titles.tracks.standard.PeacefulTrack; import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.game.Game; From 1cb118d3e5be2d615f0c270dd304c6aee471047e Mon Sep 17 00:00:00 2001 From: samczsun Date: Mon, 6 Mar 2017 17:04:49 -0500 Subject: [PATCH 036/133] Allow force giving items --- .../inventory/command/GiveItemCommand.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/inventory/command/GiveItemCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/inventory/command/GiveItemCommand.java index b5f03fe3e..67444ebe3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/inventory/command/GiveItemCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/inventory/command/GiveItemCommand.java @@ -32,9 +32,18 @@ public class GiveItemCommand extends CommandBase final String playerName = args[0]; final int amount = Integer.parseInt(args[1]); String itemNameTemp = ""; + + boolean force = false; for (int i = 2; i < args.length; i++) { - itemNameTemp += args[i] + " "; + if (i == args.length - 1 && args[i].equals("-f")) + { + force = true; + } + else + { + itemNameTemp += args[i] + " "; + } } itemNameTemp = itemNameTemp.trim(); @@ -44,11 +53,13 @@ public class GiveItemCommand extends CommandBase final Item item = Plugin.getItem(itemName); Player player = UtilPlayer.searchExact(playerName); - if (item == null) + if (item == null && !force) { - UtilPlayer.message(caller, F.main("Item", "Item with the name " + F.item(itemName) + " not found!")); + UtilPlayer.message(caller, F.main("Item", "Item with the name " + F.item(itemName) + " not found! If you meant to do this, add " + F.elem("-f") + " after the item name.")); + return; } - else if (playerName.equalsIgnoreCase("@a")) + + if (playerName.equalsIgnoreCase("@a")) { for (Player pl : UtilServer.getPlayers()) { From ca5b4386f3ad68508aa6f2f6d5dfe0a375a75263 Mon Sep 17 00:00:00 2001 From: samczsun Date: Mon, 6 Mar 2017 17:20:46 -0500 Subject: [PATCH 037/133] Nevermind, make a new command --- .../inventory/command/GiveItemCommand.java | 19 ++----- .../src/mineplex/core/titles/Titles.java | 1 + .../titles/commands/GiveTrackCommand.java | 48 ++++++++++++++++++ .../core/titles/tracks/ItemizedTrack.java | 3 +- .../core/titles/tracks/TrackManager.java | 49 ++++++++++++++++++- 5 files changed, 102 insertions(+), 18 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/titles/commands/GiveTrackCommand.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/inventory/command/GiveItemCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/inventory/command/GiveItemCommand.java index 67444ebe3..b5f03fe3e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/inventory/command/GiveItemCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/inventory/command/GiveItemCommand.java @@ -32,18 +32,9 @@ public class GiveItemCommand extends CommandBase final String playerName = args[0]; final int amount = Integer.parseInt(args[1]); String itemNameTemp = ""; - - boolean force = false; for (int i = 2; i < args.length; i++) { - if (i == args.length - 1 && args[i].equals("-f")) - { - force = true; - } - else - { - itemNameTemp += args[i] + " "; - } + itemNameTemp += args[i] + " "; } itemNameTemp = itemNameTemp.trim(); @@ -53,13 +44,11 @@ public class GiveItemCommand extends CommandBase final Item item = Plugin.getItem(itemName); Player player = UtilPlayer.searchExact(playerName); - if (item == null && !force) + if (item == null) { - UtilPlayer.message(caller, F.main("Item", "Item with the name " + F.item(itemName) + " not found! If you meant to do this, add " + F.elem("-f") + " after the item name.")); - return; + UtilPlayer.message(caller, F.main("Item", "Item with the name " + F.item(itemName) + " not found!")); } - - if (playerName.equalsIgnoreCase("@a")) + else if (playerName.equalsIgnoreCase("@a")) { for (Player pl : UtilServer.getPlayers()) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/Titles.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/Titles.java index 4ebce3925..2fae8a0ea 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/Titles.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/Titles.java @@ -70,6 +70,7 @@ import mineplex.core.itemstack.ItemBuilder; import mineplex.core.packethandler.IPacketHandler; import mineplex.core.packethandler.PacketHandler; import mineplex.core.packethandler.PacketInfo; +import mineplex.core.titles.commands.GiveTrackCommand; import mineplex.core.titles.commands.TrackCommand; import mineplex.core.titles.tracks.Track; import mineplex.core.titles.tracks.TrackFormat; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/commands/GiveTrackCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/commands/GiveTrackCommand.java new file mode 100644 index 000000000..2b6df2960 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/commands/GiveTrackCommand.java @@ -0,0 +1,48 @@ +package mineplex.core.titles.commands; + +import org.bukkit.entity.Player; + +import mineplex.core.command.CommandBase; +import mineplex.core.common.Rank; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.titles.tracks.ItemizedTrack; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackManager; + +public class GiveTrackCommand extends CommandBase +{ + public GiveTrackCommand(TrackManager plugin) + { + super(plugin, Rank.ADMIN, "givetrack"); + } + + @Override + public void Execute(Player caller, String[] args) + { + if (args.length < 2) + { + UtilPlayer.message(caller, F.help("/givetrack ", "Give a player an unlockable track", GetRequiredRank())); + return; + } + + String player = args[0]; + String track = args[1]; + + Track trackObj = Plugin.getTrackById(track); + + if (trackObj == null) + { + UtilPlayer.message(caller, F.main(Plugin.getName(), "That is not a track")); + return; + } + + if (!(trackObj instanceof ItemizedTrack)) + { + UtilPlayer.message(caller, F.main(Plugin.getName(), "That is not an unlockable track")); + return; + } + + Plugin.unlockTrack(caller, player, track); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/ItemizedTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/ItemizedTrack.java index 2710bf8d0..d07f639c0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/ItemizedTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/ItemizedTrack.java @@ -6,7 +6,6 @@ import org.bukkit.entity.Player; import mineplex.core.Managers; import mineplex.core.inventory.InventoryManager; -import mineplex.core.titles.tracks.Track; public class ItemizedTrack extends Track { @@ -28,6 +27,6 @@ public class ItemizedTrack extends Track } public boolean owns(Player player) { - return _inventoryManager.Get(player).getItemCount("Track " + getId()) > 0; + return _inventoryManager.Get(player).getItemCount("track." + getId()) > 0; } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java index 1cd788dce..f786f34f9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java @@ -6,8 +6,19 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import org.bukkit.entity.Player; + import mineplex.core.MiniPlugin; import mineplex.core.ReflectivelyCreateMiniPlugin; +import mineplex.core.account.CoreClient; +import mineplex.core.account.CoreClientManager; +import mineplex.core.common.currency.GlobalCurrency; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.donation.DonationManager; +import mineplex.core.inventory.InventoryManager; +import mineplex.core.titles.commands.GiveTrackCommand; +import mineplex.core.titles.tracks.award.Bridges2017Track; import mineplex.core.titles.tracks.custom.DongerTrack; import mineplex.core.titles.tracks.custom.EarlyBirdTrack; import mineplex.core.titles.tracks.custom.HappyGaryTrack; @@ -15,7 +26,6 @@ import mineplex.core.titles.tracks.custom.LeaderTrack; import mineplex.core.titles.tracks.custom.SnekTrack; import mineplex.core.titles.tracks.custom.TableFlipTrack; import mineplex.core.titles.tracks.custom.WizardTrack; -import mineplex.core.titles.tracks.award.Bridges2017Track; import mineplex.core.titles.tracks.standard.GemCollectorTrack; import mineplex.core.titles.tracks.standard.HolidayCheerTrack; import mineplex.core.titles.tracks.standard.LevelerTrack; @@ -36,6 +46,9 @@ public class TrackManager extends MiniPlugin private final Map, Track> _registeredTracks = new LinkedHashMap<>(); private final Map _trackById = new HashMap<>(); + private final InventoryManager _inventoryManager = require(InventoryManager.class); + private final CoreClientManager _coreClientManager = require(CoreClientManager.class); + private TrackManager() { super("Track Manager"); @@ -68,6 +81,13 @@ public class TrackManager extends MiniPlugin registerTrack(new Bridges2017Track()); } + @Override + public void addCommands() + { + addCommand(new GiveTrackCommand(this)); + } + + private void registerTrack(Track track) { _registeredTracks.put(track.getClass(), track); @@ -88,4 +108,31 @@ public class TrackManager extends MiniPlugin { return new ArrayList<>(_registeredTracks.values()); } + + public void unlockTrack(Player caller, String player, String track) + { + _coreClientManager.getOrLoadClient(player, client -> + { + if (client == null) + { + UtilPlayer.message(caller, F.main(getName(), "That player has never joined Mineplex!")); + return; + } + + runAsync(() -> + { + _inventoryManager.addItemToInventoryForOffline(success -> + { + if (success) + { + UtilPlayer.message(caller, F.main(getName(), "Successfully gave " + F.elem(player) + " the track " + F.elem(track) + "!")); + } + else + { + UtilPlayer.message(caller, F.main(getName(), "Oops. Something has gone wrong while giving " + F.elem(player) + " the track " + F.elem(track) + "!")); + } + }, client.getAccountId(), "track." + track, 1); + }); + }); + } } From d1993465a69c968997c1c2783c174c800a007e75 Mon Sep 17 00:00:00 2001 From: samczsun Date: Mon, 6 Mar 2017 17:24:43 -0500 Subject: [PATCH 038/133] Add to online player if they're online --- .../core/titles/tracks/TrackManager.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java index f786f34f9..b2d97095c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java @@ -6,6 +6,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import org.bukkit.Bukkit; import org.bukkit.entity.Player; import mineplex.core.MiniPlugin; @@ -13,9 +14,11 @@ import mineplex.core.ReflectivelyCreateMiniPlugin; import mineplex.core.account.CoreClient; import mineplex.core.account.CoreClientManager; import mineplex.core.common.currency.GlobalCurrency; +import mineplex.core.common.util.Callback; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilPlayer; import mineplex.core.donation.DonationManager; +import mineplex.core.inventory.ClientItem; import mineplex.core.inventory.InventoryManager; import mineplex.core.titles.commands.GiveTrackCommand; import mineplex.core.titles.tracks.award.Bridges2017Track; @@ -121,7 +124,7 @@ public class TrackManager extends MiniPlugin runAsync(() -> { - _inventoryManager.addItemToInventoryForOffline(success -> + Callback successCallback = success -> { if (success) { @@ -131,7 +134,18 @@ public class TrackManager extends MiniPlugin { UtilPlayer.message(caller, F.main(getName(), "Oops. Something has gone wrong while giving " + F.elem(player) + " the track " + F.elem(track) + "!")); } - }, client.getAccountId(), "track." + track, 1); + }; + + Player playerObj = Bukkit.getPlayer(client.getUniqueId()); + + if (playerObj != null) + { + _inventoryManager.addItemToInventory(successCallback, playerObj, "track." + track, 1); + } + else + { + _inventoryManager.addItemToInventoryForOffline(successCallback, client.getAccountId(), "track." + track, 1); + } }); }); } From 035f4637bacc99a14453bec44f775f28d022873a Mon Sep 17 00:00:00 2001 From: samczsun Date: Sun, 12 Mar 2017 22:12:47 -0400 Subject: [PATCH 039/133] Tracks in chests! --- .../mineplex/core/command/CommandBase.java | 6 +- .../core/friend/command/AddFriend.java | 2 +- .../message/commands/MessageAdminCommand.java | 2 +- .../core/message/commands/MessageCommand.java | 2 +- .../party/command/cli/PartyInviteCommand.java | 3 +- .../party/command/cli/PartyKickCommand.java | 2 +- .../cli/PartyTransferOwnerCommand.java | 2 +- .../command/gui/PartyGUIInviteCommand.java | 2 +- .../core/punish/Command/PunishCommand.java | 2 +- .../titles/commands/GiveTrackCommand.java | 39 +++- .../core/titles/commands/TrackCommand.java | 17 ++ .../core/titles/tracks/ItemizedTrack.java | 3 + .../mineplex/core/titles/tracks/Track.java | 2 +- .../core/titles/tracks/TrackManager.java | 164 +++++++++++++++-- .../titles/tracks/award/Bridges2017Track.java | 2 +- .../titles/tracks/custom/TableFlipTrack.java | 2 +- .../titles/tracks/custom/TrackBuilder.java | 173 ++++++++++++++++++ 17 files changed, 394 insertions(+), 31 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/TrackBuilder.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/command/CommandBase.java b/Plugins/Mineplex.Core/src/mineplex/core/command/CommandBase.java index f2cccf0a2..02709a26f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/command/CommandBase.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/command/CommandBase.java @@ -135,12 +135,12 @@ public abstract class CommandBase implements ICom return matches; } - protected List tabCompletePlayerNames(CommandSender sender, String commandLabel, String[] args) + protected List tabCompletePlayerNames(CommandSender sender, String[] args) { - return tabCompletePlayerNames(sender, commandLabel, args, t -> true); + return tabCompletePlayerNames(sender, args, t -> true); } - protected List tabCompletePlayerNames(CommandSender sender, String commandLabel, String[] args, Predicate filter) + protected List tabCompletePlayerNames(CommandSender sender, String[] args, Predicate filter) { if (sender instanceof Player) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/friend/command/AddFriend.java b/Plugins/Mineplex.Core/src/mineplex/core/friend/command/AddFriend.java index 691c350f0..62546317e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/friend/command/AddFriend.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/friend/command/AddFriend.java @@ -47,6 +47,6 @@ public class AddFriend extends CommandBase @Override public List onTabComplete(CommandSender sender, String commandLabel, String[] args) { - return tabCompletePlayerNames(sender, commandLabel, args); + return tabCompletePlayerNames(sender, args); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/message/commands/MessageAdminCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/message/commands/MessageAdminCommand.java index 021c87684..3dab673b8 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/message/commands/MessageAdminCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/message/commands/MessageAdminCommand.java @@ -35,6 +35,6 @@ public class MessageAdminCommand extends CommandBase @Override public List onTabComplete(CommandSender sender, String commandLabel, String[] args) { - return tabCompletePlayerNames(sender, commandLabel, args); + return tabCompletePlayerNames(sender, args); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/message/commands/MessageCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/message/commands/MessageCommand.java index bdc02920f..03ceaa5fd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/message/commands/MessageCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/message/commands/MessageCommand.java @@ -45,6 +45,6 @@ public class MessageCommand extends CommandBase @Override public List onTabComplete(CommandSender sender, String commandLabel, String[] args) { - return tabCompletePlayerNames(sender, commandLabel, args); + return tabCompletePlayerNames(sender, args); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/party/command/cli/PartyInviteCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/party/command/cli/PartyInviteCommand.java index b2435ca04..3e67e92a6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/party/command/cli/PartyInviteCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/party/command/cli/PartyInviteCommand.java @@ -1,6 +1,5 @@ package mineplex.core.party.command.cli; -import java.util.Arrays; import java.util.List; import org.bukkit.command.CommandSender; @@ -39,7 +38,7 @@ public class PartyInviteCommand extends CommandBase Player player = (Player) sender; Party party = Plugin.getPartyByPlayer(player); - return tabCompletePlayerNames(sender, commandLabel, args, other -> party == null || !party.isMember(other)); + return tabCompletePlayerNames(sender, args, other -> party == null || !party.isMember(other)); } return null; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/party/command/cli/PartyKickCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/party/command/cli/PartyKickCommand.java index 7612a7325..5613e5758 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/party/command/cli/PartyKickCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/party/command/cli/PartyKickCommand.java @@ -50,7 +50,7 @@ public class PartyKickCommand extends CommandBase if (party != null && party.isOwner(player)) { - return tabCompletePlayerNames(sender, commandLabel, args, other -> other != player && party.isMember(other)); + return tabCompletePlayerNames(sender, args, other -> other != player && party.isMember(other)); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/party/command/cli/PartyTransferOwnerCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/party/command/cli/PartyTransferOwnerCommand.java index 402b0be83..68dac5f57 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/party/command/cli/PartyTransferOwnerCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/party/command/cli/PartyTransferOwnerCommand.java @@ -77,7 +77,7 @@ public class PartyTransferOwnerCommand extends CommandBase if (party != null && party.isOwner(player)) { - return tabCompletePlayerNames(sender, commandLabel, args, other -> other != player && party.isMember(other)); + return tabCompletePlayerNames(sender, args, other -> other != player && party.isMember(other)); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/party/command/gui/PartyGUIInviteCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/party/command/gui/PartyGUIInviteCommand.java index f3832cbad..2ae17a558 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/party/command/gui/PartyGUIInviteCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/party/command/gui/PartyGUIInviteCommand.java @@ -38,7 +38,7 @@ public class PartyGUIInviteCommand extends CommandBase Player player = (Player) sender; Party party = Plugin.getPartyByPlayer(player); - return tabCompletePlayerNames(sender, commandLabel, args, other -> party == null || !party.isMember(other)); + return tabCompletePlayerNames(sender, args, other -> party == null || !party.isMember(other)); } return null; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/punish/Command/PunishCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/punish/Command/PunishCommand.java index 1f9166e6e..2b5ef2dbf 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/punish/Command/PunishCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/punish/Command/PunishCommand.java @@ -143,6 +143,6 @@ public class PunishCommand extends CommandBase @Override public List onTabComplete(CommandSender sender, String commandLabel, String[] args) { - return tabCompletePlayerNames(sender, commandLabel, args); + return tabCompletePlayerNames(sender, args); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/commands/GiveTrackCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/commands/GiveTrackCommand.java index 2b6df2960..88c8f9c8f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/commands/GiveTrackCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/commands/GiveTrackCommand.java @@ -1,5 +1,9 @@ package mineplex.core.titles.commands; +import java.util.List; +import java.util.stream.Collectors; + +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import mineplex.core.command.CommandBase; @@ -14,7 +18,7 @@ public class GiveTrackCommand extends CommandBase { public GiveTrackCommand(TrackManager plugin) { - super(plugin, Rank.ADMIN, "givetrack"); + super(plugin, Rank.ADMIN, "givetrack" ); } @Override @@ -33,16 +37,43 @@ public class GiveTrackCommand extends CommandBase if (trackObj == null) { - UtilPlayer.message(caller, F.main(Plugin.getName(), "That is not a track")); + UtilPlayer.message(caller, F.main(Plugin.getName(), "That is not a track" )); return; } if (!(trackObj instanceof ItemizedTrack)) { - UtilPlayer.message(caller, F.main(Plugin.getName(), "That is not an unlockable track")); + UtilPlayer.message(caller, F.main(Plugin.getName(), "That is not an unlockable track" )); return; } - Plugin.unlockTrack(caller, player, track); + Plugin.unlockTrack(player, track, result -> { + switch (result) + { + case PLAYER_NOT_FOUND: + UtilPlayer.message(caller, F.main(Plugin.getName(), "That player has never joined Mineplex!")); + break; + case UNKNOWN_ERROR: + UtilPlayer.message(caller, F.main(Plugin.getName(), "Oops. Something has gone wrong while giving " + F.elem(player) + " the track " + F.elem(track) + "!")); + break; + case SUCCESS: + UtilPlayer.message(caller, F.main(Plugin.getName(), "Successfully gave " + F.elem(player) + " the track " + F.elem(track) + "!")); + break; + } + }); + } + + @Override + public List onTabComplete(CommandSender sender, String commandLabel, String[] args) + { + if (args.length == 1) + { + return tabCompletePlayerNames(sender, args); + } + if (args.length == 2) + { + return getMatches(args[1], Plugin.getAllTracks().stream().filter(track -> track instanceof ItemizedTrack).map(Track::getId).collect(Collectors.toList())); + } + return null; } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/commands/TrackCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/commands/TrackCommand.java index 0617028ff..f17dc9574 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/commands/TrackCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/commands/TrackCommand.java @@ -1,5 +1,8 @@ package mineplex.core.titles.commands; +import java.util.List; + +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import mineplex.core.Managers; @@ -10,6 +13,7 @@ import mineplex.core.common.Rank; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilPlayer; import mineplex.core.titles.Titles; +import mineplex.core.titles.tracks.ItemizedTrack; import mineplex.core.titles.tracks.Track; import mineplex.core.titles.tracks.TrackManager; @@ -52,4 +56,17 @@ public class TrackCommand extends CommandBase } Plugin.setOrToggleTrackForPlayer(caller, track, args.length > 1); } + + @Override + public List onTabComplete(CommandSender sender, String commandLabel, String[] args) + { + if (args.length == 1) + { + if (sender instanceof Player) + { + return getMatches(args[0], _trackManager.getAllTracks().stream().filter(track -> track.getRequirements().getTier((Player) sender) != null).map(Track::getId)); + } + } + return null; + } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/ItemizedTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/ItemizedTrack.java index d07f639c0..87086d516 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/ItemizedTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/ItemizedTrack.java @@ -14,16 +14,19 @@ public class ItemizedTrack extends Track public ItemizedTrack(String trackId, String shortName, String description, boolean hideIfUnowned) { super(trackId, shortName, description, hideIfUnowned); + special(); } public ItemizedTrack(String trackId, ChatColor color, String shortName, String longName, String description) { super(trackId, color, shortName, longName, description); + special(); } public ItemizedTrack(String trackId, ChatColor color, String shortName, String longName, String description, boolean hideIfUnowned) { super(trackId, color, shortName, longName, description, hideIfUnowned); + special(); } public boolean owns(Player player) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/Track.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/Track.java index 225733a00..bb436bd21 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/Track.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/Track.java @@ -50,7 +50,7 @@ public class Track implements Listener { // Book limits Validate.isTrue(shortName.length() <= 16, "Short name cannot be longer than 16 characters"); - Validate.isTrue(trackId.length() <= 16, "ID cannot be longer than 16 characters"); + Validate.isTrue(trackId.length() <= 32, "ID cannot be longer than 32 characters"); this._id = trackId; this._shortName = shortName; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java index b2d97095c..d7dcb541c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java @@ -5,20 +5,17 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.function.Consumer; + +import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import mineplex.core.MiniPlugin; import mineplex.core.ReflectivelyCreateMiniPlugin; -import mineplex.core.account.CoreClient; import mineplex.core.account.CoreClientManager; -import mineplex.core.common.currency.GlobalCurrency; import mineplex.core.common.util.Callback; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.donation.DonationManager; -import mineplex.core.inventory.ClientItem; import mineplex.core.inventory.InventoryManager; import mineplex.core.titles.commands.GiveTrackCommand; import mineplex.core.titles.tracks.award.Bridges2017Track; @@ -28,6 +25,7 @@ import mineplex.core.titles.tracks.custom.HappyGaryTrack; import mineplex.core.titles.tracks.custom.LeaderTrack; import mineplex.core.titles.tracks.custom.SnekTrack; import mineplex.core.titles.tracks.custom.TableFlipTrack; +import mineplex.core.titles.tracks.custom.TrackBuilder; import mineplex.core.titles.tracks.custom.WizardTrack; import mineplex.core.titles.tracks.standard.GemCollectorTrack; import mineplex.core.titles.tracks.standard.HolidayCheerTrack; @@ -82,6 +80,57 @@ public class TrackManager extends MiniPlugin // Awarded tracks registerTrack(new Bridges2017Track()); + + // Custom tracks + registerTrack(track("lenny", "Lenny", "( ͡° ͜ʖ ͡°)")); + registerTrack(track("lenny-disgusted", "Disgusted Lenny", "( ͡ಠ ʖ̯ ͡ಠ)")); + registerTrack(track("lenny-winking", "Winking Lenny", "( ͡~ ͜ʖ ͡°)")); + registerTrack(track("ayyye", "Ayyye", "(づ ̄ ³ ̄)づ")); + registerTrack(track("ameno", "Ameno", "༼ つ ◕_◕ ༽つ Gib me gems")); +// registerTrack(track("unknown", "Unknown", "(☞゚ヮ゚)☞")); + registerTrack(track("shrug", "Shrug", "¯\\_(ツ)_/¯")); + registerTrack(track("tableflip", "Tableflip", "(╯°□°)╯︵ ┻━┻")); + registerTrack(track("tablerespecter", "Table Respecter", "┬─┬ノ(ಠ_ಠノ)\n")); + registerTrack(track("tableflip-disgusted", "Disgusted Flip", "Disgusted Tableflip", "(╯ಠ_ಠ)╯︵ ┳━┳")); + registerTrack(track("tableflip-donger", "Donger Flip", "ヽ༼ຈل͜ຈ༽ノ︵┻━┻")); + registerTrack(track("tableflip-enraged", "Enraged Flip", "(ノಠдಠ)ノ︵┻━┻")); + registerTrack(track("tableflip-riot", "Rioting Flip", "(┛◉Д◉)┛彡┻━┻")); + registerTrack(track("magician", "Magician", "(ノ◕ヮ◕)ノ*:・゚✧")); + registerTrack(track("teddy-bear", "Teddy Bear", "ʕ•ᴥ•ʔ")); + registerTrack(track("disgust", "Disgust", "ಠ_ಠ")); + registerTrack(track("old-man", "Old Man", "໒( •̀ ╭ ͟ʖ╮ •́ )७")); + registerTrack(track("jake", "Jake", "(❍ᴥ❍ʋ)")); + registerTrack(track("finn", "Finn", "| (• ◡•)|")); + registerTrack(track("finn-and-jake", "Finn 'n Jake", "| (• ◡•)| (❍ᴥ❍ʋ)")); + registerTrack(track("boxer", "Boxer", "(ง'̀-'́)ง")); + registerTrack(track0("zoidberg", "Zoidberg", "Why not?", "(\\/) (°,,°) (\\/)")); + registerTrack(track("crying", "Crying", "(ಥ﹏ಥ)")); +// registerTrack(track("unknown", "Unknown", "(◕‿◕✿)")); + registerTrack(track("fireball", "Fireball", "༼つಠ益ಠ༽つ ─=≡ΣO))")); + registerTrack(track("stardust", "Stardust", "(つ◕౪◕)つ━☆゚.*・。゚")); + registerTrack(track("magic-whistle", "Magic Whistle", "( °-°)シ ミ★ ミ☆\n")); + registerTrack(track("blow-a-kiss", "Blowing a Kiss", "♡(´ε` )")); + registerTrack(track("pewpewpew", "PEWPEWPEW", "(☞^o^)☞")); + registerTrack(track("pewpew", "pew pew", "(☞゚ヮ゚)☞")); + registerTrack(track("cool-guy", "Cool Guy", "(⌐■_■)")); +// registerTrack(track("unknown", "Unknown", "(ง •̀ω•́)ง✧")); +// registerTrack(track("unknown", "Unknown", "(╯⊙ ⊱ ⊙╰ )")); + registerTrack(track("party-time", "Party Time", "♪~ ᕕ(ᐛ)ᕗ")); + registerTrack(track1("whats-a-liter", "What's a Liter?", "also wats a leader")); + + registerTrack(animatedTrack("deal-with-it", "Deal With It", "(⌐■_■)", "( •_•);( •_•)>⌐■-■;(⌐■_■);( •_•)>⌐■-■", 5)); + registerTrack(animatedTrack("this-guy", "This Guy", "(☞゚ヮ゚)☞", "(☞゚ヮ゚)☞;☜(゚ヮ゚☜)", 5)); + registerTrack(animatedTrack("lalala", "La La La", "♪┏(・o・) ┛", "♪┏(・o・) ┛;♪┗ ( ・o・) ┓♪;┏ ( ・o・) ┛♪;┗ (・o・ ) ┓♪;┏(・o・)┛♪", 1)); + registerTrack(animatedTrack("gotta-go", "Gotta Go", "┬┴┬┴┤(・_├┬┴┬┴", "┬┴┬┴┤(・_├┬┴┬┴;┬┴┬┴┤ (・├┬┴┬┴;┬┴┬┴┤ (├┬┴┬┴;┬┴┬┴┤ (・├┬┴┬┴", 5)); +// registerTrack(animatedTrack("unknown", "Unknown", "(o°▽°)o", "(o°▽°)o;(o_△_)o;(o°▽°)o", 5)); + registerTrack(animatedTrack("rolling-around", "Rolling Around", "(゚‐゚)", "(.-.);(:I );(゚‐゚);( I:)", 1)); +// registerTrack(animatedTrack("unknown", "Unknown", "('ω')", "('ω');( ε: );(.ω.);( :3 );('ω');( ε: );(.ω.);( :3 )", 5)); + registerTrack(animatedTrack("whee", "Whee", "(゚ー゚)", "(゚ー゚);( ゚ー);( ゚);(  );(゚ );(ー゚ );(゚ー゚)", 1)); + registerTrack(animatedTrack("lets-spin", "Let's Spin", "I Say, Let's Spin", "(・ω・)", "( ・ω);( ・);( );(・ );(ω・ );(・ω・)", 1)); +// registerTrack(animatedTrack("unknown", "Unknown", "(^∀^)", "(^∀^);( ^∀);( ^);(  );(^ );(∀^ );(^∀^)", 5)); + registerTrack(animatedTrack("whaaat", "Whaaaaaat?", "(°o°)", "(°o°);(°o。);(。o。);(。o°);(°o°);(°o。);(。o。);(。o°)", 5)); + registerTrack(animatedTrack("spinning", "Spinning", "(゚◇゚)", "(゚◇゚);( ゚◇);( ゚);(  );(゚ );(◇゚ );(゚◇", 5)); +// registerTrack(animatedTrack("unknown", "Unknown", "(・∇・)", "(・∇・);( ・∇);( ・);(  );(・ );(∇・ );(・∇・)", 5)); } @Override @@ -90,9 +139,10 @@ public class TrackManager extends MiniPlugin addCommand(new GiveTrackCommand(this)); } - private void registerTrack(Track track) { + if (_trackById.containsKey(track.getId())) + throw new IllegalArgumentException("Duplicate id: " + track.getId()); _registeredTracks.put(track.getClass(), track); _trackById.put(track.getId(), track); } @@ -109,16 +159,22 @@ public class TrackManager extends MiniPlugin public final List getAllTracks() { - return new ArrayList<>(_registeredTracks.values()); + return new ArrayList<>(_trackById.values()); } - public void unlockTrack(Player caller, String player, String track) + public void unlockTrack(String player, String track) + { + unlockTrack(player, track, null); + } + + public void unlockTrack(String player, String track, Consumer consumer) { _coreClientManager.getOrLoadClient(player, client -> { if (client == null) { - UtilPlayer.message(caller, F.main(getName(), "That player has never joined Mineplex!")); + if (consumer != null) + consumer.accept(TrackGiveResult.PLAYER_NOT_FOUND); return; } @@ -128,11 +184,13 @@ public class TrackManager extends MiniPlugin { if (success) { - UtilPlayer.message(caller, F.main(getName(), "Successfully gave " + F.elem(player) + " the track " + F.elem(track) + "!")); + if (consumer != null) + consumer.accept(TrackGiveResult.SUCCESS); } else { - UtilPlayer.message(caller, F.main(getName(), "Oops. Something has gone wrong while giving " + F.elem(player) + " the track " + F.elem(track) + "!")); + if (consumer != null) + consumer.accept(TrackGiveResult.UNKNOWN_ERROR); } }; @@ -149,4 +207,86 @@ public class TrackManager extends MiniPlugin }); }); } + + public enum TrackGiveResult + { + PLAYER_NOT_FOUND, + UNKNOWN_ERROR, + SUCCESS + } + + // Begin helper methods + private ItemizedTrack animatedTrack(String id, String name, String desc, String frames, int ticks) + { + return TrackBuilder.builder(id) + .withShortName(name) + .withDescription(desc) + .setFrames(frames.split(";")) + .setTicks(ticks) + .withColor(ChatColor.GOLD) + .setHideIfUnowned(true) + .build(); + } + + private ItemizedTrack animatedTrack(String id, String name, String longName, String desc, String frames, int ticks) + { + return TrackBuilder.builder(id) + .withShortName(name) + .withLongName(longName) + .withDescription(desc) + .setFrames(frames.split(";")) + .setTicks(ticks) + .withColor(ChatColor.GOLD) + .setHideIfUnowned(true) + .build(); + } + + private ItemizedTrack track(String id, String name, String tierName) + { + return TrackBuilder.builder(id) + .withShortName(name) + .withDescription(tierName) + .setTierName(tierName) + .withColor(ChatColor.GOLD) + .setTierColor(ChatColor.GOLD) + .setHideIfUnowned(true) + .build(); + } + + private ItemizedTrack track0(String id, String shortName, String desc, String tierName) + { + return TrackBuilder.builder(id) + .withShortName(shortName) + .withDescription(desc) + .setTierName(tierName) + .withColor(ChatColor.GOLD) + .setTierColor(ChatColor.GOLD) + .setHideIfUnowned(true) + .build(); + } + + private ItemizedTrack track1(String id, String name, String desc) + { + return TrackBuilder.builder(id) + .withShortName(name) + .withDescription(desc) + .setTierName(name) + .withColor(ChatColor.GOLD) + .setTierColor(ChatColor.GOLD) + .setHideIfUnowned(true) + .build(); + } + + private ItemizedTrack track(String id, String shortName, String longName, String tierName) + { + return TrackBuilder.builder(id) + .withShortName(shortName) + .withLongName(longName) + .withDescription(tierName) + .setTierName(tierName) + .withColor(ChatColor.GOLD) + .setTierColor(ChatColor.GOLD) + .setHideIfUnowned(true) + .build(); + } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/award/Bridges2017Track.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/award/Bridges2017Track.java index 03e686d86..90bb2fee3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/award/Bridges2017Track.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/award/Bridges2017Track.java @@ -11,7 +11,7 @@ public class Bridges2017Track extends ItemizedTrack public Bridges2017Track() { super( - "botb2017", + "tournament-br-2017", ChatColor.GOLD, "BotB 2017", "2017 Bridges Champion", diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/TableFlipTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/TableFlipTrack.java index 0ace62597..8ea5f3590 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/TableFlipTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/TableFlipTrack.java @@ -15,7 +15,7 @@ public class TableFlipTrack extends Track public TableFlipTrack() { - super("tableflip", ChatColor.AQUA, "Tableflip", "Tableflip", "(╯°□°)╯ ︵ ┻━┻", true); + super("tableflipanim", ChatColor.AQUA, "Tableflip", "Tableflip", "(╯°□°)╯ ︵ ┻━┻", true); special(); getRequirements() .addTier(new TrackTier( diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/TrackBuilder.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/TrackBuilder.java new file mode 100644 index 000000000..1747b2c73 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/custom/TrackBuilder.java @@ -0,0 +1,173 @@ +package mineplex.core.titles.tracks.custom; + +import net.md_5.bungee.api.ChatColor; + +import org.apache.commons.lang3.Validate; + +import mineplex.core.titles.tracks.ItemizedTrack; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; + +public class TrackBuilder +{ + private String _id; + private String _shortName; + private String _longName; + private ChatColor _color; + private String _desc; + private boolean _hideIfUnowned; + + private String _tierName; + private String _tierDesc; + private ChatColor _tierColor; + private ChatColor _magicColor; + + private int _ticks; + private String[] _frames; + + private TrackBuilder(String id) + { + this._id = id; + } + + public TrackBuilder withShortName(String shortName) + { + Validate.notNull(shortName, "Short name cannot be null"); + this._shortName = shortName.length() > 16 ? shortName.substring(0, 16) : shortName; + return this; + } + + public TrackBuilder withLongName(String longName) + { + Validate.notNull(longName, "Long name cannot be null"); + this._longName = longName; + return this; + } + + public TrackBuilder withColor(ChatColor color) + { + Validate.notNull(color, "Color cannot be null"); + this._color = color; + return this; + } + + public TrackBuilder withDescription(String desc) + { + Validate.notNull(desc, "Description cannot be null"); + this._desc = desc; + return this; + } + + public TrackBuilder setHideIfUnowned(boolean hide) + { + this._hideIfUnowned = hide; + return this; + } + + public TrackBuilder setTierName(String tierName) + { + Validate.notNull(tierName, "Tier name cannot be null"); + this._tierName = tierName; + return this; + } + + public TrackBuilder setTierDesc(String tierDesc) + { + Validate.notNull(tierDesc, "Tier desc cannot be null"); + this._tierDesc = tierDesc; + return this; + } + + public TrackBuilder setTierColor(ChatColor tierColor) + { + Validate.notNull(tierColor, "Tier color cannot be null"); + this._tierColor = tierColor; + return this; + } + + public TrackBuilder setTierMagicColor(ChatColor magicColor) + { + Validate.notNull(magicColor, "Magic color cannot be null"); + this._magicColor = magicColor; + return this; + } + + public TrackBuilder setFrames(String... frames) + { + Validate.notNull(frames, "Frames cannot be null"); + if (frames.length == 0) + return this; + this._frames = frames; + return this; + } + + public TrackBuilder setTicks(int ticks) + { + this._ticks = ticks; + return this; + } + + public T build() + { + Validate.notNull(_id, "ID cannot be null"); + Validate.notNull(_color, "Color cannot be null"); + Validate.notNull(_shortName, "Short name cannot be null"); + + if (_desc == null) + _desc = _shortName; + if (_longName == null) + _longName = _shortName; + if (_tierColor == null) + _tierColor = _color; + if (_tierName == null) + _tierName = _shortName; + if (_tierDesc == null) + _tierDesc = _desc; + + if (_frames == null) + { + return (T) new ItemizedTrack(_id, _color, _shortName, _longName, _desc, _hideIfUnowned) + { + ItemizedTrack init() + { + getRequirements() + .addTier(new TrackTier( + _tierName, + _tierDesc, + this::owns, + new TrackFormat(_tierColor, _magicColor) + )); + return this; + } + }.init(); + } + else + { + Validate.isTrue(_ticks >= 1, "Ticks must be >= 1"); + + return (T) new ItemizedTrack(_id, _color, _shortName, _longName, _desc, _hideIfUnowned) + { + ItemizedTrack init() + { + getRequirements() + .addTier(new TrackTier( + _tierName, + _tierDesc, + this::owns, + new TrackFormat(_tierColor, _magicColor) + .animated(_ticks, _frames) + )); + return this; + } + }.init(); + } + } + + public static TrackBuilder builder(String id) + { + Validate.notNull(id, "ID cannot be null"); + Validate.isTrue(id.length() <= 32, "ID must not be longer than 32 characters"); + return new TrackBuilder(id); + } +} From 94009cd6523c6a1272333e002b698b981fb9852e Mon Sep 17 00:00:00 2001 From: samczsun Date: Wed, 15 Mar 2017 17:50:32 -0400 Subject: [PATCH 040/133] Final changes --- .../src/mineplex/core/titles/Titles.java | 17 ++------------ .../core/titles/tracks/TrackManager.java | 22 +++++++++---------- 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/Titles.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/Titles.java index 2fae8a0ea..c0e221b42 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/Titles.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/Titles.java @@ -3,6 +3,7 @@ package mineplex.core.titles; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Arrays; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -302,21 +303,7 @@ public class Titles extends MiniDbClientPlugin implements IPacketHand tracks.removeIf(track -> track.getRequirements().getTier(player) == null && track.hideIfUnowned()); - tracks.sort((a, b) -> - { - if (a.hideIfUnowned() && !b.hideIfUnowned()) - { - return -1; - } - else if (!a.hideIfUnowned() && b.hideIfUnowned()) - { - return 1; - } - else - { - return a.getShortName().compareTo(b.getShortName()); - } - }); + tracks.sort(Comparator.comparing(Track::getShortName)); String bookTitle = C.cGreen + "Titles"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java index d7dcb541c..97583b192 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java @@ -82,17 +82,17 @@ public class TrackManager extends MiniPlugin registerTrack(new Bridges2017Track()); // Custom tracks - registerTrack(track("lenny", "Lenny", "( ͡° ͜ʖ ͡°)")); - registerTrack(track("lenny-disgusted", "Disgusted Lenny", "( ͡ಠ ʖ̯ ͡ಠ)")); - registerTrack(track("lenny-winking", "Winking Lenny", "( ͡~ ͜ʖ ͡°)")); +// registerTrack(track("lenny", "Lenny", "( ͡° ͜ʖ ͡°)")); +// registerTrack(track("lenny-disgusted", "Disgusted Lenny", "( ͡ಠ ʖ̯ ͡ಠ)")); +// registerTrack(track("lenny-winking", "Winking Lenny", "( ͡~ ͜ʖ ͡°)")); registerTrack(track("ayyye", "Ayyye", "(づ ̄ ³ ̄)づ")); registerTrack(track("ameno", "Ameno", "༼ つ ◕_◕ ༽つ Gib me gems")); // registerTrack(track("unknown", "Unknown", "(☞゚ヮ゚)☞")); registerTrack(track("shrug", "Shrug", "¯\\_(ツ)_/¯")); registerTrack(track("tableflip", "Tableflip", "(╯°□°)╯︵ ┻━┻")); - registerTrack(track("tablerespecter", "Table Respecter", "┬─┬ノ(ಠ_ಠノ)\n")); + registerTrack(track("tablerespecter", "Table Respecter", "┬─┬ノ(ಠ_ಠノ)")); registerTrack(track("tableflip-disgusted", "Disgusted Flip", "Disgusted Tableflip", "(╯ಠ_ಠ)╯︵ ┳━┳")); - registerTrack(track("tableflip-donger", "Donger Flip", "ヽ༼ຈل͜ຈ༽ノ︵┻━┻")); +// registerTrack(track("tableflip-donger", "Donger Flip", "ヽ༼ຈل͜ຈ༽ノ︵┻━┻")); registerTrack(track("tableflip-enraged", "Enraged Flip", "(ノಠдಠ)ノ︵┻━┻")); registerTrack(track("tableflip-riot", "Rioting Flip", "(┛◉Д◉)┛彡┻━┻")); registerTrack(track("magician", "Magician", "(ノ◕ヮ◕)ノ*:・゚✧")); @@ -108,10 +108,10 @@ public class TrackManager extends MiniPlugin // registerTrack(track("unknown", "Unknown", "(◕‿◕✿)")); registerTrack(track("fireball", "Fireball", "༼つಠ益ಠ༽つ ─=≡ΣO))")); registerTrack(track("stardust", "Stardust", "(つ◕౪◕)つ━☆゚.*・。゚")); - registerTrack(track("magic-whistle", "Magic Whistle", "( °-°)シ ミ★ ミ☆\n")); + registerTrack(track("magic-whistle", "Magic Whistle", "( °-°)シ ミ★ ミ☆")); registerTrack(track("blow-a-kiss", "Blowing a Kiss", "♡(´ε` )")); registerTrack(track("pewpewpew", "PEWPEWPEW", "(☞^o^)☞")); - registerTrack(track("pewpew", "pew pew", "(☞゚ヮ゚)☞")); +// registerTrack(track("pewpew", "pew pew", "(☞゚ヮ゚)☞")); registerTrack(track("cool-guy", "Cool Guy", "(⌐■_■)")); // registerTrack(track("unknown", "Unknown", "(ง •̀ω•́)ง✧")); // registerTrack(track("unknown", "Unknown", "(╯⊙ ⊱ ⊙╰ )")); @@ -123,13 +123,13 @@ public class TrackManager extends MiniPlugin registerTrack(animatedTrack("lalala", "La La La", "♪┏(・o・) ┛", "♪┏(・o・) ┛;♪┗ ( ・o・) ┓♪;┏ ( ・o・) ┛♪;┗ (・o・ ) ┓♪;┏(・o・)┛♪", 1)); registerTrack(animatedTrack("gotta-go", "Gotta Go", "┬┴┬┴┤(・_├┬┴┬┴", "┬┴┬┴┤(・_├┬┴┬┴;┬┴┬┴┤ (・├┬┴┬┴;┬┴┬┴┤ (├┬┴┬┴;┬┴┬┴┤ (・├┬┴┬┴", 5)); // registerTrack(animatedTrack("unknown", "Unknown", "(o°▽°)o", "(o°▽°)o;(o_△_)o;(o°▽°)o", 5)); - registerTrack(animatedTrack("rolling-around", "Rolling Around", "(゚‐゚)", "(.-.);(:I );(゚‐゚);( I:)", 1)); + registerTrack(animatedTrack("rolling-around", "Rolling Around", "(゚‐゚)", "(.-.);(:I );(゚‐゚);( I:)", 4)); // registerTrack(animatedTrack("unknown", "Unknown", "('ω')", "('ω');( ε: );(.ω.);( :3 );('ω');( ε: );(.ω.);( :3 )", 5)); - registerTrack(animatedTrack("whee", "Whee", "(゚ー゚)", "(゚ー゚);( ゚ー);( ゚);(  );(゚ );(ー゚ );(゚ー゚)", 1)); - registerTrack(animatedTrack("lets-spin", "Let's Spin", "I Say, Let's Spin", "(・ω・)", "( ・ω);( ・);( );(・ );(ω・ );(・ω・)", 1)); +// registerTrack(animatedTrack("whee", "Whee", "(゚ー゚)", "(゚ー゚);( ゚ー);( ゚);(  );(゚ );(ー゚ );(゚ー゚)", 1)); +// registerTrack(animatedTrack("lets-spin", "Let's Spin", "I Say, Let's Spin", "(・ω・)", "( ・ω);( ・);( );(・ );(ω・ );(・ω・)", 1)); // registerTrack(animatedTrack("unknown", "Unknown", "(^∀^)", "(^∀^);( ^∀);( ^);(  );(^ );(∀^ );(^∀^)", 5)); registerTrack(animatedTrack("whaaat", "Whaaaaaat?", "(°o°)", "(°o°);(°o。);(。o。);(。o°);(°o°);(°o。);(。o。);(。o°)", 5)); - registerTrack(animatedTrack("spinning", "Spinning", "(゚◇゚)", "(゚◇゚);( ゚◇);( ゚);(  );(゚ );(◇゚ );(゚◇", 5)); +// registerTrack(animatedTrack("spinning", "Spinning", "(゚◇゚)", "(゚◇゚);( ゚◇);( ゚);(  );(゚ );(◇゚ );(゚◇", 5)); // registerTrack(animatedTrack("unknown", "Unknown", "(・∇・)", "(・∇・);( ・∇);( ・);(  );(・ );(∇・ );(・∇・)", 5)); } From 78b6846cf672783f82b01f1e80dfee0128e44935 Mon Sep 17 00:00:00 2001 From: cnr Date: Thu, 16 Mar 2017 00:14:02 -0500 Subject: [PATCH 041/133] Add Titles to chests --- .../mineplex/core/reward/RewardManager.java | 74 ++++++++++++++++++- .../core/reward/rewards/TitleReward.java | 49 ++++++++++++ .../core/titles/tracks/TrackManager.java | 14 +++- 3 files changed, 134 insertions(+), 3 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/reward/rewards/TitleReward.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java index e715b36bf..855d747d7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java @@ -9,6 +9,7 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import mineplex.core.Managers; import mineplex.core.account.CoreClientManager; import mineplex.core.common.Rank; import mineplex.core.common.util.banner.CountryFlag; @@ -163,9 +164,11 @@ import mineplex.core.reward.rewards.PowerPlayReward; import mineplex.core.reward.rewards.RankReward; import mineplex.core.reward.rewards.RuneAmplifierReward; import mineplex.core.reward.rewards.SpinTicketReward; +import mineplex.core.reward.rewards.TitleReward; import mineplex.core.reward.rewards.TreasureShardReward; import mineplex.core.reward.rewards.UnknownPackageReward; import mineplex.core.stats.StatsManager; +import mineplex.core.titles.tracks.TrackManager; import mineplex.core.treasure.TreasureType; public class RewardManager @@ -173,6 +176,7 @@ public class RewardManager private EnumMap _rewardPools; private Random _random; + private final TrackManager _trackManager = Managers.require(TrackManager.class); private CoreClientManager _clientManager; private DonationManager _donationManager; private InventoryManager _inventoryManager; @@ -419,7 +423,38 @@ public class RewardManager addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.Desert_Eagle_Golden_Gun, rarity, 30, 2500); addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.P90_Asiimov, rarity, 100, 1000); addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.SG553_Pulse, rarity, 100, 1000); - + + // Titles + + addTitle(Type.NORMAL, "shrug", rarity, 10, 500); + addTitle(Type.NORMAL, "tableflip", rarity, 10, 500); + addTitle(Type.NORMAL, "tablerespecter", rarity, 15, 500); + addTitle(Type.NORMAL, "tableflip-disgusted", rarity, 15, 500); + addTitle(Type.NORMAL, "tableflip-enraged", rarity, 15, 500); + addTitle(Type.NORMAL, "tableflip-riot", rarity, 10, 500); + addTitle(Type.NORMAL, "teddy-bear", rarity, 10, 500); + addTitle(Type.NORMAL, "disgust", rarity, 10, 500); + addTitle(Type.NORMAL, "old-man", rarity, 5, 500); + addTitle(Type.NORMAL, "jake", rarity, 5, 500); + addTitle(Type.NORMAL, "finn", rarity, 5, 500); + addTitle(Type.NORMAL, "finn-and-jake", rarity, 5, 500); + addTitle(Type.NORMAL, "boxer", rarity, 5, 500); + addTitle(Type.NORMAL, "zoidberg", rarity, 5, 500); + + addTitle(Type.OMEGA, "shrug", rarity, 10, 500); + addTitle(Type.OMEGA, "tableflip", rarity, 10, 500); + addTitle(Type.OMEGA, "tablerespecter", rarity, 15, 500); + addTitle(Type.OMEGA, "tableflip-disgusted", rarity, 15, 500); + addTitle(Type.OMEGA, "tableflip-enraged", rarity, 15, 500); + addTitle(Type.OMEGA, "tableflip-riot", rarity, 10, 500); + addTitle(Type.OMEGA, "teddy-bear", rarity, 10, 500); + addTitle(Type.OMEGA, "disgust", rarity, 10, 500); + addTitle(Type.OMEGA, "old-man", rarity, 5, 500); + addTitle(Type.OMEGA, "jake", rarity, 5, 500); + addTitle(Type.OMEGA, "finn", rarity, 5, 500); + addTitle(Type.OMEGA, "finn-and-jake", rarity, 5, 500); + addTitle(Type.OMEGA, "boxer", rarity, 5, 500); + addTitle(Type.OMEGA, "zoidberg", rarity, 5, 500); // VALENTINES //Hats @@ -635,6 +670,38 @@ public class RewardManager addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.XM1014_Pig_Gun, rarity, 10, 7500); addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.M4A4_Enderman, rarity, 10, 7500); + // Titles + + addTitle(Type.NORMAL, "ayyye", rarity, 25, 500); + addTitle(Type.NORMAL, "ameno", rarity, 15, 5000); + addTitle(Type.NORMAL, "magician", rarity, 25, 5000); + addTitle(Type.NORMAL, "fireball", rarity, 75, 5000); + addTitle(Type.NORMAL, "magic-missile", rarity, 75, 5000); + addTitle(Type.NORMAL, "pewpewpew", rarity, 75, 5000); + addTitle(Type.NORMAL, "stardust", rarity, 60, 5000); + addTitle(Type.NORMAL, "blow-a-kiss", rarity, 60, 5000); + addTitle(Type.NORMAL, "cool-guy", rarity, 60, 5000); + addTitle(Type.NORMAL, "deal-with-it", rarity, 60, 5000); + addTitle(Type.NORMAL, "party-time", rarity, 55, 5000); + addTitle(Type.NORMAL, "lalala", rarity, 30, 5000); + addTitle(Type.NORMAL, "gotta-go", rarity, 30, 5000); + addTitle(Type.NORMAL, "whaaat", rarity, 30, 5000); + + addTitle(Type.OMEGA, "ayyye", rarity, 25, 500); + addTitle(Type.OMEGA, "ameno", rarity, 15, 5000); + addTitle(Type.OMEGA, "magician", rarity, 25, 5000); + addTitle(Type.OMEGA, "fireball", rarity, 75, 5000); + addTitle(Type.OMEGA, "magic-missile", rarity, 75, 5000); + addTitle(Type.OMEGA, "pewpewpew", rarity, 75, 5000); + addTitle(Type.OMEGA, "stardust", rarity, 60, 5000); + addTitle(Type.OMEGA, "blow-a-kiss", rarity, 60, 5000); + addTitle(Type.OMEGA, "cool-guy", rarity, 60, 5000); + addTitle(Type.OMEGA, "deal-with-it", rarity, 60, 5000); + addTitle(Type.OMEGA, "party-time", rarity, 55, 5000); + addTitle(Type.OMEGA, "lalala", rarity, 30, 5000); + addTitle(Type.OMEGA, "gotta-go", rarity, 30, 5000); + addTitle(Type.OMEGA, "whaaat", rarity, 30, 5000); + //WINTER //Arrow Trails @@ -874,6 +941,11 @@ public class RewardManager return addGadget(type, gadget, gadget.getDisplayName() + " (Minestrike Weapon Skin)", rarity, weight, shards); } + public void addTitle(Type type, String trackName, RewardRarity rarity, int weight, int shards) + { + addReward(type, new TitleReward(_trackManager.getTrackById(trackName), rarity, weight, shards)); + } + public UnknownPackageReward addHat(Type type, HatType hatType, RewardRarity rarity, int weight) { return addHat(type, hatType, rarity, weight, getShards(rarity)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/rewards/TitleReward.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/rewards/TitleReward.java new file mode 100644 index 000000000..39b04375e --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/rewards/TitleReward.java @@ -0,0 +1,49 @@ +package mineplex.core.reward.rewards; + +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import mineplex.core.Managers; +import mineplex.core.reward.Reward; +import mineplex.core.reward.RewardData; +import mineplex.core.reward.RewardRarity; +import mineplex.core.reward.RewardType; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackManager; + +public class TitleReward extends Reward +{ + private final ItemStack ITEM_STACK = new ItemStack(Material.BOOK); + private final TrackManager _trackManager = Managers.require(TrackManager.class); + private final Track _track; + + public TitleReward(Track track, RewardRarity rarity, int weight, int shardValue) + { + super(rarity, weight, shardValue); + if (track == null) + { + throw new IllegalStateException(); + } + _track = track; + } + + @Override + protected RewardData giveRewardCustom(Player player, RewardType rewardType) + { + _trackManager.unlockTrack(player, _track); + return getFakeRewardData(player); + } + + @Override + public RewardData getFakeRewardData(Player player) + { + return new RewardData(getRarity().getDarkColor() + "Title", getRarity().getColor() + _track.getLongName(), ITEM_STACK, getRarity()); + } + + @Override + public boolean canGiveReward(Player player) + { + return !_trackManager.hasTrack(player, _track); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java index 97583b192..7aac0b6b0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java @@ -108,7 +108,7 @@ public class TrackManager extends MiniPlugin // registerTrack(track("unknown", "Unknown", "(◕‿◕✿)")); registerTrack(track("fireball", "Fireball", "༼つಠ益ಠ༽つ ─=≡ΣO))")); registerTrack(track("stardust", "Stardust", "(つ◕౪◕)つ━☆゚.*・。゚")); - registerTrack(track("magic-whistle", "Magic Whistle", "( °-°)シ ミ★ ミ☆")); + registerTrack(track("magic-missile", "Magic Missile", "( °-°)シ ミ★ ミ☆")); registerTrack(track("blow-a-kiss", "Blowing a Kiss", "♡(´ε` )")); registerTrack(track("pewpewpew", "PEWPEWPEW", "(☞^o^)☞")); // registerTrack(track("pewpew", "pew pew", "(☞゚ヮ゚)☞")); @@ -162,11 +162,21 @@ public class TrackManager extends MiniPlugin return new ArrayList<>(_trackById.values()); } - public void unlockTrack(String player, String track) + public boolean hasTrack(Player player, Track track) + { + return _inventoryManager.Get(player).getItemCount("track." + track.getId()) > 0; + } + + public void unlockTrack(Player player, Track track) { unlockTrack(player, track, null); } + public void unlockTrack(Player player, Track track, Consumer consumer) + { + unlockTrack(player.getName(), track.getId(), consumer); + } + public void unlockTrack(String player, String track, Consumer consumer) { _coreClientManager.getOrLoadClient(player, client -> From d64f50b98e37de8326836ecb9f0b40e67dae76d6 Mon Sep 17 00:00:00 2001 From: cnr Date: Thu, 16 Mar 2017 01:13:54 -0500 Subject: [PATCH 042/133] Don't combine require() and a method accessor --- .../mineplex/core/titles/tracks/standard/PowerPlayTrack.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PowerPlayTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PowerPlayTrack.java index 1badc6ce1..81fe01721 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PowerPlayTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/standard/PowerPlayTrack.java @@ -4,14 +4,13 @@ import net.md_5.bungee.api.ChatColor; import mineplex.core.Managers; import mineplex.core.bonuses.BonusManager; -import mineplex.core.powerplayclub.PowerPlayClubRepository; import mineplex.core.titles.tracks.Track; import mineplex.core.titles.tracks.TrackFormat; import mineplex.core.titles.tracks.TrackTier; public class PowerPlayTrack extends Track { - private final PowerPlayClubRepository _powerPlayClubRepository = Managers.require(BonusManager.class).getPowerPlayClubRepository(); + private final BonusManager _bonusManager = Managers.require(BonusManager.class); public PowerPlayTrack() { @@ -20,7 +19,7 @@ public class PowerPlayTrack extends Track .addTier(new TrackTier( "Power Play Club", null, - player -> _powerPlayClubRepository.getCachedData(player).isSubscribed() ? 1L : 0L, + player -> _bonusManager.getPowerPlayClubRepository().getCachedData(player).isSubscribed() ? 1L : 0L, 1, new TrackFormat(ChatColor.AQUA, ChatColor.AQUA) )); From e3974b92288053ea01423fd2d7fe2feea64f3fdf Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Thu, 16 Mar 2017 19:56:52 -0300 Subject: [PATCH 043/133] Fixed lores --- .../src/mineplex/core/cosmetic/ui/page/GadgetPage.java | 5 +++++ .../src/mineplex/core/cosmetic/ui/page/MountPage.java | 5 +++++ .../src/mineplex/core/cosmetic/ui/page/PetPage.java | 5 +++++ .../gadgets/outfit/stpatricks/OutfitStPatricksBoots.java | 2 +- .../outfit/stpatricks/OutfitStPatricksChestplate.java | 2 +- .../gadgets/outfit/stpatricks/OutfitStPatricksHat.java | 2 +- .../gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java | 2 +- .../mineplex/core/gadget/set/suits/SetStPatricksSuit.java | 2 +- .../src/mineplex/core/mount/types/MountStPatricksHorse.java | 4 ++-- .../src/mineplex/core/treasure/gui/TreasurePage.java | 2 +- 10 files changed, 23 insertions(+), 8 deletions(-) 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 d6dd97153..713429dc6 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 @@ -175,6 +175,11 @@ public class GadgetPage extends ShopPageBase itemLore.add(C.cBlack); itemLore.add(C.cBlue + "Found in Love Chests"); } + else if (gadget.getCost(GlobalCurrency.TREASURE_SHARD) == -18) + { + itemLore.add(C.cBlack); + itemLore.add(C.cBlue + "Found in St Patrick's Chests"); + } //Rank Unlocks else if (gadget.getCost(GlobalCurrency.TREASURE_SHARD) == -10) 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 990d2905b..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 @@ -113,6 +113,11 @@ public class MountPage extends ShopPageBase itemLore.add(C.cBlack); itemLore.add(C.cBlue + "Found in Thankful Treasure"); } + else if (mount.getCost(GlobalCurrency.TREASURE_SHARD) == -18) + { + itemLore.add(C.cBlack); + itemLore.add(C.cBlue + "Found in St Patrick's Chests"); + } else if (mount.getCost(GlobalCurrency.TREASURE_SHARD) == -14) { itemLore.add(C.cBlack); 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 4feb82934..f7b831eca 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 @@ -113,6 +113,11 @@ public class PetPage extends ShopPageBase itemLore.add(C.cBlack); itemLore.add(C.cBlue + "Found in Haunted Chests"); } + else if (pet.getPrice() == -18) + { + itemLore.add(C.cBlack); + itemLore.add(C.cBlue + "Found in St Patrick's Chests"); + } else if (pet.getPrice() == -14) { itemLore.add(C.cBlack); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksBoots.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksBoots.java index 27c01b350..411b87a74 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksBoots.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksBoots.java @@ -9,7 +9,7 @@ public class OutfitStPatricksBoots extends OutfitStPatricksSuit public OutfitStPatricksBoots(GadgetManager manager) { - super(manager, "St Patrick's Boots", -18, ArmorSlot.BOOTS, Material.LEATHER_BOOTS, (byte) 0); + super(manager, "Leprechaun's Boots", -18, ArmorSlot.BOOTS, Material.LEATHER_BOOTS, (byte) 0); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java index edc9f75f2..f7020af70 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java @@ -9,7 +9,7 @@ public class OutfitStPatricksChestplate extends OutfitStPatricksSuit public OutfitStPatricksChestplate(GadgetManager manager) { - super(manager, "St Patrick's Chest", -18, ArmorSlot.CHEST, Material.LEATHER_CHESTPLATE, (byte) 0); + super(manager, "Leprechaun's Chest", -18, ArmorSlot.CHEST, Material.LEATHER_CHESTPLATE, (byte) 0); } } \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java index f1b9a91a6..624e3b58b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java @@ -9,7 +9,7 @@ public class OutfitStPatricksHat extends OutfitStPatricksSuit public OutfitStPatricksHat(GadgetManager manager) { - super(manager, "St Patrick's Hat", -18, ArmorSlot.HELMET, Material.LEATHER_HELMET, (byte) 0); + super(manager, "Leprechaun's Hat", -18, ArmorSlot.HELMET, Material.LEATHER_HELMET, (byte) 0); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java index 6b80314fc..56261a534 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java @@ -9,7 +9,7 @@ public class OutfitStPatricksLeggings extends OutfitStPatricksSuit public OutfitStPatricksLeggings(GadgetManager manager) { - super(manager, "St Patrick's Pants", -18, ArmorSlot.LEGS, Material.LEATHER_LEGGINGS, (byte) 0); + super(manager, "Leprechaun's Pants", -18, ArmorSlot.LEGS, Material.LEATHER_LEGGINGS, (byte) 0); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/suits/SetStPatricksSuit.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/suits/SetStPatricksSuit.java index 1e04f08f9..2ae0e1ed7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/suits/SetStPatricksSuit.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/set/suits/SetStPatricksSuit.java @@ -12,7 +12,7 @@ public class SetStPatricksSuit extends GadgetSet public SetStPatricksSuit(GadgetManager manager) { - super(manager, "St Patrick's Suit", "Placeholder", + super(manager, "St Patrick's Suit", "You're so rich that gold falls out of your pocket with every step!", manager.getGadget(OutfitStPatricksHat.class), manager.getGadget(OutfitStPatricksChestplate.class), manager.getGadget(OutfitStPatricksLeggings.class), diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java index ad17c2f0d..2c20e68fe 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountStPatricksHorse.java @@ -35,9 +35,9 @@ public class MountStPatricksHorse extends HorseMount public MountStPatricksHorse(MountManager manager) { - super(manager, "St Patrick's Mount", + super(manager, "Rainbow Horse", UtilText.splitLinesToArray(new String[]{C.cGray + "You know the cow that jumped over the moon? Total show off."}, LineFormat.LORE), - Material.CAULDRON_ITEM, (byte) 0, -7, Horse.Color.WHITE, Horse.Style.WHITE, Horse.Variant.HORSE, 1, null); + Material.CAULDRON_ITEM, (byte) 0, -18, Horse.Color.WHITE, Horse.Style.WHITE, Horse.Variant.HORSE, 1, null); } @Override 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 0d55ba94e..ac82b4b25 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/gui/TreasurePage.java @@ -413,7 +413,7 @@ public class TreasurePage extends ShopPageBase stpatricksLore.add(" "); stpatricksLore.add(F.value("St Patrick's Chests Owned", "" + stpatricksCount)); stpatricksLore.add(" "); - stpatricksLore.addAll(UtilText.splitLines(new String[]{C.cGray + "Placeholder"}, LineFormat.LORE)); + stpatricksLore.addAll(UtilText.splitLines(new String[]{C.cGray + "Happy St. Patrick's Day! Get your Pot's of Gold and Luck of the Irish in this chest! 7 items, no duplicates."}, LineFormat.LORE)); stpatricksLore.add(" "); if (stpatricksCount > 0) { From 3303f89c02a826bbda34e804aa7ce7ff9cfd16bc Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Thu, 16 Mar 2017 20:07:10 -0300 Subject: [PATCH 044/133] Added St Patrick's Chest to titles trackers --- .../src/mineplex/core/titles/tracks/HolidayCheerTrack.java | 1 + .../src/mineplex/core/titles/tracks/LuckyTrack.java | 2 ++ .../src/mineplex/core/titles/tracks/TreasureHunterTrack.java | 1 + 3 files changed, 4 insertions(+) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HolidayCheerTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HolidayCheerTrack.java index 00c807f43..a1fe931a1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HolidayCheerTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/HolidayCheerTrack.java @@ -48,6 +48,7 @@ public class HolidayCheerTrack extends Track HOLIDAY_CHESTS.add(TreasureType.TRICK_OR_TREAT); HOLIDAY_CHESTS.add(TreasureType.GINGERBREAD); HOLIDAY_CHESTS.add(TreasureType.LOVE_CHEST); + HOLIDAY_CHESTS.add(TreasureType.ST_PATRICKS); HOLIDAY_SETS.add(SetFreedom.class); HOLIDAY_SETS.add(SetCupidsLove.class); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LuckyTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LuckyTrack.java index f839c01f6..5de1d686f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LuckyTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/LuckyTrack.java @@ -34,6 +34,8 @@ public class LuckyTrack extends Track MULTIPLIER.put(TreasureType.HAUNTED, 2); MULTIPLIER.put(TreasureType.CHRISTMAS, 2); MULTIPLIER.put(TreasureType.TRICK_OR_TREAT, 2); + MULTIPLIER.put(TreasureType.LOVE_CHEST, 2); + MULTIPLIER.put(TreasureType.ST_PATRICKS, 2); MULTIPLIER.put(TreasureType.OMEGA, 3); IRON.add(Material.IRON_SPADE); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TreasureHunterTrack.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TreasureHunterTrack.java index 861ef4dbe..ecaeef57d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TreasureHunterTrack.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TreasureHunterTrack.java @@ -27,6 +27,7 @@ public class TreasureHunterTrack extends Track POINTS.put(TreasureType.THANKFUL, 25); POINTS.put(TreasureType.GINGERBREAD, 25); POINTS.put(TreasureType.LOVE_CHEST, 25); + POINTS.put(TreasureType.ST_PATRICKS, 25); POINTS.put(TreasureType.OMEGA, 50); POINTS.put(TreasureType.MINESTRIKE, 3); } From 2070f7b347280079afb985db65ec01b2c14cf84a Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Thu, 16 Mar 2017 20:09:51 -0300 Subject: [PATCH 045/133] Fixed lore for taunts --- .../core/gadget/gadgets/taunts/BlowAKissTaunt.java | 2 +- .../mineplex/core/gadget/gadgets/taunts/RainbowTaunt.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 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 aa16f3bcc..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 @@ -25,7 +25,7 @@ public class BlowAKissTaunt extends TauntGadget public BlowAKissTaunt(GadgetManager manager) { super(manager, "Blow A Kiss", UtilText.splitLinesToArray(new String[]{ - C.cWhite + "Type /taunt in game to blow a kiss at your enemies.", + C.cWhite + "Use /taunt in game to blow a kiss at your enemies.", C.cRed + "Cannot be used while in PvP!"}, LineFormat.LORE), -17, Material.GLASS, (byte) 0); setDisplayItem(ItemStackFactory.Instance.createCustomPotion(PotionType.INSTANT_HEAL)); 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 2d9ed339d..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 @@ -22,7 +22,13 @@ public class RainbowTaunt extends TauntGadget public RainbowTaunt(GadgetManager manager) { - super(manager, "Rainbow Taunt", UtilText.splitLinesToArray(new String[]{C.cGray + "At the end of every Rainbow they say there is a pot of Gold.", C.cWhite + "Type /taunt in game to use this taunt."}, + super(manager, "Rainbow Taunt", UtilText.splitLinesToArray(new String[] + { + C.cGray + "At the end of every Rainbow they say there is a pot of Gold.", + "", + C.cWhite + "Use /taunt in game to use this taunt.", + C.cGreen + "Can be used while in PvP!" + }, LineFormat.LORE), -18, Material.WOOL, (byte) 11); setCanPlayWithPvp(false); setPvpCooldown(PVP_COOLDOWN); From e4cd809ce4e68af630a7e13565ff1a82a7d10b24 Mon Sep 17 00:00:00 2001 From: samczsun Date: Sat, 18 Feb 2017 13:10:00 -0500 Subject: [PATCH 046/133] Teamspeak integration --- .../mineplex/cache/player/PlayerCache.java | 4 +- .../playerdisguise/PlayerDisguiseManager.java | 141 +++--- .../gadget/gadgets/outfit/OutfitTeam.java | 2 +- .../core/teamspeak/TeamspeakClientInfo.java | 31 ++ .../core/teamspeak/TeamspeakManager.java | 429 ++++++++++++++++++ .../core/teamspeak/TeamspeakRepository.java | 57 +++ .../core/teamspeak/commands/LinkCommand.java | 29 ++ .../core/teamspeak/commands/ListCommand.java | 23 + .../teamspeak/commands/TeamspeakCommand.java | 25 + .../teamspeak/commands/UnlinkCommand.java | 29 ++ .../teamspeak/redis/TeamspeakLinkRequest.java | 27 ++ .../redis/TeamspeakLinkResponse.java | 42 ++ .../redis/TeamspeakUnlinkRequest.java | 27 ++ .../redis/TeamspeakUnlinkResponse.java | 33 ++ .../redis/TeamspeakUpdateRequest.java | 21 + .../Mineplex.Hub/src/mineplex/hub/Hub.java | 2 + .../redis/atomic/RedisStringRepository.java | 21 +- 17 files changed, 862 insertions(+), 81 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakClientInfo.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakRepository.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/LinkCommand.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/ListCommand.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/TeamspeakCommand.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/UnlinkCommand.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakLinkRequest.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakLinkResponse.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUnlinkRequest.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUnlinkResponse.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUpdateRequest.java diff --git a/Plugins/Mineplex.Cache/src/mineplex/cache/player/PlayerCache.java b/Plugins/Mineplex.Cache/src/mineplex/cache/player/PlayerCache.java index 2409e3be7..e269478b6 100644 --- a/Plugins/Mineplex.Cache/src/mineplex/cache/player/PlayerCache.java +++ b/Plugins/Mineplex.Cache/src/mineplex/cache/player/PlayerCache.java @@ -1,6 +1,7 @@ package mineplex.cache.player; import java.util.UUID; +import java.util.concurrent.TimeUnit; import mineplex.serverdata.Region; import mineplex.serverdata.redis.RedisDataRepository; @@ -32,7 +33,8 @@ public enum PlayerCache ServerManager.getMasterConnection(), ServerManager.getSlaveConnection(), Region.ALL, - "accountid" + "accountid", + (int) TimeUnit.HOURS.toSeconds(6) ); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseManager.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseManager.java index fd1b44c80..60729ef22 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseManager.java @@ -462,99 +462,92 @@ public class PlayerDisguiseManager extends MiniPlugin implements IPacketHandler if (!requestedUsername.equalsIgnoreCase(caller.getName())) { - Rank otherRank = Rank.ALL; - CoreClient other = new CoreClient(requestedUsername, requestedProfile.getId()); - try + getClientManager().getOrLoadClient(requestedUsername, other -> { - getClientManager().LoadClient(other, requestedProfile.getId(), caller.getAddress().getAddress().getHostAddress()); - otherRank = other.GetRank(); - } - catch (NullPointerException exception) - { - other = null; - } + Rank otherRank = other != null ? other.GetRank() : Rank.ALL; - if (otherRank.has(Rank.TWITCH)) - { - UtilPlayer.message(caller, F.main("Disguise", "You can't disguise as staff, YouTubers or Twitchers!")); - return; - } - - if (other != null) - { - PunishClient pclient = getPunishManager().GetClient(requestedUsername); - if (pclient != null && (pclient.IsBanned() || pclient.IsMuted())) + if (otherRank.has(Rank.TWITCH)) { - UtilPlayer.message(caller, F.main("Disguise", "You can't disguise as players who are banned/muted!")); + UtilPlayer.message(caller, F.main("Disguise", "You can't disguise as staff, YouTubers or Twitchers!")); return; } - } - callerClient.disguise(requestedUsername, requestedProfile.getId(), otherRank); - - _mapping.put(callerClient.getDisguisedAs().toLowerCase(), callerClient.getName()); - - System.out.println("================="); - System.out.println("Disguising " + caller.getName() + " as:"); - System.out.println(requestedProfile.getName() + " id " + requestedProfile.getId()); - System.out.println("Properties:"); - for (Map.Entry p : requestedProfile.getProperties().entries()) - { - System.out.println("\t" + p.getKey() + " " + p.getValue().getName()); - System.out.println("\t" + p.getValue().getValue()); - System.out.println("\t" + p.getValue().getSignature()); - } - System.out.println("================="); - - DisguisePlayer disguisePlayer = new DisguisePlayer(caller, requestedProfile); - disguisePlayer.showInTabList(true, 0); - allow(caller); - getDisguiseManager().disguise(disguisePlayer, () -> - { - GameProfile callerProfile = ((CraftPlayer) caller).getProfile(); - - require(ScoreboardManager.class).handlePlayerQuit(disguisePlayer.getOriginalProfile().getName()); - - try + if (other != null) { - UtilGameProfile.changeName(callerProfile, disguisePlayer.getProfile().getName()); - UtilGameProfile.changeId(callerProfile, disguisePlayer.getProfile().getId()); - - Field playersByName = PlayerList.class.getDeclaredField("playersByName"); - playersByName.setAccessible(true); - Map map = (Map) playersByName.get(MinecraftServer.getServer().getPlayerList()); - map.remove(disguisePlayer.getOriginalProfile().getName()); - map.put(disguisePlayer.getProfile().getName(), disguisePlayer.getEntity()); - } - catch (Throwable t) - { - t.printStackTrace(); + PunishClient pclient = getPunishManager().GetClient(requestedUsername); + if (pclient != null && (pclient.IsBanned() || pclient.IsMuted())) + { + UtilPlayer.message(caller, F.main("Disguise", "You can't disguise as players who are banned/muted!")); + return; + } } - require(ScoreboardManager.class).handlePlayerJoin(disguisePlayer.getName()); + callerClient.disguise(requestedUsername, requestedProfile.getId(), otherRank); - callerProfile.getProperties().clear(); - callerProfile.getProperties().putAll(disguisePlayer.getProfile().getProperties()); + _mapping.put(callerClient.getDisguisedAs().toLowerCase(), callerClient.getName()); - callerProfile.getProperties().removeAll(ORIGINAL_UUID_KEY); - callerProfile.getProperties().put(ORIGINAL_UUID_KEY, new Property(ORIGINAL_UUID_KEY, caller.getUniqueId().toString())); + System.out.println("================="); + System.out.println("Disguising " + caller.getName() + " as:"); + System.out.println(requestedProfile.getName() + " id " + requestedProfile.getId()); + System.out.println("Properties:"); + for (Map.Entry p : requestedProfile.getProperties().entries()) + { + System.out.println("\t" + p.getKey() + " " + p.getValue().getName()); + System.out.println("\t" + p.getValue().getValue()); + System.out.println("\t" + p.getValue().getSignature()); + } + System.out.println("================="); - require(FriendManager.class).updatePlayerStatus(disguisePlayer.getOriginalProfile().getId(), null); - require(FriendManager.class).updatePlayerStatus(disguisePlayer.getProfile().getId(), new PlayerStatus(disguisePlayer.getProfile().getId(), requestedUsername, _serverName)); + DisguisePlayer disguisePlayer = new DisguisePlayer(caller, requestedProfile); + disguisePlayer.showInTabList(true, 0); + allow(caller); + getDisguiseManager().disguise(disguisePlayer, () -> + { + GameProfile callerProfile = ((CraftPlayer) caller).getProfile(); - getPreferencesManager().handlePlayerJoin(caller, true); + require(ScoreboardManager.class).handlePlayerQuit(disguisePlayer.getOriginalProfile().getName()); - _disguises.put(caller.getUniqueId(), disguisePlayer); + try + { + UtilGameProfile.changeName(callerProfile, disguisePlayer.getProfile().getName()); + UtilGameProfile.changeId(callerProfile, disguisePlayer.getProfile().getId()); - UtilPlayer.message(caller, F.main("Disguise", "Disguise Active: " + ChatColor.RESET + requestedUsername)); + Field playersByName = PlayerList.class.getDeclaredField("playersByName"); + playersByName.setAccessible(true); + Map map = (Map) playersByName.get(MinecraftServer.getServer().getPlayerList()); + map.remove(disguisePlayer.getOriginalProfile().getName()); + map.put(disguisePlayer.getProfile().getName(), disguisePlayer.getEntity()); + } + catch (Throwable t) + { + t.printStackTrace(); + } - UtilServer.CallEvent(new PlayerDisguisedEvent(caller)); + require(ScoreboardManager.class).handlePlayerJoin(disguisePlayer.getName()); - storeDisguiseData(caller, requestedUsername, requestedProfile); + callerProfile.getProperties().clear(); + callerProfile.getProperties().putAll(disguisePlayer.getProfile().getProperties()); - _pendingDisguise.remove(requestedUsername.toLowerCase()); + callerProfile.getProperties().removeAll(ORIGINAL_UUID_KEY); + callerProfile.getProperties().put(ORIGINAL_UUID_KEY, new Property(ORIGINAL_UUID_KEY, caller.getUniqueId().toString())); - _cannotJoin.remove(requestedUsername.toLowerCase()); + require(FriendManager.class).updatePlayerStatus(disguisePlayer.getOriginalProfile().getId(), null); + require(FriendManager.class).updatePlayerStatus(disguisePlayer.getProfile().getId(), new PlayerStatus(disguisePlayer.getProfile().getId(), requestedUsername, _serverName)); + + getPreferencesManager().handlePlayerJoin(caller, true); + + _disguises.put(caller.getUniqueId(), disguisePlayer); + + UtilPlayer.message(caller, F.main("Disguise", "Disguise Active: " + ChatColor.RESET + requestedUsername)); + + UtilServer.CallEvent(new PlayerDisguisedEvent(caller)); + + storeDisguiseData(caller, requestedUsername, requestedProfile); + + _pendingDisguise.remove(requestedUsername.toLowerCase()); + + _cannotJoin.remove(requestedUsername.toLowerCase()); + }); }); } else diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/OutfitTeam.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/OutfitTeam.java index 0004420cd..bcda0800d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/OutfitTeam.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/OutfitTeam.java @@ -109,7 +109,7 @@ public class OutfitTeam extends OutfitGadget Player player = event.getPlayer(); - if (!event.getMessage().toLowerCase().startsWith("/team")) + if (!event.getMessage().toLowerCase().startsWith("/team ")) return; event.setCancelled(true); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakClientInfo.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakClientInfo.java new file mode 100644 index 000000000..95a8b483d --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakClientInfo.java @@ -0,0 +1,31 @@ +package mineplex.core.teamspeak; + +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class TeamspeakClientInfo +{ + private Map _linkedAccounts = new HashMap<>(); + + public TeamspeakClientInfo(Map linkedAccounts) + { + _linkedAccounts = new HashMap<>(linkedAccounts); + } + + public Map getLinkedAccounts() + { + return Collections.unmodifiableMap(_linkedAccounts); + } + + public void unlink(int account) + { + _linkedAccounts.remove(account); + } + + public void link(int id, Date now) + { + _linkedAccounts.put(id, now); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java new file mode 100644 index 000000000..17016e6a1 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java @@ -0,0 +1,429 @@ +package mineplex.core.teamspeak; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +import net.md_5.bungee.api.ChatColor; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.api.chat.ClickEvent; +import net.md_5.bungee.api.chat.ComponentBuilder; +import net.md_5.bungee.api.chat.HoverEvent; + +import org.apache.commons.lang.StringUtils; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.scheduler.BukkitTask; + +import com.google.common.primitives.Ints; + +import mineplex.core.MiniClientPlugin; +import mineplex.core.ReflectivelyCreateMiniPlugin; +import mineplex.core.account.CoreClient; +import mineplex.core.account.CoreClientManager; +import mineplex.core.account.ILoginProcessor; +import mineplex.core.bonuses.BonusManager; +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilTime; +import mineplex.core.teamspeak.commands.TeamspeakCommand; +import mineplex.core.teamspeak.redis.TeamspeakLinkRequest; +import mineplex.core.teamspeak.redis.TeamspeakLinkResponse; +import mineplex.core.teamspeak.redis.TeamspeakUnlinkRequest; +import mineplex.core.teamspeak.redis.TeamspeakUnlinkResponse; +import mineplex.core.teamspeak.redis.TeamspeakUpdateRequest; +import mineplex.serverdata.Region; +import mineplex.serverdata.commands.ServerCommandManager; +import mineplex.serverdata.redis.atomic.RedisStringRepository; +import mineplex.serverdata.servers.ServerManager; + +@ReflectivelyCreateMiniPlugin +public class TeamspeakManager extends MiniClientPlugin implements ILoginProcessor +{ + public static final String TEAMSPEAK_CHANNEL_NAME = "Teamspeak Rank Channel"; + + public static final int MAX_LINKED_ACCOUNTS = 5; + public static final int DELAY_BEFORE_UPDATE = (int) 0; //TimeUnit.DAYS.toMillis(1); + + private final CoreClientManager _clientManager = require(CoreClientManager.class); + private final BonusManager _bonusManager = require(BonusManager.class); + private final TeamspeakRepository _repository = new TeamspeakRepository(); + + private final RedisStringRepository _updateRepository = new RedisStringRepository( + ServerManager.getMasterConnection(), + ServerManager.getSlaveConnection(), + Region.ALL, + "teamspeakUpdates", + (int) TimeUnit.DAYS.toSeconds(10) + ); + + private final Map _requestMap = new HashMap<>(); + + private TeamspeakManager() + { + super("TeamSpeak Manager"); + + ServerCommandManager.getInstance().registerCommandType(TeamspeakLinkResponse.class, response -> + { + BukkitTask task = _requestMap.remove(response.getRequest().getCommandId()); + + if (task == null) + return; + + task.cancel(); + + Player sender = Bukkit.getPlayer(response.getRequest().getCaller()); + + if (sender == null) + return; + + switch (response.getResponse()) + { + case TOKEN_VALID: + Date now = new Date(); + Get(sender).link(response.getId(), now); + runAsync(() -> + { + _repository.save(_clientManager.getAccountId(sender), response.getId(), now); + }); + + UtilPlayer.message(sender, F.main("Teamspeak", "Congrats! You've successfully linked your Teamspeak account!")); + break; + case TOKEN_INVALID: + UtilPlayer.message(sender, F.main("Teamspeak", "Uh oh! That's not the token you were given!")); + break; + } + }); + + ServerCommandManager.getInstance().registerCommandType(TeamspeakUnlinkResponse.class, response -> + { + BukkitTask task = _requestMap.remove(response.getRequest().getCommandId()); + + if (task == null) + return; + + task.cancel(); + + Player sender = Bukkit.getPlayer(response.getRequest().getCaller()); + + if (sender == null) + return; + + switch (response.getResponse()) + { + case UNLINKED: + Get(sender).unlink(response.getRequest().getId()); + runAsync(() -> + { + _repository.delete(_clientManager.getAccountId(sender), response.getRequest().getId()); + }); + + UtilPlayer.message(sender, F.main("Teamspeak", "You've unlinked your Teamspeak account!")); + break; + } + }); + + _clientManager.addStoredProcedureLoginProcessor(this); + } + + @Override + public void processLoginResultSet(String playerName, UUID uuid, int accountId, ResultSet resultSet) throws SQLException + { + Map dates = new HashMap<>(); + + while (resultSet.next()) + { + int teamspeakId = resultSet.getInt("teamspeakId"); + Date linkDate = resultSet.getDate("linkDate"); + + dates.put(teamspeakId, linkDate); + } + + Set(uuid, new TeamspeakClientInfo(dates)); + } + + @EventHandler + public void onLogin(PlayerJoinEvent event) + { + if (Get(event.getPlayer()).getLinkedAccounts().size() == 0) + return; + + runAsync(() -> + { + String lastLoginString = _updateRepository.get(event.getPlayer().getUniqueId().toString()); + long lastLogin; + try + { + lastLogin = lastLoginString == null ? 0 : Long.parseLong(lastLoginString); + } + catch (NumberFormatException ex) + { + lastLogin = 0; + } + + if (System.currentTimeMillis() - lastLogin > DELAY_BEFORE_UPDATE) + { + _updateRepository.set(event.getPlayer().getUniqueId().toString(), String.valueOf(System.currentTimeMillis())); + + new TeamspeakUpdateRequest( + event.getPlayer().getUniqueId(), + Ints.toArray(Get(event.getPlayer()).getLinkedAccounts().keySet()), + _clientManager.Get(event.getPlayer()).GetRank().name(), + _bonusManager.getPowerPlayClubRepository().getCachedData(event.getPlayer()).isSubscribed() + ).publish(); + } + }); + } + + @Override + public String getQuery(int accountId, String uuid, String name) + { + return String.format(TeamspeakRepository.GET_ALL_PLAYER_IDS, accountId); + } + + @Override + protected TeamspeakClientInfo addPlayer(UUID uuid) + { + return new TeamspeakClientInfo(Collections.emptyMap()); + } + + public void link(Player caller, String token) + { + if (_requestMap.containsKey(caller.getUniqueId())) + { + UtilPlayer.message(caller, F.main("Teamspeak", "Please wait until your current request has been processed")); + return; + } + + TeamspeakClientInfo info = Get(caller); + + if (info.getLinkedAccounts().size() >= MAX_LINKED_ACCOUNTS) + { + UtilPlayer.message(caller, F.main("Teamspeak", "You have too many linked accounts! Please unlink one using /teamspeak unlink")); + return; + } + + CoreClient client = _clientManager.Get(caller); + + UtilPlayer.message(caller, F.main("Teamspeak", "Linking your account...")); + + TeamspeakLinkRequest linkRequest = new TeamspeakLinkRequest( + caller.getUniqueId(), + client.GetRank().name(), + _bonusManager.getPowerPlayClubRepository().getCachedData(caller).isSubscribed(), + token + ); + linkRequest.publish(); + + _requestMap.put(linkRequest.getCommandId(), runSyncLater(() -> + { + if (!caller.isOnline()) + return; + + UtilPlayer.message(caller, F.main("Teamspeak", "It seems something has gone wrong - your request couldn't be processed")); + + _requestMap.remove(linkRequest.getCommandId()); + }, 20L * 5)); + } + + public void unlink(Player caller, String arg) + { + int id; + try + { + id = Integer.parseInt(arg); + } + catch (NumberFormatException ex) + { + UtilPlayer.message(caller, F.main("Teamspeak", F.elem(arg) + " is not a number")); + return; + } + + if (_requestMap.containsKey(caller.getUniqueId())) + { + UtilPlayer.message(caller, F.main("Teamspeak", "Please wait until your current request has been processed")); + return; + } + + TeamspeakClientInfo info = Get(caller); + + if (!info.getLinkedAccounts().containsKey(id)) + { + UtilPlayer.message(caller, F.main("Teamspeak", "You have not linked to that account")); + return; + } + + UtilPlayer.message(caller, F.main("Teamspeak", "Unlinking your account...")); + + TeamspeakUnlinkRequest unlinkRequest = new TeamspeakUnlinkRequest( + caller.getUniqueId(), + id + ); + unlinkRequest.publish(); + + _requestMap.put(unlinkRequest.getCommandId(), runSyncLater(() -> + { + if (!caller.isOnline()) + return; + + UtilPlayer.message(caller, F.main("Teamspeak", "It seems something has gone wrong - your request couldn't be processed")); + + _requestMap.remove(unlinkRequest.getCommandId()); + }, 20L * 5)); + } + + @Override + public void addCommands() + { + addCommand(new TeamspeakCommand(this)); + } + + public void displayUnlinkPrompt(Player caller, String strPage) + { + TeamspeakClientInfo info = Get(caller); + + List> linkedAccounts = new ArrayList<>(info.getLinkedAccounts().entrySet()); + + if (linkedAccounts.size() == 0) + { + UtilPlayer.message(caller, F.main("Teamspeak", "You have no linked Teamspeak accounts!")); + return; + } + + int totalPages = (int) Math.ceil(linkedAccounts.size() / 8.0); + int page; + + try + { + page = Integer.parseInt(strPage); + } + catch (NumberFormatException ex) + { + UtilPlayer.message(caller, F.main("Teamspeak", F.elem(strPage) + " is not a number!")); + return; + } + page = page - 1; + + if (page < 0) + { + UtilPlayer.message(caller, F.main("Teamspeak", "Page numbers must be greater than zero!")); + return; + } + else if (page >= totalPages) + { + UtilPlayer.message(caller, F.main("Teamspeak", "You only have " + F.elem(totalPages) + " pages of linked accounts, that number is too big!")); + return; + } + + String header = "[" + + ChatColor.RESET + C.cWhite + C.Bold + "Teamspeak Accounts (" + (page + 1) + "/" + totalPages + ")" + + ChatColor.RESET + C.cAqua + C.Strike + "]"; + + int headerChars = ChatColor.stripColor(header).length(); + + int numEqualsInHeader = (50 - headerChars) / 2; + header = C.cAqua + C.Strike + StringUtils.repeat("=", numEqualsInHeader) + header + StringUtils.repeat("=", numEqualsInHeader); + + caller.sendMessage(header); + + int start = page * 8; + + List> subList = start < linkedAccounts.size() ? linkedAccounts.subList(start, Math.min(linkedAccounts.size(), start + 8)) : Collections.emptyList(); + + for (Map.Entry data : subList) + { + BaseComponent[] hover = new ComponentBuilder("") + .append("ID: ") + .color(ChatColor.YELLOW) + .append(String.valueOf(data.getKey()), ComponentBuilder.FormatRetention.NONE) + .color(ChatColor.WHITE) + .create(); + + ComponentBuilder builder = new ComponentBuilder("") + .append("Unlink") + .color(ChatColor.RED) + .bold(true) + .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click to unlink this account").color(ChatColor.RED).create())) + .event(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/teamspeak unlink " + data.getKey())) + .append(" - ", ComponentBuilder.FormatRetention.NONE) + .color(ChatColor.WHITE) + .append("Account linked on " + UtilTime.date(data.getValue().getTime())) + .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, hover)) + .color(ChatColor.GRAY); + + caller.spigot().sendMessage(builder.create()); + } + + int chars = ChatColor.stripColor(header).length(); + + int numEquals = (chars - 3) / 2; + + ComponentBuilder pageSwitch = new ComponentBuilder("") + .append(StringUtils.repeat("=", numEquals) + "[") + .strikethrough(true) + .color(ChatColor.AQUA) + .append(" ", ComponentBuilder.FormatRetention.NONE) + .append("<", ComponentBuilder.FormatRetention.NONE) + .bold(true); + + if (page > 0) + { + BaseComponent[] prev = new ComponentBuilder("") + .append("Go to page " + page) + .color(ChatColor.GREEN) + .create(); + + pageSwitch + .color(ChatColor.GREEN) + .event(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/teamspeak list " + (page))) + .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, prev)); + + } + else + { + pageSwitch + .color(ChatColor.GRAY); + } + + pageSwitch.append(" ", ComponentBuilder.FormatRetention.NONE) + .append(">", ComponentBuilder.FormatRetention.NONE) + .bold(true); + + if (page + 1 < totalPages) + { + BaseComponent[] next = new ComponentBuilder("") + .append("Go to page " + (page + 2)) + .color(ChatColor.GREEN) + .create(); + + pageSwitch + .color(ChatColor.GREEN) + .event(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/teamspeak list " + (page + 2))) + .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, next)); + + } + else + { + pageSwitch + .color(ChatColor.GRAY); + } + + pageSwitch + .append(" ", ComponentBuilder.FormatRetention.NONE) + .append("]" + StringUtils.repeat("=", numEquals), ComponentBuilder.FormatRetention.NONE) + .strikethrough(true) + .color(ChatColor.AQUA); + + caller.spigot().sendMessage(pageSwitch.create()); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakRepository.java new file mode 100644 index 000000000..afe63c069 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakRepository.java @@ -0,0 +1,57 @@ +package mineplex.core.teamspeak; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.Date; + +import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; + +@SuppressWarnings("WeakerAccess") +public class TeamspeakRepository extends RepositoryBase +{ + TeamspeakRepository() + { + super(DBPool.getAccount()); + } + + public static final String GET_ALL_PLAYER_IDS = "SELECT `teamspeakId`, `linkDate` FROM accountTeamspeak WHERE accountId = %s;"; + public static final String SAVE_PLAYER_ID = "INSERT INTO accountTeamspeak (accountId, teamspeakId, linkDate) VALUES (?, ?, ?);"; + public static final String DELETE_PLAYER_ID = "DELETE FROM accountTeamspeak WHERE accountId = ? AND teamspeakId = ?;"; + + public void save(int accountId, int id, Date now) + { + try (Connection connection = getConnection()) + { + try (PreparedStatement statement = connection.prepareStatement(SAVE_PLAYER_ID)) + { + statement.setInt(1, accountId); + statement.setInt(2, id); + statement.setDate(3, new java.sql.Date(now.getTime())); + statement.executeUpdate(); + } + } + catch (SQLException ex) + { + ex.printStackTrace(); + } + } + + public void delete(int accountId, int id) + { + try (Connection connection = getConnection()) + { + try (PreparedStatement statement = connection.prepareStatement(DELETE_PLAYER_ID)) + { + statement.setInt(1, accountId); + statement.setInt(2, id); + statement.executeUpdate(); + } + } + catch (SQLException ex) + { + ex.printStackTrace(); + } + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/LinkCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/LinkCommand.java new file mode 100644 index 000000000..22157fe0a --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/LinkCommand.java @@ -0,0 +1,29 @@ +package mineplex.core.teamspeak.commands; + +import org.bukkit.entity.Player; + +import mineplex.core.command.CommandBase; +import mineplex.core.common.Rank; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.teamspeak.TeamspeakManager; + +public class LinkCommand extends CommandBase +{ + public LinkCommand(TeamspeakManager plugin) + { + super(plugin, Rank.ALL, "link"); + } + + @Override + public void Execute(Player caller, String[] args) + { + if (args.length == 0) + { + UtilPlayer.message(caller, F.main("Teamspeak", "No token specified. Join the " + F.elem(TeamspeakManager.TEAMSPEAK_CHANNEL_NAME) + " on Teamspeak and type !link to link an account")); + return; + } + + Plugin.link(caller, args[0]); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/ListCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/ListCommand.java new file mode 100644 index 000000000..18b4ebf56 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/ListCommand.java @@ -0,0 +1,23 @@ +package mineplex.core.teamspeak.commands; + +import org.bukkit.entity.Player; + +import mineplex.core.command.CommandBase; +import mineplex.core.common.Rank; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.teamspeak.TeamspeakManager; + +public class ListCommand extends CommandBase +{ + public ListCommand(TeamspeakManager plugin) + { + super(plugin, Rank.ALL, "list"); + } + + @Override + public void Execute(Player caller, String[] args) + { + Plugin.displayUnlinkPrompt(caller, args.length == 0 ? "1" : args[0]); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/TeamspeakCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/TeamspeakCommand.java new file mode 100644 index 000000000..09e7c07ba --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/TeamspeakCommand.java @@ -0,0 +1,25 @@ +package mineplex.core.teamspeak.commands; + +import org.bukkit.entity.Player; + +import mineplex.core.command.MultiCommandBase; +import mineplex.core.common.Rank; +import mineplex.core.teamspeak.TeamspeakManager; + +public class TeamspeakCommand extends MultiCommandBase +{ + public TeamspeakCommand(TeamspeakManager plugin) + { + super(plugin, Rank.ALL, "teamspeak", "ts"); + + AddCommand(new LinkCommand(plugin)); + AddCommand(new ListCommand(plugin)); + AddCommand(new UnlinkCommand(plugin)); + } + + @Override + protected void Help(Player caller, String[] args) + { + + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/UnlinkCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/UnlinkCommand.java new file mode 100644 index 000000000..063b90a80 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/UnlinkCommand.java @@ -0,0 +1,29 @@ +package mineplex.core.teamspeak.commands; + +import org.bukkit.entity.Player; + +import mineplex.core.command.CommandBase; +import mineplex.core.common.Rank; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.teamspeak.TeamspeakManager; + +public class UnlinkCommand extends CommandBase +{ + public UnlinkCommand(TeamspeakManager plugin) + { + super(plugin, Rank.ALL, "unlink"); + } + + @Override + public void Execute(Player caller, String[] args) + { + if (args.length == 0) + { + UtilPlayer.message(caller, F.main("Teamspeak", "No account specified!")); + return; + } + + Plugin.unlink(caller, args[0]); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakLinkRequest.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakLinkRequest.java new file mode 100644 index 000000000..6a2ec2428 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakLinkRequest.java @@ -0,0 +1,27 @@ +package mineplex.core.teamspeak.redis; + +import java.util.UUID; + +import mineplex.serverdata.commands.ServerCommand; + +public class TeamspeakLinkRequest extends ServerCommand +{ + private final UUID _caller; + // Send all the metadata in case it's successful + private final String _callerRank; + private final boolean _powerPlay; + private final String _token; + + public TeamspeakLinkRequest(UUID caller, String callerRank, boolean powerPlay, String token) + { + this._caller = caller; + this._callerRank = callerRank; + this._powerPlay = powerPlay; + this._token = token; + } + + public UUID getCaller() + { + return _caller; + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakLinkResponse.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakLinkResponse.java new file mode 100644 index 000000000..e9f59c0b6 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakLinkResponse.java @@ -0,0 +1,42 @@ +package mineplex.core.teamspeak.redis; + +import com.google.gson.annotations.SerializedName; + +import mineplex.serverdata.commands.ServerCommand; + +public class TeamspeakLinkResponse extends ServerCommand +{ + private final Response _response; + private final TeamspeakLinkRequest _request; + private final int _id; + + public TeamspeakLinkResponse(Response response, TeamspeakLinkRequest request, int id) + { + _response = response; + _request = request; + _id = id; + } + + public Response getResponse() + { + return _response; + } + + public TeamspeakLinkRequest getRequest() + { + return _request; + } + + public int getId() + { + return _id; + } + + public enum Response + { + @SerializedName("token-valid") + TOKEN_VALID, + @SerializedName("token-invalid") + TOKEN_INVALID + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUnlinkRequest.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUnlinkRequest.java new file mode 100644 index 000000000..340e89cdc --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUnlinkRequest.java @@ -0,0 +1,27 @@ +package mineplex.core.teamspeak.redis; + +import java.util.UUID; + +import mineplex.serverdata.commands.ServerCommand; + +public class TeamspeakUnlinkRequest extends ServerCommand +{ + private final UUID _caller; + private final int _id; + + public TeamspeakUnlinkRequest(UUID caller, int id) + { + this._caller = caller; + this._id = id; + } + + public UUID getCaller() + { + return _caller; + } + + public int getId() + { + return _id; + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUnlinkResponse.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUnlinkResponse.java new file mode 100644 index 000000000..41827f9ee --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUnlinkResponse.java @@ -0,0 +1,33 @@ +package mineplex.core.teamspeak.redis; + +import com.google.gson.annotations.SerializedName; + +import mineplex.serverdata.commands.ServerCommand; + +public class TeamspeakUnlinkResponse extends ServerCommand +{ + private final Response _response; + private final TeamspeakUnlinkRequest _request; + + public TeamspeakUnlinkResponse(Response response, TeamspeakUnlinkRequest request) + { + this._response = response; + this._request = request; + } + + public Response getResponse() + { + return _response; + } + + public TeamspeakUnlinkRequest getRequest() + { + return _request; + } + + public enum Response + { + @SerializedName(value = "unlinked") + UNLINKED + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUpdateRequest.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUpdateRequest.java new file mode 100644 index 000000000..f8940cee4 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUpdateRequest.java @@ -0,0 +1,21 @@ +package mineplex.core.teamspeak.redis; + +import java.util.UUID; + +import mineplex.serverdata.commands.ServerCommand; + +public class TeamspeakUpdateRequest extends ServerCommand +{ + private final UUID _caller; + private final int[] _ids; + private final String _callerRank; + private final boolean _powerPlay; + + public TeamspeakUpdateRequest(UUID caller, int[] ids, String callerRank, boolean powerPlay) + { + _caller = caller; + _ids = ids; + _callerRank = callerRank; + _powerPlay = powerPlay; + } +} diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java index c4f8cdec8..763bbb153 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java @@ -64,6 +64,7 @@ import mineplex.core.sponsorbranding.BrandingManager; import mineplex.core.stats.StatsManager; import mineplex.core.status.ServerStatusManager; import mineplex.core.task.TaskManager; +import mineplex.core.teamspeak.TeamspeakManager; import mineplex.core.teleport.Teleport; import mineplex.core.thank.ThankManager; import mineplex.core.titles.Titles; @@ -234,6 +235,7 @@ public class Hub extends JavaPlugin implements IRelation require(TrackManager.class); require(Titles.class); require(TwoFactorAuth.class); + require(TeamspeakManager.class); } @Override diff --git a/Plugins/Mineplex.ServerData/src/mineplex/serverdata/redis/atomic/RedisStringRepository.java b/Plugins/Mineplex.ServerData/src/mineplex/serverdata/redis/atomic/RedisStringRepository.java index 910d61b38..b637b491d 100644 --- a/Plugins/Mineplex.ServerData/src/mineplex/serverdata/redis/atomic/RedisStringRepository.java +++ b/Plugins/Mineplex.ServerData/src/mineplex/serverdata/redis/atomic/RedisStringRepository.java @@ -5,25 +5,36 @@ import mineplex.serverdata.redis.RedisRepository; import mineplex.serverdata.servers.ConnectionData; import redis.clients.jedis.Jedis; -import redis.clients.jedis.Response; -import redis.clients.jedis.Transaction; -import static mineplex.serverdata.Utility.currentTimeMillis; public class RedisStringRepository extends RedisRepository { private final String _dataKey; + private final int _expiration; - public RedisStringRepository(ConnectionData writeConn, ConnectionData readConn, Region region, String dataKey) + public RedisStringRepository(ConnectionData writeConn, ConnectionData readConn, Region region, String dataKey, int expiryInSeconds) { super(writeConn, readConn, region); this._dataKey = dataKey; + this._expiration = expiryInSeconds; + } + + public RedisStringRepository(ConnectionData writeConn, ConnectionData readConn, Region region, String dataKey) + { + this(writeConn, readConn, region, dataKey, -1); } public void set(String key, String value) { try (Jedis jedis = getResource(true)) { - jedis.set(generateKey(key), value); + if (_expiration == -1) + { + jedis.set(generateKey(key), value); + } + else + { + jedis.setex(generateKey(key), _expiration, value); + } } } From a1bad6d07e5892e64e3eaeec6993b697cf810ee8 Mon Sep 17 00:00:00 2001 From: samczsun Date: Fri, 24 Feb 2017 17:48:54 -0500 Subject: [PATCH 047/133] QoL improvements --- .../src/mineplex/core/teamspeak/TeamspeakManager.java | 2 +- .../src/mineplex/core/teamspeak/commands/LinkCommand.java | 2 +- .../mineplex/core/teamspeak/commands/TeamspeakCommand.java | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java index 17016e6a1..26dab5616 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java @@ -354,7 +354,7 @@ public class TeamspeakManager extends MiniClientPlugin impl .color(ChatColor.RED) .bold(true) .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click to unlink this account").color(ChatColor.RED).create())) - .event(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/teamspeak unlink " + data.getKey())) + .event(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/teamspeak unlink " + data.getKey())) .append(" - ", ComponentBuilder.FormatRetention.NONE) .color(ChatColor.WHITE) .append("Account linked on " + UtilTime.date(data.getValue().getTime())) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/LinkCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/LinkCommand.java index 22157fe0a..83fa22d07 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/LinkCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/LinkCommand.java @@ -20,7 +20,7 @@ public class LinkCommand extends CommandBase { if (args.length == 0) { - UtilPlayer.message(caller, F.main("Teamspeak", "No token specified. Join the " + F.elem(TeamspeakManager.TEAMSPEAK_CHANNEL_NAME) + " on Teamspeak and type !link to link an account")); + UtilPlayer.message(caller, F.main("Teamspeak", "No token specified. Join the " + F.elem(TeamspeakManager.TEAMSPEAK_CHANNEL_NAME) + " on Teamspeak and type " + F.elem("!link") + " to link an account")); return; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/TeamspeakCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/TeamspeakCommand.java index 09e7c07ba..c14e57d8c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/TeamspeakCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/commands/TeamspeakCommand.java @@ -4,6 +4,8 @@ import org.bukkit.entity.Player; import mineplex.core.command.MultiCommandBase; import mineplex.core.common.Rank; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; import mineplex.core.teamspeak.TeamspeakManager; public class TeamspeakCommand extends MultiCommandBase @@ -20,6 +22,7 @@ public class TeamspeakCommand extends MultiCommandBase @Override protected void Help(Player caller, String[] args) { - + UtilPlayer.message(caller, F.main("Teamspeak", "To link a new Teamspeak account, run " + F.elem("/teamspeak link"))); + UtilPlayer.message(caller, F.main("Teamspeak", "To list all linked Teamspeak accounts, run " + F.elem("/teamspeak list"))); } } From 866b7bf63b220275dfa2e0319dcdac9c0926e572 Mon Sep 17 00:00:00 2001 From: samczsun Date: Mon, 27 Feb 2017 21:59:34 -0500 Subject: [PATCH 048/133] Better help message --- .../src/mineplex/core/teamspeak/TeamspeakManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java index 26dab5616..e0be635cd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java @@ -353,7 +353,7 @@ public class TeamspeakManager extends MiniClientPlugin impl .append("Unlink") .color(ChatColor.RED) .bold(true) - .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click to unlink this account").color(ChatColor.RED).create())) + .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click to unlink this account. All your ranks on Teamspeak will be removed").color(ChatColor.RED).create())) .event(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/teamspeak unlink " + data.getKey())) .append(" - ", ComponentBuilder.FormatRetention.NONE) .color(ChatColor.WHITE) From f6884fccd82054dde18749cc1dbb4a4e831f3b8d Mon Sep 17 00:00:00 2001 From: samczsun Date: Fri, 3 Mar 2017 21:15:51 -0500 Subject: [PATCH 049/133] Change update protocol --- .../mineplex/core/common/util/UtilServer.java | 5 -- .../core/database/BasicMSSQLProvider.java | 3 +- .../core/teamspeak/TeamspeakManager.java | 56 ------------------- .../teamspeak/redis/TeamspeakLinkRequest.java | 12 ++-- .../redis/TeamspeakUpdateRequest.java | 21 ------- 5 files changed, 8 insertions(+), 89 deletions(-) delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUpdateRequest.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilServer.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilServer.java index 722b7f174..63b55feab 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilServer.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilServer.java @@ -208,11 +208,6 @@ public class UtilServer } } - public static String getWebServerURL() - { - return getPlugin().getConfig().getString(Constants.WEB_CONFIG_KEY); - } - public static BukkitTask runAsync(Runnable runnable) { return getPlugin().getServer().getScheduler().runTaskAsynchronously(getPlugin(), runnable); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/database/BasicMSSQLProvider.java b/Plugins/Mineplex.Core/src/mineplex/core/database/BasicMSSQLProvider.java index 45f4b7b03..f5bd25757 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/database/BasicMSSQLProvider.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/database/BasicMSSQLProvider.java @@ -7,6 +7,7 @@ import java.util.function.Consumer; import org.bukkit.scheduler.BukkitTask; +import mineplex.core.common.Constants; import mineplex.core.common.util.UtilServer; import mineplex.core.server.remotecall.JsonWebCall; import mineplex.core.thread.ThreadPool; @@ -17,7 +18,7 @@ import mineplex.serverdata.database.DatabaseRunnable; @Deprecated public class BasicMSSQLProvider implements MSSQLProvider { - private final String _webAddress = UtilServer.getWebServerURL(); + private final String _webAddress = Constants.WEB_ADDRESS; // Queue for failed processes private final Object QUEUE_LOCK = new Object(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java index e0be635cd..68e3bccdd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/TeamspeakManager.java @@ -9,7 +9,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; -import java.util.concurrent.TimeUnit; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.chat.BaseComponent; @@ -20,12 +19,8 @@ import net.md_5.bungee.api.chat.HoverEvent; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.scheduler.BukkitTask; -import com.google.common.primitives.Ints; - import mineplex.core.MiniClientPlugin; import mineplex.core.ReflectivelyCreateMiniPlugin; import mineplex.core.account.CoreClient; @@ -41,11 +36,7 @@ import mineplex.core.teamspeak.redis.TeamspeakLinkRequest; import mineplex.core.teamspeak.redis.TeamspeakLinkResponse; import mineplex.core.teamspeak.redis.TeamspeakUnlinkRequest; import mineplex.core.teamspeak.redis.TeamspeakUnlinkResponse; -import mineplex.core.teamspeak.redis.TeamspeakUpdateRequest; -import mineplex.serverdata.Region; import mineplex.serverdata.commands.ServerCommandManager; -import mineplex.serverdata.redis.atomic.RedisStringRepository; -import mineplex.serverdata.servers.ServerManager; @ReflectivelyCreateMiniPlugin public class TeamspeakManager extends MiniClientPlugin implements ILoginProcessor @@ -53,20 +44,10 @@ public class TeamspeakManager extends MiniClientPlugin impl public static final String TEAMSPEAK_CHANNEL_NAME = "Teamspeak Rank Channel"; public static final int MAX_LINKED_ACCOUNTS = 5; - public static final int DELAY_BEFORE_UPDATE = (int) 0; //TimeUnit.DAYS.toMillis(1); private final CoreClientManager _clientManager = require(CoreClientManager.class); - private final BonusManager _bonusManager = require(BonusManager.class); private final TeamspeakRepository _repository = new TeamspeakRepository(); - private final RedisStringRepository _updateRepository = new RedisStringRepository( - ServerManager.getMasterConnection(), - ServerManager.getSlaveConnection(), - Region.ALL, - "teamspeakUpdates", - (int) TimeUnit.DAYS.toSeconds(10) - ); - private final Map _requestMap = new HashMap<>(); private TeamspeakManager() @@ -152,39 +133,6 @@ public class TeamspeakManager extends MiniClientPlugin impl Set(uuid, new TeamspeakClientInfo(dates)); } - @EventHandler - public void onLogin(PlayerJoinEvent event) - { - if (Get(event.getPlayer()).getLinkedAccounts().size() == 0) - return; - - runAsync(() -> - { - String lastLoginString = _updateRepository.get(event.getPlayer().getUniqueId().toString()); - long lastLogin; - try - { - lastLogin = lastLoginString == null ? 0 : Long.parseLong(lastLoginString); - } - catch (NumberFormatException ex) - { - lastLogin = 0; - } - - if (System.currentTimeMillis() - lastLogin > DELAY_BEFORE_UPDATE) - { - _updateRepository.set(event.getPlayer().getUniqueId().toString(), String.valueOf(System.currentTimeMillis())); - - new TeamspeakUpdateRequest( - event.getPlayer().getUniqueId(), - Ints.toArray(Get(event.getPlayer()).getLinkedAccounts().keySet()), - _clientManager.Get(event.getPlayer()).GetRank().name(), - _bonusManager.getPowerPlayClubRepository().getCachedData(event.getPlayer()).isSubscribed() - ).publish(); - } - }); - } - @Override public String getQuery(int accountId, String uuid, String name) { @@ -213,14 +161,10 @@ public class TeamspeakManager extends MiniClientPlugin impl return; } - CoreClient client = _clientManager.Get(caller); - UtilPlayer.message(caller, F.main("Teamspeak", "Linking your account...")); TeamspeakLinkRequest linkRequest = new TeamspeakLinkRequest( caller.getUniqueId(), - client.GetRank().name(), - _bonusManager.getPowerPlayClubRepository().getCachedData(caller).isSubscribed(), token ); linkRequest.publish(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakLinkRequest.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakLinkRequest.java index 6a2ec2428..1235b54a3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakLinkRequest.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakLinkRequest.java @@ -7,16 +7,11 @@ import mineplex.serverdata.commands.ServerCommand; public class TeamspeakLinkRequest extends ServerCommand { private final UUID _caller; - // Send all the metadata in case it's successful - private final String _callerRank; - private final boolean _powerPlay; private final String _token; - public TeamspeakLinkRequest(UUID caller, String callerRank, boolean powerPlay, String token) + public TeamspeakLinkRequest(UUID caller, String token) { this._caller = caller; - this._callerRank = callerRank; - this._powerPlay = powerPlay; this._token = token; } @@ -24,4 +19,9 @@ public class TeamspeakLinkRequest extends ServerCommand { return _caller; } + + public String getToken() + { + return _token; + } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUpdateRequest.java b/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUpdateRequest.java deleted file mode 100644 index f8940cee4..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/teamspeak/redis/TeamspeakUpdateRequest.java +++ /dev/null @@ -1,21 +0,0 @@ -package mineplex.core.teamspeak.redis; - -import java.util.UUID; - -import mineplex.serverdata.commands.ServerCommand; - -public class TeamspeakUpdateRequest extends ServerCommand -{ - private final UUID _caller; - private final int[] _ids; - private final String _callerRank; - private final boolean _powerPlay; - - public TeamspeakUpdateRequest(UUID caller, int[] ids, String callerRank, boolean powerPlay) - { - _caller = caller; - _ids = ids; - _callerRank = callerRank; - _powerPlay = powerPlay; - } -} From 5349f53bfe7438d5b7dfbda51c2d4a4559841a0a Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 16 Mar 2017 10:43:32 -0400 Subject: [PATCH 050/133] Fix St Patricks Chest info --- .../staffServer/customerSupport/CustomerSupport.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupport.java b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupport.java index 96198be33..c5b819fcf 100644 --- a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupport.java +++ b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupport.java @@ -324,9 +324,9 @@ public class CustomerSupport extends MiniPlugin implements ResultSetCallable { if (transaction.Coins == 0 && transaction.Gems == 0) { - if (transaction.SalesPackageName.split(" ").length == 3) - stPatricksChestReceived += Integer.parseInt(transaction.SalesPackageName.split(" ")[2]); - else if (transaction.SalesPackageName.split(" ").length == 2) + if (transaction.SalesPackageName.split(" ").length == 4) + stPatricksChestReceived += Integer.parseInt(transaction.SalesPackageName.split(" ")[3]); + else if (transaction.SalesPackageName.split(" ").length == 3) stPatricksChestReceived += 1; } } From b464cab2133456089272d9f737e6fc01af3d0e1b Mon Sep 17 00:00:00 2001 From: cnr Date: Fri, 17 Mar 2017 00:52:41 -0500 Subject: [PATCH 051/133] Add former St Patricks cosmetic names as alternatives --- .../gadgets/outfit/stpatricks/OutfitStPatricksBoots.java | 2 +- .../gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java | 2 +- .../gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java | 2 +- .../gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java | 2 +- .../gadgets/outfit/stpatricks/OutfitStPatricksSuit.java | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksBoots.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksBoots.java index 411b87a74..1acc70e2e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksBoots.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksBoots.java @@ -9,7 +9,7 @@ public class OutfitStPatricksBoots extends OutfitStPatricksSuit public OutfitStPatricksBoots(GadgetManager manager) { - super(manager, "Leprechaun's Boots", -18, ArmorSlot.BOOTS, Material.LEATHER_BOOTS, (byte) 0); + super(manager, "Leprechaun's Boots", -18, ArmorSlot.BOOTS, Material.LEATHER_BOOTS, (byte) 0, "St Patrick's Boots"); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java index f7020af70..a0b264350 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksChestplate.java @@ -9,7 +9,7 @@ public class OutfitStPatricksChestplate extends OutfitStPatricksSuit public OutfitStPatricksChestplate(GadgetManager manager) { - super(manager, "Leprechaun's Chest", -18, ArmorSlot.CHEST, Material.LEATHER_CHESTPLATE, (byte) 0); + super(manager, "Leprechaun's Chest", -18, ArmorSlot.CHEST, Material.LEATHER_CHESTPLATE, (byte) 0, "St Patrick's Chest"); } } \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java index 624e3b58b..dcffccdf4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksHat.java @@ -9,7 +9,7 @@ public class OutfitStPatricksHat extends OutfitStPatricksSuit public OutfitStPatricksHat(GadgetManager manager) { - super(manager, "Leprechaun's Hat", -18, ArmorSlot.HELMET, Material.LEATHER_HELMET, (byte) 0); + super(manager, "Leprechaun's Hat", -18, ArmorSlot.HELMET, Material.LEATHER_HELMET, (byte) 0, "St Patrick's Hat"); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java index 56261a534..18fcdf092 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksLeggings.java @@ -9,7 +9,7 @@ public class OutfitStPatricksLeggings extends OutfitStPatricksSuit public OutfitStPatricksLeggings(GadgetManager manager) { - super(manager, "Leprechaun's Pants", -18, ArmorSlot.LEGS, Material.LEATHER_LEGGINGS, (byte) 0); + super(manager, "Leprechaun's Pants", -18, ArmorSlot.LEGS, Material.LEATHER_LEGGINGS, (byte) 0, "St Patrick's Pants"); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java index e409360b5..ef4f511b2 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/stpatricks/OutfitStPatricksSuit.java @@ -28,9 +28,9 @@ public class OutfitStPatricksSuit extends OutfitGadget private HashSet _items = new HashSet<>(); - public OutfitStPatricksSuit(GadgetManager manager, String name, int cost, OutfitGadget.ArmorSlot slot, Material mat, byte data) + public OutfitStPatricksSuit(GadgetManager manager, String name, int cost, OutfitGadget.ArmorSlot slot, Material mat, byte data, String... altNames) { - super(manager, name, UtilText.splitLinesToArray(new String[]{C.cGray + "Wherever a Leprechaun goes he leaves behind a trail of gold and a hint of spring."}, LineFormat.LORE), cost, slot, mat, data); + super(manager, name, UtilText.splitLinesToArray(new String[]{C.cGray + "Wherever a Leprechaun goes he leaves behind a trail of gold and a hint of spring."}, LineFormat.LORE), cost, slot, mat, data, altNames); setColor(Color.fromRGB(0, 153, 0)); ItemStack displayItem = new ItemStack(mat, 1, data); if (displayItem.getItemMeta() instanceof LeatherArmorMeta) From 8e5a5695d53add3216320974df973adee78443eb Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 17 Mar 2017 17:03:53 +0000 Subject: [PATCH 052/133] Fix early game revive --- .../game/arcade/game/games/bridge/Bridge.java | 177 +++++------------- 1 file changed, 52 insertions(+), 125 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java index 3a0e97fc6..bf646fa6e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java @@ -1,65 +1,8 @@ package nautilus.game.arcade.game.games.bridge; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.UUID; -import java.util.concurrent.TimeUnit; - -import org.bukkit.ChatColor; -import org.bukkit.Effect; -import org.bukkit.GameMode; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.block.Chest; -import org.bukkit.entity.Chicken; -import org.bukkit.entity.Cow; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Item; -import org.bukkit.entity.Pig; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockFormEvent; -import org.bukkit.event.block.BlockFromToEvent; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.entity.EntityChangeBlockEvent; -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntitySpawnEvent; -import org.bukkit.event.entity.ItemSpawnEvent; -import org.bukkit.event.inventory.CraftItemEvent; -import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketFillEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.inventory.CraftingInventory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.metadata.FixedMetadataValue; -import org.bukkit.util.Vector; - import mineplex.core.common.Rank; -import mineplex.core.common.util.C; -import mineplex.core.common.util.F; -import mineplex.core.common.util.NautHashMap; -import mineplex.core.common.util.UtilAction; -import mineplex.core.common.util.UtilAlg; -import mineplex.core.common.util.UtilBlock; -import mineplex.core.common.util.UtilEvent; +import mineplex.core.common.util.*; import mineplex.core.common.util.UtilEvent.ActionType; -import mineplex.core.common.util.UtilGear; -import mineplex.core.common.util.UtilInv; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.common.util.UtilTextMiddle; -import mineplex.core.common.util.UtilTime; -import mineplex.core.common.util.UtilWorld; import mineplex.core.explosion.ExplosionEvent; import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.updater.UpdateType; @@ -78,14 +21,7 @@ import nautilus.game.arcade.game.games.bridge.animation.BridgeAnimationType; import nautilus.game.arcade.game.games.bridge.animation.custom.CustomBridgeAnimation; import nautilus.game.arcade.game.games.bridge.animation.custom.RadiusCustomBridgeAnimation; import nautilus.game.arcade.game.games.bridge.animation.custom.RandomCustomBridgeAnimation; -import nautilus.game.arcade.game.games.bridge.kits.KitApple; -import nautilus.game.arcade.game.games.bridge.kits.KitArcher; -import nautilus.game.arcade.game.games.bridge.kits.KitBerserker; -import nautilus.game.arcade.game.games.bridge.kits.KitBomber; -import nautilus.game.arcade.game.games.bridge.kits.KitBrawler; -import nautilus.game.arcade.game.games.bridge.kits.KitDestructor; -import nautilus.game.arcade.game.games.bridge.kits.KitMammoth; -import nautilus.game.arcade.game.games.bridge.kits.KitMiner; +import nautilus.game.arcade.game.games.bridge.kits.*; import nautilus.game.arcade.game.modules.WorldBorderModule; import nautilus.game.arcade.game.modules.compass.CompassModule; import nautilus.game.arcade.kit.Kit; @@ -93,11 +29,38 @@ import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.perks.PerkDestructor; import nautilus.game.arcade.ore.OreHider; import nautilus.game.arcade.ore.OreObsfucation; -import nautilus.game.arcade.stats.BridgesSniperStatTracker; -import nautilus.game.arcade.stats.DeathBomberStatTracker; -import nautilus.game.arcade.stats.FoodForTheMassesStatTracker; -import nautilus.game.arcade.stats.KillFastStatTracker; -import nautilus.game.arcade.stats.TntMinerStatTracker; +import nautilus.game.arcade.stats.*; +import org.bukkit.Effect; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.Chest; +import org.bukkit.entity.*; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockFormEvent; +import org.bukkit.event.block.BlockFromToEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.entity.EntityChangeBlockEvent; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntitySpawnEvent; +import org.bukkit.event.entity.ItemSpawnEvent; +import org.bukkit.event.inventory.CraftItemEvent; +import org.bukkit.event.inventory.PrepareItemCraftEvent; +import org.bukkit.event.player.PlayerBucketEmptyEvent; +import org.bukkit.event.player.PlayerBucketFillEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.inventory.CraftingInventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.metadata.FixedMetadataValue; +import org.bukkit.util.Vector; + +import java.util.*; +import java.util.concurrent.TimeUnit; public class Bridge extends TeamGame implements OreObsfucation { @@ -144,7 +107,7 @@ public class Bridge extends TeamGame implements OreObsfucation private int _buildHeight = -1; //Player Respawn - private HashSet _usedLife = new HashSet(); + private Set _usedLife = new HashSet<>(); //Tourney Mode private boolean _tournament; @@ -204,7 +167,7 @@ public class Bridge extends TeamGame implements OreObsfucation _ore = new OreHider(); // Flags - GameTimeout = Manager.IsTournamentServer() ? 5400000 : 3600000; + GameTimeout = Manager.IsTournamentServer() ? TimeUnit.MINUTES.toMillis(90) : TimeUnit.MINUTES.toMillis(60); Manager.GetExplosion().SetLiquidDamage(false); @@ -766,84 +729,48 @@ public class Bridge extends TeamGame implements OreObsfucation } @EventHandler - public void BridgeBuild(UpdateEvent event) + public void BridgeBuild(UpdateEvent event) { if (!IsLive() || !UtilTime.elapsed(GetStateTime(), _bridgeTime)) { return; } - + if (_animation != null) { _animation.onUpdate(event.getType()); } - + if (event.getType() != UpdateType.FAST) { return; } - + if (!_bridgesDown) { _bridgesDown = true; - + WorldBorderModule borderModule = getModule(WorldBorderModule.class); - + for (Player player : GetPlayers(true)) { borderModule.setSize(player, 10000); } - + Manager.GetExplosion().SetLiquidDamage(true); Announce(C.cRedB + "ALERT: " + C.Reset + C.Bold + "THE BRIDGES ARE SPAWNING!"); UtilTextMiddle.display(C.cRedB + "ALERT", "The BRIDGES ARE SPAWNING!"); - + for (Kit kit : GetKits()) { if (kit instanceof KitDestructor) { - ((KitDestructor)kit).SetEnabled(true); + ((KitDestructor) kit).SetEnabled(true); } } } } - -// @EventHandler -// public void breakLillyPad(BlockBreakEvent event) -// { -// if (event.getBlock().getType() != Material.WATER_LILY) -// return; -// -// _lillyPads.put(event.getBlock().getLocation(), System.currentTimeMillis() + (long)(Math.random() * 12000)); -// } - -// @EventHandler -// public void breakMushroom(BlockBreakEvent event) -// { -// if (event.isCancelled()) -// return; -// -// -// if (event.getBlock().getTypeId() == 100 && -// WorldData.GetCustomLocs("21").contains(event.getBlock().getLocation().add(0.5, 0, 0.5))) -// { -// event.setCancelled(true); -// event.getBlock().setType(Material.AIR); -// -// _mushroomStem.put(event.getBlock().getLocation(), System.currentTimeMillis() + (long)(Math.random() * 12000)); -// } -// -// if (event.getBlock().getTypeId() == 99 && -// WorldData.GetDataLocs("PURPLE").contains(event.getBlock().getLocation().add(0.5, 0, 0.5))) -// { -// event.setCancelled(true); -// event.getBlock().setType(Material.AIR); -// -// _mushroomTop.put(event.getBlock().getLocation(), System.currentTimeMillis() + (long)(Math.random() * 12000)); -// } -// } - @EventHandler public void BridgeUpdate(UpdateEvent event) { @@ -1534,7 +1461,7 @@ public class Bridge extends TeamGame implements OreObsfucation { _tournamentKillMessageTimer = System.currentTimeMillis(); - this.Announce(C.cRed + C.Bold + "ALERT: " + ChatColor.RESET + C.Bold + "FIRST TEAM TO HAVE MOST KILLS WINS!"); + Announce(C.cRed + C.Bold + "ALERT: " + C.Reset + C.Bold + "FIRST TEAM TO HAVE MOST KILLS WINS!"); } } @@ -1728,16 +1655,16 @@ public class Bridge extends TeamGame implements OreObsfucation } @EventHandler(priority=EventPriority.LOWEST) - public void revivePlayer(EntityDamageEvent event) + public void revivePlayer(CustomDamageEvent event) { - if (_bridgesDown || !(event.getEntity() instanceof Player)) + if (_bridgesDown || !(event.GetDamageeEntity() instanceof Player)) { return; } - - Player player = (Player) event.getEntity(); - if (player.getHealth() - event.getDamage() > 0) + Player player = event.GetDamageePlayer(); + + if (player.getHealth() - event.GetDamage() > 0) { return; } @@ -1750,7 +1677,7 @@ public class Bridge extends TeamGame implements OreObsfucation GetTeam(player).SpawnTeleport(player); player.setHealth(20); - event.setCancelled(true); + event.SetCancelled("Early Game Revive"); } } From df8ed9013874456311fc5e1bfe9bac246a45d9e4 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 18 Mar 2017 23:44:42 +0000 Subject: [PATCH 053/133] Ops, forgot to enable reports. Eclipse is bad --- .../src/nautilus/game/arcade/Arcade.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 9c10cf9c2..6478db304 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java @@ -159,10 +159,10 @@ public class Arcade extends JavaPlugin Chat chat = new Chat(this, incognito, _clientManager, preferenceManager, achievementManager, serverStatusManager.getCurrentServerName()); new MessageManager(this, incognito, _clientManager, preferenceManager, ignoreManager, punish, friendManager, chat); -// SnapshotManager snapshotManager = new SnapshotManager(this, new SnapshotRepository(serverStatusManager.getCurrentServerName(), getLogger())); -// ReportManager reportManager = new ReportManager(this, snapshotManager, _clientManager, incognito, punish, serverStatusManager.getRegion(), serverStatusManager.getCurrentServerName(), 1); -// new SnapshotPlugin(this, snapshotManager, _clientManager); -// new ReportPlugin(this, reportManager); + SnapshotManager snapshotManager = new SnapshotManager(this, new SnapshotRepository(serverStatusManager.getCurrentServerName(), getLogger())); + ReportManager reportManager = new ReportManager(this, snapshotManager, _clientManager, incognito, punish, serverStatusManager.getRegion(), serverStatusManager.getCurrentServerName(), 1); + new SnapshotPlugin(this, snapshotManager, _clientManager); + new ReportPlugin(this, reportManager); BlockRestore blockRestore = require(BlockRestore.class); From 18538d918ceacee21add7a7d483848bc211620b4 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 18 Mar 2017 23:51:13 +0000 Subject: [PATCH 054/133] And 2FA wow, this is why you skim read PRs --- .../src/mineplex/core/twofactor/TwoFactorAuth.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/twofactor/TwoFactorAuth.java b/Plugins/Mineplex.Core/src/mineplex/core/twofactor/TwoFactorAuth.java index 02d2705e8..32107d3f6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/twofactor/TwoFactorAuth.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/twofactor/TwoFactorAuth.java @@ -185,7 +185,7 @@ public class TwoFactorAuth extends MiniClientPlugin player.sendMessage(F.main("2FA", "Setting up two-factor authentication.")); } - //@EventHandler + @EventHandler public void onJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); From 05bd93cbdf06e0a7eb632e57c880341c98aedec4 Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 19 Mar 2017 00:01:11 +0000 Subject: [PATCH 055/133] Fixed Death Bomber achievement exploit --- .../arcade/stats/DeathBomberStatTracker.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/DeathBomberStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/DeathBomberStatTracker.java index 90316be6e..61d4b8923 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/DeathBomberStatTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/DeathBomberStatTracker.java @@ -1,17 +1,16 @@ package nautilus.game.arcade.stats; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.entity.EntityDamageEvent; - import mineplex.core.common.util.UtilPlayer; import mineplex.minecraft.game.core.combat.event.CombatDeathEvent; import nautilus.game.arcade.game.Game; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; public class DeathBomberStatTracker extends StatTracker { @@ -52,6 +51,11 @@ public class DeathBomberStatTracker extends StatTracker if(killer.equals(killed)) return; + if (killer.getItemInHand().getType() != Material.TNT) + { + return; + } + if (event.GetLog().GetKiller() != null && event.GetLog().GetKiller().GetReason().contains("Throwing TNT")) { Integer count = _killCount.get(killer.getUniqueId()); From 95d919a654c72967b6105bb5c31569806ea43562 Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 19 Mar 2017 00:07:23 +0000 Subject: [PATCH 056/133] Removed was werid disjointed code --- .../game/arcade/game/games/skywars/kits/KitMetal.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/kits/KitMetal.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/kits/KitMetal.java index 5d6cf5ff5..a5e4be83e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/kits/KitMetal.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/kits/KitMetal.java @@ -90,10 +90,6 @@ public class KitMetal extends ProgressingKit @Override public void GiveItems(Player player) { - int level = getUpgradeLevel(player.getUniqueId()); - - - player.getInventory().addItem(PLAYER_ITEMS); } From 441e2ab30ffdb9006abf195c52b193f173ded349 Mon Sep 17 00:00:00 2001 From: cnr Date: Mon, 20 Mar 2017 01:19:21 -0500 Subject: [PATCH 057/133] Disable 2x XP --- .../src/nautilus/game/arcade/game/Game.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java index 572189cc2..c9f13d3ef 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java @@ -294,7 +294,7 @@ public abstract class Game extends ListenerComponent implements Lifetimed public long PrepareTime = 9000; public boolean PlaySoundGameStart = true; - public double XpMult = 2; + public double XpMult = 1; public boolean SpeedMeasurement = false; From c4c7ebe1e6735a44f55e7f982f9ba69c66f95dcb Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 20 Mar 2017 22:10:20 +0000 Subject: [PATCH 058/133] Check for blocks already registering --- .../games/bridge/animation/custom/CustomBridgeAnimation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/CustomBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/CustomBridgeAnimation.java index 18f45bd3f..fe5e6ed04 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/CustomBridgeAnimation.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/CustomBridgeAnimation.java @@ -181,7 +181,7 @@ public abstract class CustomBridgeAnimation extends BridgeAnimation for (Block block : UtilBlock.getInBoundingBox(locations.get(0), locations.get(1))) { - if (!_blockIds.contains(block.getTypeId())) + if (!_blockIds.contains(block.getTypeId()) || _bridgeBlocks.containsKey(block)) { continue; } From 9afa829f89b77ae5c4c6ab79342b47d010d1b391 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Tue, 21 Mar 2017 15:56:05 -0300 Subject: [PATCH 059/133] Created new gadget item for PPC --- .../fountain/GemFountainSalesPackage.java | 6 +- .../mineplex/core/gadget/GadgetManager.java | 2 + .../mineplex/core/gadget/gadgets/Ammo.java | 10 +- .../arrowtrail/freedom/ArrowTrailFreedom.java | 2 +- .../arrowtrail/titan/ArrowTrailTitan.java | 4 +- .../gadgets/death/titan/DeathTitan.java | 4 +- .../doublejump/titan/DoubleJumpTitan.java | 4 +- .../gamemodifiers/kits/KitGameModifier.java | 2 +- .../GameModifierMineStrikeSkin.java | 2 +- .../core/gadget/gadgets/item/ItemBatGun.java | 25 +++-- .../core/gadget/gadgets/item/ItemBow.java | 4 +- .../gadgets/item/ItemBubbleBlaster.java | 103 ++++++++++++++++++ .../core/gadget/gadgets/item/ItemCoal.java | 47 ++++---- .../gadget/gadgets/item/ItemCoinBomb.java | 2 +- .../gadget/gadgets/item/ItemDuelingSword.java | 4 +- .../gadget/gadgets/item/ItemFleshHook.java | 4 +- .../gadget/gadgets/item/ItemFreezeCannon.java | 8 +- .../gadget/gadgets/item/ItemLovePotion.java | 14 +-- .../gadgets/item/ItemMelonLauncher.java | 2 +- .../gadget/gadgets/item/ItemPaintbrush.java | 8 +- .../gadget/gadgets/item/ItemSnowball.java | 2 +- .../core/gadget/gadgets/item/ItemTNT.java | 2 +- .../core/gadget/gadgets/morph/BlockForm.java | 12 +- .../core/gadget/gadgets/morph/MorphBat.java | 6 +- .../core/gadget/gadgets/morph/MorphBlaze.java | 8 +- .../core/gadget/gadgets/morph/MorphBunny.java | 10 +- .../gadget/gadgets/morph/MorphChicken.java | 4 +- .../gadgets/morph/MorphChristmasKing.java | 8 +- .../core/gadget/gadgets/morph/MorphCow.java | 4 +- .../gadget/gadgets/morph/MorphCreeper.java | 16 +-- .../gadget/gadgets/morph/MorphDinnerbone.java | 8 +- .../gadget/gadgets/morph/MorphEnderman.java | 4 +- .../gadget/gadgets/morph/MorphGoldPot.java | 6 +- .../gadget/gadgets/morph/MorphGrimReaper.java | 4 +- .../gadget/gadgets/morph/MorphLoveDoctor.java | 4 +- .../gadget/gadgets/morph/MorphMetalMan.java | 4 +- .../core/gadget/gadgets/morph/MorphPig.java | 10 +- .../gadgets/morph/MorphPumpkinKing.java | 12 +- .../core/gadget/gadgets/morph/MorphSanta.java | 12 +- .../core/gadget/gadgets/morph/MorphSlime.java | 4 +- .../gadget/gadgets/morph/MorphSnowman.java | 6 +- .../core/gadget/gadgets/morph/MorphSquid.java | 8 +- .../core/gadget/gadgets/morph/MorphStray.java | 6 +- .../core/gadget/gadgets/morph/MorphTitan.java | 18 +-- .../gadget/gadgets/morph/MorphTurkey.java | 4 +- .../gadget/gadgets/morph/MorphUncleSam.java | 4 +- .../gadget/gadgets/morph/MorphVillager.java | 14 +-- .../core/gadget/gadgets/morph/MorphWitch.java | 10 +- .../gadget/gadgets/morph/MorphWither.java | 14 +-- .../gadget/gadgets/outfit/OutfitTeam.java | 6 +- .../outfit/freezesuit/OutfitFreezeSuit.java | 10 +- .../particle/ParticleChristmasTree.java | 2 +- .../gadgets/particle/ParticleCoalFumes.java | 2 +- .../gadgets/particle/ParticleFireRings.java | 2 +- .../gadgets/particle/ParticleKronos.java | 6 +- .../gadgets/particle/ParticleLegend.java | 4 +- .../gadgets/particle/ParticleWingsAngel.java | 2 +- .../gadgets/particle/ParticleWingsDemons.java | 2 +- .../particle/ParticleWingsInfernal.java | 2 +- .../gadgets/particle/ParticleWingsLove.java | 2 +- .../gadgets/particle/ParticleWingsPixie.java | 2 +- .../gadgets/particle/ParticleYinYang.java | 2 +- .../particle/candycane/ParticleCandyCane.java | 2 +- .../particle/cupidslove/ParticleHeart.java | 2 +- .../particle/emerald/ParticleEmerald.java | 2 +- .../particle/freedom/ParticleFreedom.java | 2 +- .../particle/frostlord/ParticleFrostLord.java | 2 +- .../particle/howlingwinds/ParticleRain.java | 2 +- .../gadgets/particle/music/ParticleMusic.java | 4 +- .../particle/party/ParticlePartyTime.java | 4 +- .../gadgets/particle/shadow/ParticleFoot.java | 4 +- .../gadgets/particle/titan/ParticleTitan.java | 6 +- .../particle/vampire/ParticleBlood.java | 2 +- .../particle/wisdom/ParticleEnchant.java | 2 +- .../gadget/gadgets/taunts/EternalTaunt.java | 8 +- .../gadget/gadgets/taunts/RainbowTaunt.java | 2 +- .../wineffect/WinEffectBabyChicken.java | 2 +- .../gadgets/wineffect/WinEffectFireworks.java | 2 +- .../gadgets/wineffect/WinEffectFlames.java | 2 +- .../gadgets/wineffect/WinEffectHalloween.java | 4 +- .../wineffect/WinEffectLightningStrike.java | 2 +- .../WinEffectLoveIsABattlefield.java | 4 +- .../gadgets/wineffect/WinEffectPodium.java | 4 +- .../WinEffectRiseOfTheElderGuardian.java | 10 +- .../wineffect/WinEffectSnowTrails.java | 2 +- .../wineffect/WinEffectWinterWarfare.java | 2 +- .../core/gadget/types/ArrowEffectGadget.java | 4 +- .../core/gadget/types/BalloonGadget.java | 4 +- .../core/gadget/types/DeathEffectGadget.java | 2 +- .../gadget/types/DoubleJumpEffectGadget.java | 2 +- .../mineplex/core/gadget/types/Gadget.java | 50 ++++----- .../mineplex/core/gadget/types/HatGadget.java | 4 +- .../core/gadget/types/ItemGadget.java | 34 ++++-- .../core/gadget/types/MorphGadget.java | 2 +- .../core/gadget/types/MusicGadget.java | 2 +- .../core/gadget/types/OutfitGadget.java | 4 +- .../core/gadget/types/ParticleGadget.java | 4 +- .../core/gadget/types/WinEffectGadget.java | 8 +- .../src/mineplex/core/mount/DragonMount.java | 2 +- .../src/mineplex/core/mount/HorseMount.java | 4 +- .../mineplex/core/mount/types/MountCart.java | 2 +- .../mineplex/core/mount/types/MountSlime.java | 2 +- .../core/particleeffects/BlowAKissEffect.java | 2 +- .../particleeffects/LoveDoctorEffect.java | 4 +- .../core/particleeffects/MetalManEffect.java | 4 +- .../core/pet/sales/PetExtraSalesPackage.java | 6 +- .../core/pet/sales/PetSalesPackage.java | 4 +- .../core/shop/item/SalesPackageBase.java | 63 +++++------ .../mineplex/core/treasure/ChestPackage.java | 4 +- .../mineplex/core/treasure/TreasureKey.java | 4 +- .../goals/classes/SelectBullsChargeGoal.java | 2 +- .../src/mineplex/hub/modules/TextManager.java | 14 +-- .../shop/salespackage/ItemSalesPackage.java | 6 +- .../shop/salespackage/SkillSalesPackage.java | 6 +- .../game/core/condition/ConditionFactory.java | 2 +- .../arcade/game/games/event/EventGame.java | 2 +- .../games/evolution/mobs/KitSkeleton.java | 2 +- .../game/games/evolution/mobs/KitSnowman.java | 2 +- .../game/arcade/kit/perks/PerkDestructor.java | 2 +- .../game/arcade/kit/perks/PerkSquidRifle.java | 2 +- .../arcade/kit/perks/PerkSquidShotgun.java | 2 +- .../arcade/kit/perks/PerkSquidSniper.java | 2 +- .../nautilus/game/arcade/shop/KitPackage.java | 4 +- 123 files changed, 492 insertions(+), 380 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/brawl/fountain/GemFountainSalesPackage.java b/Plugins/Mineplex.Core/src/mineplex/core/brawl/fountain/GemFountainSalesPackage.java index d0ba3e882..e34c8bac1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/brawl/fountain/GemFountainSalesPackage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/brawl/fountain/GemFountainSalesPackage.java @@ -13,8 +13,8 @@ public class GemFountainSalesPackage extends SalesPackageBase { super("Add " + gems + " Gems", Material.EMERALD, (byte) 0, new String[] {}, gems, 1); - CurrencyCostMap.put(GlobalCurrency.GEM, gems); - KnownPackage = false; - OneTimePurchaseOnly = false; + _currencyCostMap.put(GlobalCurrency.GEM, gems); + _knownPackage = false; + _oneTimePurchaseOnly = false; } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java index d2acbf740..55968b074 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java @@ -98,6 +98,7 @@ import mineplex.core.gadget.gadgets.hat.HatItem; import mineplex.core.gadget.gadgets.hat.HatType; import mineplex.core.gadget.gadgets.item.ItemBatGun; import mineplex.core.gadget.gadgets.item.ItemBow; +import mineplex.core.gadget.gadgets.item.ItemBubbleBlaster; import mineplex.core.gadget.gadgets.item.ItemCoal; import mineplex.core.gadget.gadgets.item.ItemCoinBomb; import mineplex.core.gadget.gadgets.item.ItemDuelingSword; @@ -360,6 +361,7 @@ public class GadgetManager extends MiniPlugin addGadget(new ItemBow(this)); addGadget(new ItemLovePotion(this)); addGadget(new ItemFlowerGift(this)); + addGadget(new ItemBubbleBlaster(this)); // Costume addGadget(new OutfitRaveSuitHelmet(this)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/Ammo.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/Ammo.java index 4f6f3b421..366f34d4d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/Ammo.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/Ammo.java @@ -1,16 +1,18 @@ package mineplex.core.gadget.gadgets; -import mineplex.core.shop.item.SalesPackageBase; import org.bukkit.Material; +import mineplex.core.shop.item.SalesPackageBase; + public class Ammo extends SalesPackageBase { public Ammo(String name, String displayName, Material material, byte displayData, String[] description, int coins, int quantity) { super(name, material, displayData, description, coins, quantity); - DisplayName = displayName; - KnownPackage = false; - OneTimePurchaseOnly = false; + _displayName = displayName; + _knownPackage = false; + _oneTimePurchaseOnly = false; + _free = coins == -5; } } 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/freedom/ArrowTrailFreedom.java index 8921b26cc..9641ef4e2 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/freedom/ArrowTrailFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/freedom/ArrowTrailFreedom.java @@ -58,7 +58,7 @@ public class ArrowTrailFreedom extends ArrowEffectGadget @Override public void doHitEffect(Arrow arrow) { - BabyFireworkEffect babyFireworkEffect = new BabyFireworkEffect(arrow.getLocation(), Manager.getPlugin(), _color); + BabyFireworkEffect babyFireworkEffect = new BabyFireworkEffect(arrow.getLocation(), _manager.getPlugin(), _color); babyFireworkEffect.start(); } 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/titan/ArrowTrailTitan.java index 956055929..ed3c9b54f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/titan/ArrowTrailTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/titan/ArrowTrailTitan.java @@ -43,9 +43,9 @@ public class ArrowTrailTitan extends ArrowEffectGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) + if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) { - Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } } 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/titan/DeathTitan.java index 00b64eace..f116b5d65 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/titan/DeathTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/titan/DeathTitan.java @@ -32,9 +32,9 @@ public class DeathTitan extends DeathEffectGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) + if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) { - Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } 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/titan/DoubleJumpTitan.java index 336aaa5bc..f24d33720 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/titan/DoubleJumpTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/titan/DoubleJumpTitan.java @@ -37,9 +37,9 @@ public class DoubleJumpTitan extends DoubleJumpEffectGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) + if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) { - Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/kits/KitGameModifier.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/kits/KitGameModifier.java index d06bffbe8..28bf3f45d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/kits/KitGameModifier.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/kits/KitGameModifier.java @@ -39,7 +39,7 @@ public class KitGameModifier extends GameModifierGadget @Override public void enableCustom(Player player, boolean message) { - Manager.getGameModifiers(getGameType()).stream().filter(getKitFilter(_kitType)).forEach(g -> g.disable(player)); + _manager.getGameModifiers(getGameType()).stream().filter(getKitFilter(_kitType)).forEach(g -> g.disable(player)); super.enableCustom(player, message); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/minestrike/GameModifierMineStrikeSkin.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/minestrike/GameModifierMineStrikeSkin.java index df1cf150f..fb83978b9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/minestrike/GameModifierMineStrikeSkin.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/minestrike/GameModifierMineStrikeSkin.java @@ -86,7 +86,7 @@ public class GameModifierMineStrikeSkin extends GameModifierGadget @Override public void enableCustom(Player player, boolean message) { - Manager.getGameModifiers(getGameType()).stream().filter(getWeaponFilter(_weapon)).forEach(g -> g.disable(player)); + _manager.getGameModifiers(getGameType()).stream().filter(getWeaponFilter(_weapon)).forEach(g -> g.disable(player)); super.enableCustom(player, message); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBatGun.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBatGun.java index 67aa5cc1e..8c90a821a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBatGun.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBatGun.java @@ -1,5 +1,16 @@ package mineplex.core.gadget.gadgets.item; +import java.util.ArrayList; +import java.util.HashMap; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Bat; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.util.Vector; + import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.LineFormat; @@ -20,16 +31,6 @@ import mineplex.core.preferences.Preference; import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.entity.Bat; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.util.Vector; - -import java.util.ArrayList; -import java.util.HashMap; public class ItemBatGun extends ItemGadget { @@ -102,7 +103,7 @@ public class ItemBatGun extends ItemGadget if (other.equals(cur)) continue; - if (!Manager.getPreferencesManager().get(other).isActive(Preference.HUB_GAMES) || !Manager.getPreferencesManager().get(other).isActive(Preference.SHOW_PLAYERS)) + if (!_manager.getPreferencesManager().get(other).isActive(Preference.HUB_GAMES) || !_manager.getPreferencesManager().get(other).isActive(Preference.SHOW_PLAYERS)) continue; if (!Recharge.Instance.usable(other, "Hit by Bat")) @@ -110,7 +111,7 @@ public class ItemBatGun extends ItemGadget if (UtilEnt.hitBox(bat.getLocation(), other, 2, null)) { - if (Manager.collideEvent(cur, this, other)) + if (_manager.collideEvent(cur, this, other)) continue; //Damage Event diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBow.java index 16e78ec14..c909c74fb 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBow.java @@ -92,7 +92,7 @@ public class ItemBow extends ItemGadget UtilText.splitLineToArray(C.cGray + "This symbol of love will live on with you forever! Mainly because we couldn't attach the cupid wings to it. I guess duct tape can't fix everything!", LineFormat.LORE), -6, Material.BOW, (byte) 0, 1000, new Ammo("Cupid Arrow", "Cupid's Arrows", Material.ARROW, (byte) 0, UtilText.splitLineToArray(C.cGray + "Use these arrows to shoot love into people's hearts!", LineFormat.LORE), -6, 15)); - Manager.getPacketManager().addPacketHandler(_packetHandler, PacketPlayOutSpawnEntity.class); + _manager.getPacketManager().addPacketHandler(_packetHandler, PacketPlayOutSpawnEntity.class); } @Override @@ -134,7 +134,7 @@ public class ItemBow extends ItemGadget if (!_arrows.contains(arrow)) return; - Bukkit.getScheduler().runTaskLater(Manager.getPlugin(), new Runnable() + Bukkit.getScheduler().runTaskLater(_manager.getPlugin(), new Runnable() { @Override public void run() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java new file mode 100644 index 000000000..71b5f37b8 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java @@ -0,0 +1,103 @@ +package mineplex.core.gadget.gadgets.item; + +import java.time.Month; +import java.time.YearMonth; + +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Item; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.Action; +import org.bukkit.event.player.PlayerInteractEvent; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.LineFormat; +import mineplex.core.common.util.UtilAction; +import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilGear; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilText; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.gadgets.Ammo; +import mineplex.core.gadget.types.ItemGadget; +import mineplex.core.itemstack.ItemStackFactory; +import mineplex.core.projectile.IThrown; +import mineplex.core.projectile.ProjectileUser; + +public class ItemBubbleBlaster extends ItemGadget implements IThrown +{ + + public ItemBubbleBlaster(GadgetManager manager) + { + super(manager, "Bubble Blaster", UtilText.splitLinesToArray(new String[]{C.cGray + "Placeholder"}, LineFormat.LORE), + -14, Material.DIAMOND_BARDING, (byte) 0, 5000, new Ammo("Bubble", "Bubble", Material.DIAMOND_BARDING, (byte) 0, new String[]{C.cGray + "Placeholder"}, -5, 1), + YearMonth.of(2017, Month.APRIL)); + } + + @Override + public void disableCustom(Player player, boolean message) + { + super.disableCustom(player, message); + } + + @Override + public void ActivateCustom(Player player) + { + + } + + @Override + @EventHandler + public void Activate(PlayerInteractEvent event) + { + if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK) + return; + + if (UtilBlock.usable(event.getClickedBlock())) + return; + + if (!UtilGear.isMat(event.getPlayer().getItemInHand(), this.getDisplayMaterial())) + return; + + Player player = event.getPlayer(); + + if (!isActive(player)) + return; + + event.setCancelled(true); + + player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + + // TODO CHANGE COLOR IF RAINBOW + // TODO COOLDOWN AFTER MAX OF 5 SECONDS HOLDING + // TODO LAUNCH MULTIPLE WHILE HOLDING + Item item = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), ItemStackFactory.Instance.CreateStack(Material.STAINED_GLASS, (byte) UtilMath.random.nextInt(15))); + + UtilAction.velocity(item, player.getLocation().getDirection(), + 1, false, 0, 0.2, 10, false); + + _manager.getProjectileManager().AddThrow(item, player, this, 1000, false, false, false, false, false, 0f); + } + + @Override + public void Collide(LivingEntity target, Block block, ProjectileUser data) + { + + } + + @Override + public void Idle(ProjectileUser data) + { + + } + + @Override + public void Expire(ProjectileUser data) + { + data.getThrown().remove(); + } + +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoal.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoal.java index 118f1b8b9..8b1b2cf60 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoal.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoal.java @@ -3,7 +3,6 @@ package mineplex.core.gadget.gadgets.item; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.Sound; -import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; @@ -83,16 +82,16 @@ public class ItemCoal extends ItemGadget int goal = -1; //Coal Hat - if (!Manager.getHatGadget(HatType.COAL).ownsGadget(player)) + if (!_manager.getHatGadget(HatType.COAL).ownsGadget(player)) { goal = _hat; - if(Manager.getInventoryManager().Get(player).getItemCount(getName()) >= _hat) + if(_manager.getInventoryManager().Get(player).getItemCount(getName()) >= _hat) { Recharge.Instance.recharge(player, getName()); Recharge.Instance.use(player, getName(), 30000, true, true); - Manager.getInventoryManager().addItemToInventory(new Callback() + _manager.getInventoryManager().addItemToInventory(new Callback() { @Override public void run(Boolean data) @@ -104,10 +103,10 @@ public class ItemCoal extends ItemGadget UtilParticle.PlayParticleToAll(ParticleType.LARGE_SMOKE, player.getLocation(), 0.5f, 0.0f, 0.5f, 0, 100, ViewDist.LONG); player.getWorld().playSound(player.getLocation(), Sound.WITHER_DEATH, 0.8f, 0); - Manager.getInventoryManager().addItemToInventory(player, getName(), -_hat); - player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + _manager.getInventoryManager().addItemToInventory(player, getName(), -_hat); + player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); - Manager.getDonationManager().Get(player).addOwnedUnknownSalesPackage("Lump of Coal Hat"); + _manager.getDonationManager().Get(player).addOwnedUnknownSalesPackage("Lump of Coal Hat"); UtilServer.CallEvent(new PlayerUseCoalEvent(player, PlayerUseCoalEvent.CoalReward.HAT, _particle)); } @@ -122,19 +121,19 @@ public class ItemCoal extends ItemGadget } //Coal Apparition - if (!Manager.getPetManager().Get(player).getPets().containsKey(PetType.PIG_ZOMBIE)) + if (!_manager.getPetManager().Get(player).getPets().containsKey(PetType.PIG_ZOMBIE)) { goal = _pet; - if(Manager.getInventoryManager().Get(player).getItemCount(getName()) >= _pet) + if(_manager.getInventoryManager().Get(player).getItemCount(getName()) >= _pet) { Recharge.Instance.recharge(player, getName()); Recharge.Instance.use(player, getName(), 30000, true, true); PetReward reward = new PetReward( - Manager.getPetManager(), - Manager.getInventoryManager(), - Manager.getDonationManager(), + _manager.getPetManager(), + _manager.getInventoryManager(), + _manager.getDonationManager(), "Coal Apparition", "Coal Apparition", PetType.PIG_ZOMBIE, RewardRarity.OTHER, 0, 0); if (reward.canGiveReward(player)) @@ -148,10 +147,10 @@ public class ItemCoal extends ItemGadget UtilParticle.PlayParticleToAll(ParticleType.LARGE_SMOKE, player.getLocation(), 1f, 0.0f, 1f, 0, 250, ViewDist.LONG); player.getWorld().playSound(player.getLocation(), Sound.WITHER_DEATH, 0.8f, 0); - Manager.getInventoryManager().addItemToInventory(player, getName(), -_pet); - player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + _manager.getInventoryManager().addItemToInventory(player, getName(), -_pet); + player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); - Manager.getDonationManager().Get(player).addOwnedUnknownSalesPackage("Coal Apparition"); + _manager.getDonationManager().Get(player).addOwnedUnknownSalesPackage("Coal Apparition"); UtilServer.CallEvent(new PlayerUseCoalEvent(player, PlayerUseCoalEvent.CoalReward.PET, _particle)); } @@ -162,16 +161,16 @@ public class ItemCoal extends ItemGadget } //Coal Particle - if (!Manager.getGadget(ParticleCoalFumes.class).ownsGadget(player)) + if (!_manager.getGadget(ParticleCoalFumes.class).ownsGadget(player)) { goal = _particle; - if(Manager.getInventoryManager().Get(player).getItemCount(getName()) >= _particle) + if(_manager.getInventoryManager().Get(player).getItemCount(getName()) >= _particle) { Recharge.Instance.recharge(player, getName()); Recharge.Instance.use(player, getName(), 30000, true, true); - Manager.getInventoryManager().addItemToInventory(new Callback() + _manager.getInventoryManager().addItemToInventory(new Callback() { @Override public void run(Boolean data) @@ -183,10 +182,10 @@ public class ItemCoal extends ItemGadget UtilParticle.PlayParticleToAll(ParticleType.LARGE_SMOKE, player.getLocation(), 1.5f, 0.0f, 1.5f, 0, 500, ViewDist.LONG); player.getWorld().playSound(player.getLocation(), Sound.WITHER_DEATH, 0.8f, 0); - Manager.getInventoryManager().addItemToInventory(player, getName(), -_particle); - player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + _manager.getInventoryManager().addItemToInventory(player, getName(), -_particle); + player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); - Manager.getDonationManager().Get(player).addOwnedUnknownSalesPackage("Coal Fumes"); + _manager.getDonationManager().Get(player).addOwnedUnknownSalesPackage("Coal Fumes"); UtilServer.CallEvent(new PlayerUseCoalEvent(player, PlayerUseCoalEvent.CoalReward.PARTICLE, _particle)); } @@ -200,7 +199,7 @@ public class ItemCoal extends ItemGadget } } - goal -= Manager.getInventoryManager().Get(player).getItemCount(getName()); + goal -= _manager.getInventoryManager().Get(player).getItemCount(getName()); if (goal > 0 && Math.random() > 0.95) { @@ -239,7 +238,7 @@ public class ItemCoal extends ItemGadget event.setCancelled(true); //Stock - if (Manager.getInventoryManager().Get(player).getItemCount(getName()) <= 0) + if (_manager.getInventoryManager().Get(player).getItemCount(getName()) <= 0) { UtilPlayer.message(player, F.main("Gadget", "You do not have any " + getName() + " left.")); @@ -257,7 +256,7 @@ public class ItemCoal extends ItemGadget return; } - player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); ActivateCustom(event.getPlayer()); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoinBomb.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoinBomb.java index 7334375b3..6d63dacd4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoinBomb.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoinBomb.java @@ -110,7 +110,7 @@ public class ItemCoinBomb extends ItemGadget event.setCancelled(true); event.getItem().remove(); - Manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, event.getPlayer(), getName() + " Pickup", 4); + _manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, event.getPlayer(), getName() + " Pickup", 4); event.getPlayer().getWorld().playSound(event.getPlayer().getLocation(), Sound.ORB_PICKUP, 1f, 2f); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemDuelingSword.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemDuelingSword.java index 09d4499ae..62a2fa0a1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemDuelingSword.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemDuelingSword.java @@ -28,11 +28,11 @@ public class ItemDuelingSword extends ItemGadget @Override public void ApplyItem(Player player, boolean inform) { - Manager.removeGadgetType(player, GadgetType.ITEM); + _manager.removeGadgetType(player, GadgetType.ITEM); _active.add(player); - player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(Material.GOLD_SWORD, (byte)0, 1, "PvP Sword")); + player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(Material.GOLD_SWORD, (byte)0, 1, "PvP Sword")); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFleshHook.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFleshHook.java index 6c454ebff..ee030a9f6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFleshHook.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFleshHook.java @@ -44,7 +44,7 @@ public class ItemFleshHook extends ItemGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 1.6, false, 0, 0.2, 10, false); - Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, + _manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, Sound.FIRE_IGNITE, 1.4f, 0.8f, ParticleType.CRIT, null, 0, UpdateType.TICK, 0.5f); //Inform @@ -67,7 +67,7 @@ public class ItemFleshHook extends ItemGadget implements IThrown if (target == null) return; - if (Manager.collideEvent(player, this, target)) + if (_manager.collideEvent(player, this, target)) return; if (target instanceof ArmorStand) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFreezeCannon.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFreezeCannon.java index ce3e899d1..a08e19136 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFreezeCannon.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFreezeCannon.java @@ -61,7 +61,7 @@ public class ItemFreezeCannon extends ItemGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 1, false, 0, 0.2, 10, false); - Manager.getProjectileManager().AddThrow(item, player, this, 5000, true, true, true, true, + _manager.getProjectileManager().AddThrow(item, player, this, 5000, true, true, true, true, null, 1f, 1f, null, null, 0, UpdateType.TICK, 0.5f); //Inform @@ -81,11 +81,11 @@ public class ItemFreezeCannon extends ItemGadget implements IThrown int ticks = 4 * 20; if(isClear(p.getLocation())) { - Manager.getBlockRestore().add(p.getLocation().getBlock(), Material.STAINED_GLASS.getId(), (byte)5, 0, (byte)0, ticks*50); - Manager.getBlockRestore().add(p.getLocation().getBlock().getRelative(BlockFace.UP), Material.STAINED_GLASS.getId(), (byte)5, 0, (byte)0, ticks*50); + _manager.getBlockRestore().add(p.getLocation().getBlock(), Material.STAINED_GLASS.getId(), (byte)5, 0, (byte)0, ticks*50); + _manager.getBlockRestore().add(p.getLocation().getBlock().getRelative(BlockFace.UP), Material.STAINED_GLASS.getId(), (byte)5, 0, (byte)0, ticks*50); if(p.getLocation().getBlock().getRelative(BlockFace.DOWN).getType() == Material.AIR) { - Manager.getBlockRestore().add(p.getLocation().getBlock().getRelative(BlockFace.DOWN), Material.STAINED_GLASS.getId(), (byte)5, 0, (byte)0, ticks*50); + _manager.getBlockRestore().add(p.getLocation().getBlock().getRelative(BlockFace.DOWN), Material.STAINED_GLASS.getId(), (byte)5, 0, (byte)0, ticks*50); } p.setWalkSpeed(0); _playerMap.put(p, System.currentTimeMillis() + (ticks * 50)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemLovePotion.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemLovePotion.java index f2246773c..22eda4fd1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemLovePotion.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemLovePotion.java @@ -72,16 +72,16 @@ public class ItemLovePotion extends ItemGadget @Override public void ApplyItem(Player player, boolean inform) { - Manager.removeGadgetType(player, GadgetType.ITEM); + _manager.removeGadgetType(player, GadgetType.ITEM); _active.add(player); List itemLore = new ArrayList(); itemLore.addAll(Arrays.asList(getDescription())); itemLore.add(C.cBlack); - itemLore.add(C.cWhite + "Your Ammo : " + Manager.getInventoryManager().Get(player).getItemCount(getName())); + itemLore.add(C.cWhite + "Your Ammo : " + _manager.getInventoryManager().Get(player).getItemCount(getName())); - player.getInventory().setItem(Manager.getActiveItemSlot(), new ItemBuilder(getDisplayMaterial(), getDisplayData()).setTitle(F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName())).setHideInfo(true).build()); + player.getInventory().setItem(_manager.getActiveItemSlot(), new ItemBuilder(getDisplayMaterial(), getDisplayData()).setTitle(F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName())).setHideInfo(true).build()); if (inform) UtilPlayer.message(player, F.main("Gadget", "You equipped " + F.elem(getName()) + ".")); @@ -130,12 +130,12 @@ public class ItemLovePotion extends ItemGadget Recharge.Instance.use(player, getName(), getName(), _recharge, _recharge > 1000, true, false, true, "Cosmetics"); // Cooldown - Manager.getInventoryManager().addItemToInventory(player, getName(), -1); + _manager.getInventoryManager().addItemToInventory(player, getName(), -1); ItemGadgetUseEvent itemGadgetUseEvent = new ItemGadgetUseEvent(player, this, 1); UtilServer.CallEvent(itemGadgetUseEvent); - player.getInventory().setItem(Manager.getActiveItemSlot(), new ItemBuilder(getDisplayMaterial(), getDisplayData()).setTitle(F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName())).setHideInfo(true).build()); + player.getInventory().setItem(_manager.getActiveItemSlot(), new ItemBuilder(getDisplayMaterial(), getDisplayData()).setTitle(F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName())).setHideInfo(true).build()); } @EventHandler @@ -181,9 +181,9 @@ public class ItemLovePotion extends ItemGadget String message = UtilMath.randomElement(DRINK_MESSAGES); UtilPlayer.message(player, F.main("Potion", message)); - Manager.getInventoryManager().addItemToInventory(player, getName(), -1); + _manager.getInventoryManager().addItemToInventory(player, getName(), -1); - player.getInventory().setItem(Manager.getActiveItemSlot(), new ItemBuilder(getDisplayMaterial(), getDisplayData()).setTitle(F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName())).setHideInfo(true).build()); + player.getInventory().setItem(_manager.getActiveItemSlot(), new ItemBuilder(getDisplayMaterial(), getDisplayData()).setTitle(F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName())).setHideInfo(true).build()); ItemGadgetUseEvent itemGadgetUseEvent = new ItemGadgetUseEvent(player, this, 1); UtilServer.CallEvent(itemGadgetUseEvent); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemMelonLauncher.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemMelonLauncher.java index 264118b41..b85871689 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemMelonLauncher.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemMelonLauncher.java @@ -59,7 +59,7 @@ public class ItemMelonLauncher extends ItemGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 1, false, 0, 0.2, 10, false); - Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, + _manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, null, 1f, 1f, null, null, 0, UpdateType.TICK, 0.5f); //Inform diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemPaintbrush.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemPaintbrush.java index 98171d0c3..4ff638648 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemPaintbrush.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemPaintbrush.java @@ -52,14 +52,14 @@ public class ItemPaintbrush extends ItemGadget @Override public void ApplyItem(Player player, boolean inform) { - Manager.removeGadgetType(player, GadgetType.ITEM); + _manager.removeGadgetType(player, GadgetType.ITEM); _active.add(player); List itemLore = new ArrayList(); itemLore.addAll(Arrays.asList(getDescription())); - player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, getName())); + player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, getName())); if (inform) UtilPlayer.message(player, F.main("Gadget", "You equipped " + F.elem(getName()) + ".")); @@ -161,7 +161,7 @@ public class ItemPaintbrush extends ItemGadget continue; //Color - Manager.getBlockRestore().add(block, 35, _brushColor.get(player.getName()), 30000); + _manager.getBlockRestore().add(block, 35, _brushColor.get(player.getName()), 30000); //Join Dots if (_brushPrevious.containsKey(player.getName())) @@ -175,7 +175,7 @@ public class ItemPaintbrush extends ItemGadget if (fixBlock.getType() != Material.WOOL) continue; - Manager.getBlockRestore().add(fixBlock, 35, _brushColor.get(player.getName()), 30000); + _manager.getBlockRestore().add(fixBlock, 35, _brushColor.get(player.getName()), 30000); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemSnowball.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemSnowball.java index ebca74d1f..7d6677593 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemSnowball.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemSnowball.java @@ -55,7 +55,7 @@ public class ItemSnowball extends ItemGadget if(!_snowballs.containsKey(ball)) return; - if(Manager.collideEvent(_snowballs.remove(ball), this, event.getEntity())) return; + if(_manager.collideEvent(_snowballs.remove(ball), this, event.getEntity())) return; if (event.getEntity() instanceof ArmorStand) return; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemTNT.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemTNT.java index eecba68e1..6cfdf587d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemTNT.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemTNT.java @@ -65,7 +65,7 @@ public class ItemTNT extends ItemGadget HashMap players = UtilPlayer.getInRadius(event.getLocation(), 8); for (Player player : players.keySet()) { - if (Manager.collideEvent(killer, this, player)) + if (_manager.collideEvent(killer, this, player)) continue; double mult = players.get(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/BlockForm.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/BlockForm.java index 2b1c13ea3..adc6cea4c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/BlockForm.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/BlockForm.java @@ -69,7 +69,7 @@ public class BlockForm _hiddenDisguise = new DisguiseSlime(player); _hiddenDisguise.setInvisible(true); - _host.Manager.getDisguiseManager().disguise(_hiddenDisguise); + _host._manager.getDisguiseManager().disguise(_hiddenDisguise); this._fallingBlock = _loc.getWorld().spawn(_loc, Slime.class); this._fallingBlock.setSize(0); @@ -92,7 +92,7 @@ public class BlockForm _disguiseBlockBase = new DisguiseSlime(_fallingBlockBase); _disguiseBlockBase.SetSize(0); _disguiseBlockBase.setInvisible(true); - _host.Manager.getDisguiseManager().disguise(_disguiseBlockBase); + _host._manager.getDisguiseManager().disguise(_disguiseBlockBase); reset(); } @@ -103,7 +103,7 @@ public class BlockForm _disguiseBlock = new DisguiseBlock(_fallingBlock, _blockMat.getId(), _blockData); _disguiseBlock.setHideIfNotDisguised(true); - _host.Manager.getDisguiseManager().disguise(_disguiseBlock); + _host._manager.getDisguiseManager().disguise(_disguiseBlock); _fallingBlockBase.setPassenger(_fallingBlock); } @@ -112,7 +112,7 @@ public class BlockForm { if (_disguiseBlock != null) { - _host.Manager.getDisguiseManager().undisguise(_disguiseBlock); + _host._manager.getDisguiseManager().undisguise(_disguiseBlock); _disguiseBlock = null; _fallingBlockBase.setPassenger(null); } @@ -142,8 +142,8 @@ public class BlockForm removeSolidBlock(); removeFallingBlock(); - _host.Manager.getDisguiseManager().undisguise(_hiddenDisguise); - _host.Manager.getDisguiseManager().undisguise(_disguiseBlockBase); + _host._manager.getDisguiseManager().undisguise(_hiddenDisguise); + _host._manager.getDisguiseManager().undisguise(_disguiseBlockBase); _fallingBlockBase.remove(); _fallingBlockBase = null; _fallingBlock.remove(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBat.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBat.java index 4225b2c6b..ada824454 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBat.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBat.java @@ -60,14 +60,14 @@ public class MorphBat extends MorphGadget implements IThrown this.applyArmor(player, message); DisguiseBat disguise = new DisguiseBat(player); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); player.setAllowFlight(false); player.setFlying(false); @@ -113,7 +113,7 @@ public class MorphBat extends MorphGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 0.01, true, -0.3, 0, 10, false); - Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, + _manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, null, 1f, 1f, null, null, 0, UpdateType.TICK, 0.5f); //Inform diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBlaze.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBlaze.java index abd40e459..592ad0b5f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBlaze.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBlaze.java @@ -43,14 +43,14 @@ public class MorphBlaze extends MorphGadget this.applyArmor(player, message); DisguiseBlaze disguise = new DisguiseBlaze(player); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler @@ -81,9 +81,9 @@ public class MorphBlaze extends MorphGadget @EventHandler public void HeroOwner(PlayerJoinEvent event) { - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.HERO)) + if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.HERO)) { - Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBunny.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBunny.java index ef51b27f4..91fb1f916 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBunny.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBunny.java @@ -71,7 +71,7 @@ public class MorphBunny extends MorphGadget this.applyArmor(player, message); DisguiseRabbit disguise = new DisguiseRabbit(player); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 999999999, 1)); player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 999999999, 1)); @@ -82,7 +82,7 @@ public class MorphBunny extends MorphGadget { _jumpCharge.remove(player); this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); player.removePotionEffect(PotionEffectType.SPEED); player.removePotionEffect(PotionEffectType.JUMP); @@ -150,7 +150,7 @@ public class MorphBunny extends MorphGadget if (!UtilEvent.isAction(event, ActionType.L)) return; - if (Manager.getDonationManager().Get(player).getBalance(GlobalCurrency.TREASURE_SHARD) < 500) + if (_manager.getDonationManager().Get(player).getBalance(GlobalCurrency.TREASURE_SHARD) < 500) { UtilPlayer.message(player, F.main("Gadget", "You do not have enough Shards.")); return; @@ -170,7 +170,7 @@ public class MorphBunny extends MorphGadget UtilAction.velocity(egg, player.getLocation().getDirection(), 0.2, false, 0, 0.2, 1, false); - Manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, player, this.getName() + " Egg Hide", -500); + _manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, player, this.getName() + " Egg Hide", -500); egg.setPickupDelay(40); @@ -197,7 +197,7 @@ public class MorphBunny extends MorphGadget event.setCancelled(true); event.getItem().remove(); - Manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, event.getPlayer(), getName() + " Egg Pickup", 450); + _manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, event.getPlayer(), getName() + " Egg Pickup", 450); event.getPlayer().getWorld().playSound(event.getPlayer().getLocation(), Sound.ORB_PICKUP, 1.5f, 0.75f); event.getPlayer().getWorld().playSound(event.getPlayer().getLocation(), Sound.ORB_PICKUP, 1.5f, 1.25f); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChicken.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChicken.java index ce37ddde3..56da39934 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChicken.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChicken.java @@ -49,14 +49,14 @@ public class MorphChicken extends MorphGadget this.applyArmor(player, message); DisguiseChicken disguise = new DisguiseChicken(player); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); player.setAllowFlight(false); player.setFlying(false); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChristmasKing.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChristmasKing.java index 24803972f..398c547b6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChristmasKing.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChristmasKing.java @@ -66,7 +66,7 @@ public class MorphChristmasKing extends MorphGadget DisguiseSkeleton disguise = new DisguiseSkeleton(player); disguise.showArmor(); disguise.SetSkeletonType(SkeletonType.WITHER); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); player.getInventory().setHelmet(new ItemStack(Material.JACK_O_LANTERN)); @@ -78,7 +78,7 @@ public class MorphChristmasKing extends MorphGadget public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); player.getInventory().setHelmet(null); } @@ -119,7 +119,7 @@ public class MorphChristmasKing extends MorphGadget { for (Player player : getActive()) { - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { continue; } @@ -163,7 +163,7 @@ public class MorphChristmasKing extends MorphGadget if (!_snowball.containsKey(proj)) return; - if (Manager.collideEvent(_snowball.remove(proj), this, event.getEntity())) + if (_manager.collideEvent(_snowball.remove(proj), this, event.getEntity())) return; UtilAction.velocity(event.getEntity(), proj.getVelocity().multiply(0.15).add(new Vector(0, 0.15, 0))); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCow.java index f8d334a12..cf7258be7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCow.java @@ -37,14 +37,14 @@ public class MorphCow extends MorphGadget this.applyArmor(player, message); DisguiseCow disguise = new DisguiseCow(player); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCreeper.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCreeper.java index bcce06361..54396a316 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCreeper.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCreeper.java @@ -51,14 +51,14 @@ public class MorphCreeper extends MorphGadget this.applyArmor(player, message); DisguiseCreeper disguise = new DisguiseCreeper(player); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler @@ -111,7 +111,7 @@ public class MorphCreeper extends MorphGadget if (other.equals(player)) continue; - if (Manager.collideEvent(player, this, other)) + if (_manager.collideEvent(player, this, other)) continue; double mult = players.get(other); @@ -127,7 +127,7 @@ public class MorphCreeper extends MorphGadget public DisguiseCreeper GetDisguise(Player player) { - DisguiseBase disguise = Manager.getDisguiseManager().getDisguise(player); + DisguiseBase disguise = _manager.getDisguiseManager().getDisguise(player); if (disguise == null) return null; @@ -152,7 +152,7 @@ public class MorphCreeper extends MorphGadget creeper.a(-1); - Manager.getDisguiseManager().updateDisguise(creeper); + _manager.getDisguiseManager().updateDisguise(creeper); } public void IncreaseSize(Player player) @@ -162,15 +162,15 @@ public class MorphCreeper extends MorphGadget creeper.a(1); - Manager.getDisguiseManager().updateDisguise(creeper); + _manager.getDisguiseManager().updateDisguise(creeper); } @EventHandler public void HeroOwner(PlayerJoinEvent event) { - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.HERO)) + if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.HERO)) { - Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphDinnerbone.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphDinnerbone.java index ba67af21c..0f2907d90 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphDinnerbone.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphDinnerbone.java @@ -10,7 +10,6 @@ import java.util.UUID; import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.EntityArmorStand; -import net.minecraft.server.v1_8_R3.EntitySlime; import net.minecraft.server.v1_8_R3.MathHelper; import net.minecraft.server.v1_8_R3.PacketPlayOutAttachEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; @@ -33,7 +32,6 @@ import mineplex.core.Managers; import mineplex.core.account.CoreClientManager; import mineplex.core.common.DummyEntity; import mineplex.core.common.Rank; -import mineplex.core.common.skin.SkinData; import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilEnt; @@ -92,7 +90,7 @@ public class MorphDinnerbone extends MorphGadget implements IPacketHandler disguisePlayer.setSendSkinDataToSelf(false); disguisePlayer.setReplaceOriginalName(false, 10); disguisePlayer.showInTabList(true, 0); - UtilMorph.disguise(player, disguisePlayer, Manager); + UtilMorph.disguise(player, disguisePlayer, _manager); } @Override @@ -100,7 +98,7 @@ public class MorphDinnerbone extends MorphGadget implements IPacketHandler { removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @Override @@ -120,7 +118,7 @@ public class MorphDinnerbone extends MorphGadget implements IPacketHandler } Player owner = (Player) entity; - if (Manager.getActive(owner, GadgetType.MORPH) == this) + if (_manager.getActive(owner, GadgetType.MORPH) == this) { summonForEntity(packetInfo.getPlayer(), owner); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphEnderman.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphEnderman.java index 761003e4d..1ee120535 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphEnderman.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphEnderman.java @@ -48,14 +48,14 @@ public class MorphEnderman extends MorphGadget this.applyArmor(player, message); DisguiseEnderman disguise = new DisguiseEnderman(player); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); player.setAllowFlight(false); player.setFlying(false); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGoldPot.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGoldPot.java index 017c3642f..bf2ce7239 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGoldPot.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGoldPot.java @@ -47,10 +47,10 @@ public class MorphGoldPot extends MorphGadget { applyArmor(player, message); - _helpers.put(player, new GoldPotHelper(player, Manager, this)); + _helpers.put(player, new GoldPotHelper(player, _manager, this)); DisguiseBlock disguiseBlock = new DisguiseBlock(player, Material.CAULDRON, (byte) 0); - UtilMorph.disguise(player, disguiseBlock, Manager); + UtilMorph.disguise(player, disguiseBlock, _manager); } @Override @@ -65,7 +65,7 @@ public class MorphGoldPot extends MorphGadget _helpers.remove(player); } - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGrimReaper.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGrimReaper.java index 44c761772..5fbabe83e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGrimReaper.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGrimReaper.java @@ -98,7 +98,7 @@ public class MorphGrimReaper extends MorphGadget skeleton.setChestplate(blackChest); skeleton.setLeggings(blackPants); skeleton.setBoots(blackBoots); - UtilMorph.disguise(player, skeleton, Manager.getDisguiseManager()); + UtilMorph.disguise(player, skeleton, _manager.getDisguiseManager()); } @Override @@ -110,7 +110,7 @@ public class MorphGrimReaper extends MorphGadget _flying.remove(player); _flyReady.remove(player); _soulManager.resetSouls(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); player.getInventory().setItem(2, new ItemStack(Material.AIR)); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphLoveDoctor.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphLoveDoctor.java index 1a96f75d1..0f277d2c5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphLoveDoctor.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphLoveDoctor.java @@ -47,7 +47,7 @@ public class MorphLoveDoctor extends MorphGadget DisguisePlayer disguisePlayer = new DisguisePlayer(player, gameProfile); disguisePlayer.showInTabList(true, 0); - UtilMorph.disguise(player, disguisePlayer, Manager); + UtilMorph.disguise(player, disguisePlayer, _manager); } @Override @@ -55,7 +55,7 @@ public class MorphLoveDoctor extends MorphGadget { removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphMetalMan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphMetalMan.java index 06838168e..729f4e534 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphMetalMan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphMetalMan.java @@ -72,7 +72,7 @@ public class MorphMetalMan extends MorphGadget DisguisePlayer disguisePlayer = new DisguisePlayer(player, gameProfile); disguisePlayer.showInTabList(true, 0); - UtilMorph.disguise(player, disguisePlayer, Manager); + UtilMorph.disguise(player, disguisePlayer, _manager); player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, Integer.MAX_VALUE, 1, true, false)); } @@ -82,7 +82,7 @@ public class MorphMetalMan extends MorphGadget { removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); if (_playerColors.containsKey(player.getUniqueId())) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPig.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPig.java index d45504531..974e068cc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPig.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPig.java @@ -53,14 +53,14 @@ public class MorphPig extends MorphGadget this.applyArmor(player, message); DisguisePig disguise = new DisguisePig(player); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler @@ -84,9 +84,9 @@ public class MorphPig extends MorphGadget @EventHandler public void HeroOwner(PlayerJoinEvent event) { - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.ULTRA)) + if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.ULTRA)) { - Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } @@ -136,7 +136,7 @@ public class MorphPig extends MorphGadget if (UtilMath.offset(player, other) > range) continue; - if (Manager.collideEvent(player, this, other)) + if (_manager.collideEvent(player, this, other)) continue; //Cooldown diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPumpkinKing.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPumpkinKing.java index cb13b4ff5..96e89e3f2 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPumpkinKing.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPumpkinKing.java @@ -67,7 +67,7 @@ public class MorphPumpkinKing extends MorphGadget DisguiseSkeleton disguise = new DisguiseSkeleton(player); disguise.showArmor(); disguise.SetSkeletonType(SkeletonType.WITHER); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); player.getInventory().setHelmet(new ItemStack(Material.JACK_O_LANTERN)); @@ -79,7 +79,7 @@ public class MorphPumpkinKing extends MorphGadget public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); player.getInventory().setHelmet(null); } @@ -106,7 +106,7 @@ public class MorphPumpkinKing extends MorphGadget { for (Player player : getActive()) { - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { continue; } @@ -140,7 +140,7 @@ public class MorphPumpkinKing extends MorphGadget _ent = spawnLocation.getWorld().dropItem(spawnLocation, new ItemBuilder(Material.APPLE).setTitle(new Random().nextDouble() + "").build()); _ent.setPickupDelay(Integer.MAX_VALUE); _disguise = new DisguiseBlock(_ent, Material.JACK_O_LANTERN.getId(), 0); - Manager.getDisguiseManager().disguise(_disguise); + _manager.getDisguiseManager().disguise(_disguise); _detonation = System.currentTimeMillis() + 7000; _done = false; } @@ -157,7 +157,7 @@ public class MorphPumpkinKing extends MorphGadget Map players = UtilPlayer.getInRadius(_ent.getLocation(), 8); for (Player player : players.keySet()) { - if (Manager.collideEvent(_user, MorphPumpkinKing.this, player)) + if (_manager.collideEvent(_user, MorphPumpkinKing.this, player)) continue; double mult = players.get(player); @@ -165,7 +165,7 @@ public class MorphPumpkinKing extends MorphGadget //Knockback UtilAction.velocity(player, UtilAlg.getTrajectory(_ent.getLocation(), player.getLocation()), 1 * mult, false, 0, 0.5 + 0.5 * mult, 10, true); } - Manager.getDisguiseManager().undisguise(_disguise); + _manager.getDisguiseManager().undisguise(_disguise); _ent.remove(); _done = true; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSanta.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSanta.java index 7c857694b..36d6eafe3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSanta.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSanta.java @@ -67,7 +67,7 @@ public class MorphSanta extends MorphGadget DisguisePlayer disguisePlayer = new DisguisePlayer(player, profile); disguisePlayer.showInTabList(true, 0); - UtilMorph.disguise(player, disguisePlayer, Manager); + UtilMorph.disguise(player, disguisePlayer, _manager); } @Override @@ -75,7 +75,7 @@ public class MorphSanta extends MorphGadget { removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler @@ -103,7 +103,7 @@ public class MorphSanta extends MorphGadget { int shards = UtilMath.rRange(250, 500); - if (Manager.getDonationManager().Get(player).getBalance(GlobalCurrency.TREASURE_SHARD) < shards + SHARD_CHARGE) + if (_manager.getDonationManager().Get(player).getBalance(GlobalCurrency.TREASURE_SHARD) < shards + SHARD_CHARGE) { UtilPlayer.message(player, F.main("Gadget", "You do not have enough Shards.")); return; @@ -116,7 +116,7 @@ public class MorphSanta extends MorphGadget SkinData.PRESENT.getSkull("Hidden Present " + System.currentTimeMillis(), new ArrayList<>())); UtilAction.velocity(present, player.getLocation().getDirection(), 0.2, false, 0, 0.2, 1, false); - Manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, player, this.getName() + " Present Hide", -(shards + SHARD_CHARGE)); + _manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, player, this.getName() + " Present Hide", -(shards + SHARD_CHARGE)); present.setPickupDelay(40); @@ -189,7 +189,7 @@ public class MorphSanta extends MorphGadget if (santaPresent.getPresentType().equals(SantaPresent.PresentType.PRESENT)) { - Manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, event.getPlayer(), getName() + " Present Pickup", santaPresent.getAmmo()); + _manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, event.getPlayer(), getName() + " Present Pickup", santaPresent.getAmmo()); //Announce Bukkit.broadcastMessage(C.cGold + C.Bold + event.getPlayer().getName() + @@ -200,7 +200,7 @@ public class MorphSanta extends MorphGadget else if (santaPresent.getPresentType().equals(SantaPresent.PresentType.COAL)) { // Gives coals - Manager.getInventoryManager().addItemToInventory(event.getPlayer(), "Coal", santaPresent.getAmmo()); + _manager.getInventoryManager().addItemToInventory(event.getPlayer(), "Coal", santaPresent.getAmmo()); //Announce Bukkit.broadcastMessage(C.cGold + C.Bold + event.getPlayer().getName() + diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSlime.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSlime.java index 925934a72..492b89837 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSlime.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSlime.java @@ -60,14 +60,14 @@ public class MorphSlime extends MorphGadget disguise.SetSize(size); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSnowman.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSnowman.java index 25326feff..2f429b00b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSnowman.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSnowman.java @@ -60,14 +60,14 @@ public class MorphSnowman extends MorphGadget this.applyArmor(player, message); DisguiseSnowman disguise = new DisguiseSnowman(player); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler @@ -141,7 +141,7 @@ public class MorphSnowman extends MorphGadget if (!_snowball.containsKey(proj)) return; - if(Manager.collideEvent(_snowball.remove(proj), this, event.getEntity())) return; + if(_manager.collideEvent(_snowball.remove(proj), this, event.getEntity())) return; UtilAction.velocity(event.getEntity(), proj.getVelocity().multiply(0.15).add(new Vector(0, 0.15, 0))); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSquid.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSquid.java index 096f453fd..6e16287d2 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSquid.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSquid.java @@ -54,7 +54,7 @@ public class MorphSquid extends MorphGadget implements IThrown { applyArmor(player, message); DisguiseSquid disguiseSquid = new DisguiseSquid(player); - UtilMorph.disguise(player, disguiseSquid, Manager); + UtilMorph.disguise(player, disguiseSquid, _manager); onToggleSwim(new PlayerToggleSwimEvent(player, SwimManager.isSwimming(player.getUniqueId()), SwimManager.isInLava(player.getUniqueId()))); } @@ -62,7 +62,7 @@ public class MorphSquid extends MorphGadget implements IThrown public void disableCustom(Player player, boolean message) { removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler @@ -89,7 +89,7 @@ public class MorphSquid extends MorphGadget implements IThrown if (event.isSwimming()) { // Removes any costume player could be wearing - Manager.removeOutfit(event.getPlayer(), OutfitGadget.ArmorSlot.BOOTS); + _manager.removeOutfit(event.getPlayer(), OutfitGadget.ArmorSlot.BOOTS); // Adds enchanted boot ItemStack enchantedBoot = new ItemStack(Material.DIAMOND_BOOTS, 1); @@ -126,7 +126,7 @@ public class MorphSquid extends MorphGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 0.01, true, -0.3, 1.5, 10, false); - Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, + _manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, null, 1f, 1f, null, null, 0, UpdateType.TICK, 0.5f); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphStray.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphStray.java index 8a6571d36..457f864d8 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphStray.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphStray.java @@ -49,7 +49,7 @@ public class MorphStray extends MorphGadget // TODO CHECK IF LOBBY IS 1.9+ applyArmor(player, message); DisguiseSquid disguiseSquid = new DisguiseSquid(player); - UtilMorph.disguise(player, disguiseSquid, Manager); + UtilMorph.disguise(player, disguiseSquid, _manager); // Gives bow and arrow ItemStack bow = ItemStackFactory.Instance.CreateStack(Material.BOW, (byte) 0, 1, C.cGreen + "Stray Bow", UtilText.splitLinesToArray(new String[]{"Placeholder"}, LineFormat.LORE)); @@ -61,7 +61,7 @@ public class MorphStray extends MorphGadget public void disableCustom(Player player, boolean message) { removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); // Removes bow and arrow player.getInventory().setItem(2, new ItemStack(Material.AIR)); @@ -84,7 +84,7 @@ public class MorphStray extends MorphGadget _strayArrows.add((Arrow) event.getProjectile()); - Bukkit.getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() + Bukkit.getScheduler().scheduleSyncDelayedTask(_manager.getPlugin(), new Runnable() { @Override public void run() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTitan.java index 24cd35247..31dd8d69b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTitan.java @@ -65,14 +65,14 @@ public class MorphTitan extends MorphGadget DisguiseGuardian disguise = new DisguiseGuardian(player); disguise.setElder(true); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); player.setAllowFlight(false); player.setFlying(false); @@ -96,7 +96,7 @@ public class MorphTitan extends MorphGadget if (!Recharge.Instance.use(player, "Guardians Laser", 6000, true, false, "Cosmetics")) return; - DisguiseBase base = Manager.getDisguiseManager().getDisguise(player); + DisguiseBase base = _manager.getDisguiseManager().getDisguise(player); if (base == null || !(base instanceof DisguiseGuardian)) return; @@ -130,7 +130,7 @@ public class MorphTitan extends MorphGadget disguise.setTarget(stand.getEntityId()); - Manager.getDisguiseManager().updateDisguise(disguise); + _manager.getDisguiseManager().updateDisguise(disguise); //Fake Head UtilEnt.setFakeHead(player, true); @@ -154,7 +154,7 @@ public class MorphTitan extends MorphGadget for (Player ent : players.keySet()) { if (ent instanceof Player) - if (Manager.collideEvent(event.GetPlayer(), this, (Player)ent)) + if (_manager.collideEvent(event.GetPlayer(), this, (Player)ent)) continue; double mult = players.get(ent); @@ -170,14 +170,14 @@ public class MorphTitan extends MorphGadget } //Disguise - DisguiseBase base = Manager.getDisguiseManager().getDisguise(event.GetPlayer()); + DisguiseBase base = _manager.getDisguiseManager().getDisguise(event.GetPlayer()); if (base == null || !(base instanceof DisguiseGuardian)) return; DisguiseGuardian disguise = (DisguiseGuardian)base; disguise.setTarget(0); - Manager.getDisguiseManager().updateDisguise(disguise); + _manager.getDisguiseManager().updateDisguise(disguise); } } @@ -225,9 +225,9 @@ public class MorphTitan extends MorphGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) + if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) { - Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTurkey.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTurkey.java index 6fc6a2f90..0f628fca6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTurkey.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTurkey.java @@ -46,14 +46,14 @@ public class MorphTurkey extends MorphGadget DisguisePlayer disguisePlayer = new DisguisePlayer(player, profile); disguisePlayer.showInTabList(true, 0); - UtilMorph.disguise(player, disguisePlayer, Manager); + UtilMorph.disguise(player, disguisePlayer, _manager); } @Override public void disableCustom(Player player, boolean message) { removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphUncleSam.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphUncleSam.java index 55ea3a9ba..99e6d0eee 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphUncleSam.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphUncleSam.java @@ -49,7 +49,7 @@ public class MorphUncleSam extends MorphGadget DisguisePlayer disguisePlayer = new DisguisePlayer(player, profile); disguisePlayer.showInTabList(true, 0); - UtilMorph.disguise(player, disguisePlayer, Manager); + UtilMorph.disguise(player, disguisePlayer, _manager); } @Override @@ -57,7 +57,7 @@ public class MorphUncleSam extends MorphGadget { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphVillager.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphVillager.java index 729c115b0..2e1fac522 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphVillager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphVillager.java @@ -60,14 +60,14 @@ public class MorphVillager extends MorphGadget implements IThrown this.applyArmor(player, message); DisguiseVillager disguise = new DisguiseVillager(player); - UtilMorph.disguise(player, disguise, Manager); + UtilMorph.disguise(player, disguise, _manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } @EventHandler @@ -81,7 +81,7 @@ public class MorphVillager extends MorphGadget implements IThrown if (!UtilEvent.isAction(event, ActionType.L)) return; - if (Manager.getDonationManager().Get(player).getBalance(GlobalCurrency.GEM) < 20) + if (_manager.getDonationManager().Get(player).getBalance(GlobalCurrency.GEM) < 20) { UtilPlayer.message(player, F.main("Gadget", "You do not have enough Gems.")); return; @@ -97,10 +97,10 @@ public class MorphVillager extends MorphGadget implements IThrown UtilAction.velocity(gem, player.getLocation().getDirection(), 1, false, 0, 0.2, 1, false); //Throw - Manager.getProjectileManager().AddThrow(gem, player, this, -1, true, true, true, true, + _manager.getProjectileManager().AddThrow(gem, player, this, -1, true, true, true, true, null, 1.4f, 0.8f, null, null, 0, UpdateType.TICK, 0.5f); - Manager.getDonationManager().rewardCurrency(GlobalCurrency.GEM, player, this.getName() + " Throw", -20); + _manager.getDonationManager().rewardCurrency(GlobalCurrency.GEM, player, this.getName() + " Throw", -20); gem.setPickupDelay(40); @@ -114,7 +114,7 @@ public class MorphVillager extends MorphGadget implements IThrown return; if (target instanceof Player) - if (Manager.collideEvent((Player) data.getThrower(), this, (Player) target)) + if (_manager.collideEvent((Player) data.getThrower(), this, (Player) target)) return; //Pull @@ -150,7 +150,7 @@ public class MorphVillager extends MorphGadget implements IThrown event.setCancelled(true); event.getItem().remove(); - Manager.getDonationManager().rewardCurrency(GlobalCurrency.GEM, event.getPlayer(), getName() + " Pickup", 16); + _manager.getDonationManager().rewardCurrency(GlobalCurrency.GEM, event.getPlayer(), getName() + " Pickup", 16); event.getPlayer().getWorld().playSound(event.getPlayer().getLocation(), Sound.ORB_PICKUP, 1f, 2f); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWitch.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWitch.java index d394b3e87..0ff6b9b7a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWitch.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWitch.java @@ -42,7 +42,7 @@ public class MorphWitch extends MorphGadget { this.applyArmor(player, message); DisguiseWitch disguiseWitch = new DisguiseWitch(player); - UtilMorph.disguise(player, disguiseWitch, Manager); + UtilMorph.disguise(player, disguiseWitch, _manager); } @Override @@ -54,7 +54,7 @@ public class MorphWitch extends MorphGadget { witchEffectManager.stop(); } - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); } public ItemStack getWitchItem() @@ -100,14 +100,14 @@ public class MorphWitch extends MorphGadget } // Checks if player is opening a treasure chest/close to a treasure area - if (Manager.getTreasureManager() != null) + if (_manager.getTreasureManager() != null) { - if (Manager.getTreasureManager().isOpening(event.getPlayer())) + if (_manager.getTreasureManager().isOpening(event.getPlayer())) { UtilPlayer.message(event.getPlayer(), F.main("Witch Morph", "You can't place the cauldron there!")); return; } - for (Location blockLocation : Manager.getTreasureManager().getBlockLocations()) + for (Location blockLocation : _manager.getTreasureManager().getBlockLocations()) { if (blockLocation.distanceSquared(cauldronLocation) <= 25) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWither.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWither.java index 59f9bcb46..6f827539a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWither.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWither.java @@ -65,7 +65,7 @@ public class MorphWither extends MorphGadget player.setHealth(300); DisguiseWither disguise = new DisguiseWither(player); - UtilMorph.disguise(player, disguise, Manager, true); + UtilMorph.disguise(player, disguise, _manager, true); player.setMaxHealth(20); player.setHealth(20); @@ -75,7 +75,7 @@ public class MorphWither extends MorphGadget public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); player.setAllowFlight(false); player.setFlying(false); @@ -127,7 +127,7 @@ public class MorphWither extends MorphGadget HashMap players = UtilPlayer.getInRadius(event.getLocation(), 6); for (Player player : players.keySet()) { - if (Manager.collideEvent((Player) skull.getShooter(), this, player)) + if (_manager.collideEvent((Player) skull.getShooter(), this, player)) continue; double mult = players.get(player); @@ -181,9 +181,9 @@ public class MorphWither extends MorphGadget public void legendOwner(PlayerJoinEvent event) { // TODO HARDCODED Wither Morph Database Item Id - 550 - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.LEGEND)) + if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.LEGEND)) { - Manager.getInventoryManager().Get(event.getPlayer()).addItem(new ClientItem(new Item(550, getName()), 1)); + _manager.getInventoryManager().Get(event.getPlayer()).addItem(new ClientItem(new Item(550, getName()), 1)); } } @@ -195,7 +195,7 @@ public class MorphWither extends MorphGadget { Player player = activeIterator.next(); - DisguiseBase disguise = Manager.getDisguiseManager().getDisguise(player); + DisguiseBase disguise = _manager.getDisguiseManager().getDisguise(player); if (disguise == null || !(disguise instanceof DisguiseWither)) { @@ -206,7 +206,7 @@ public class MorphWither extends MorphGadget ((DisguiseWither)disguise).setName(text); ((DisguiseWither)disguise).setHealth((float) (healthPercent * 300)); - Manager.getDisguiseManager().updateDisguise(disguise); + _manager.getDisguiseManager().updateDisguise(disguise); } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/OutfitTeam.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/OutfitTeam.java index bcda0800d..3aa1734ea 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/OutfitTeam.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/OutfitTeam.java @@ -50,16 +50,16 @@ public class OutfitTeam extends OutfitGadget } enableCustom(player, true); - Manager.setActive(player, this); + _manager.setActive(player, this); Bukkit.getServer().getPluginManager().callEvent(new GadgetAppliedEvent(player, this)); } @Override public void applyArmor(Player player, boolean message) { - Manager.removeGadgetType(player, GadgetType.MORPH); + _manager.removeGadgetType(player, GadgetType.MORPH); - Manager.removeOutfit(player, _slot); + _manager.removeOutfit(player, _slot); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/freezesuit/OutfitFreezeSuit.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/freezesuit/OutfitFreezeSuit.java index 0cba46733..62cfc46fc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/freezesuit/OutfitFreezeSuit.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/freezesuit/OutfitFreezeSuit.java @@ -130,13 +130,13 @@ public class OutfitFreezeSuit extends OutfitGadget for (Block block : blocks.keySet()) { - if (Manager.getTreasureManager() != null) + if (_manager.getTreasureManager() != null) { - if (Manager.getTreasureManager().isOpening(player)) + if (_manager.getTreasureManager().isOpening(player)) { forceBreak= true; } - for (Location blockLocation : Manager.getTreasureManager().getBlockLocations()) + for (Location blockLocation : _manager.getTreasureManager().getBlockLocations()) { if (blockLocation.distanceSquared(block.getLocation()) <= 25) { @@ -150,7 +150,7 @@ public class OutfitFreezeSuit extends OutfitGadget if (!setBlocks) continue; - Manager.getBlockRestore().snow(block, (byte) 1, (byte) 1, (int) (DURATION * (1 + blocks.get(block))), 250, 0); + _manager.getBlockRestore().snow(block, (byte) 1, (byte) 1, (int) (DURATION * (1 + blocks.get(block))), 250, 0); } } } @@ -180,7 +180,7 @@ public class OutfitFreezeSuit extends OutfitGadget else { block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, 79); - Manager.getBlockRestore().add(block, 79, (byte) 0, MELT_TIME); + _manager.getBlockRestore().add(block, 79, (byte) 0, MELT_TIME); } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleChristmasTree.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleChristmasTree.java index 8261df65c..4d919a826 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleChristmasTree.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleChristmasTree.java @@ -38,7 +38,7 @@ public class ParticleChristmasTree extends ParticleGadget { if (!_effects.containsKey(player.getUniqueId())) { - ChristmasTreeEffect christmasTreeEffect = new ChristmasTreeEffect(Manager.getPlugin(), player, Manager); + ChristmasTreeEffect christmasTreeEffect = new ChristmasTreeEffect(_manager.getPlugin(), player, _manager); christmasTreeEffect.start(); _effects.put(player.getUniqueId(), christmasTreeEffect); } 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 467db55d2..2c816f6f6 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 @@ -33,7 +33,7 @@ public class ParticleCoalFumes extends ParticleGadget int amount = 5; ParticleType type = ParticleType.LARGE_SMOKE; - if(Manager.isMoving(player)) + if(_manager.isMoving(player)) { xz = 0.4f; amount = 2; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFireRings.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFireRings.java index 0a2298be6..86cbdf972 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFireRings.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFireRings.java @@ -31,7 +31,7 @@ public class ParticleFireRings extends ParticleGadget { if (event.getType() != UpdateType.TICK) return; - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { UtilParticle.PlayParticle(ParticleType.FLAME, player.getLocation().add(0, 1f, 0), 0.2f, 0.2f, 0.2f, 0, 1, ViewDist.NORMAL, UtilServer.getPlayers()); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleKronos.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleKronos.java index 92239bdfd..e6914496b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleKronos.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleKronos.java @@ -47,16 +47,16 @@ public class ParticleKronos extends ParticleGadget if (!_glass.containsKey(player)) _glass.put(player, new ParticleKronosData(player)); - _glass.get(player).update(Manager.isMoving(player)); + _glass.get(player).update(_manager.isMoving(player)); } @EventHandler public void titanOwner(PlayerJoinEvent event) { - /*Until it becomes purchasable*/if (Manager.getClientManager().Get(event.getPlayer()).GetRank().equals(Rank.TITAN)) + /*Until it becomes purchasable*/if (_manager.getClientManager().Get(event.getPlayer()).GetRank().equals(Rank.TITAN)) //if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) { - Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } 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..12ead8eb2 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 @@ -40,9 +40,9 @@ public class ParticleLegend extends ParticleGadget public void legendOwner(PlayerJoinEvent event) { // TODO HARDCODED Legendary Aura Database Item Id - 552 - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.LEGEND)) + if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.LEGEND)) { - Manager.getInventoryManager().Get(event.getPlayer()).addItem(new ClientItem(new Item(552, getName()), 1)); + _manager.getInventoryManager().Get(event.getPlayer()).addItem(new ClientItem(new Item(552, getName()), 1)); } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsAngel.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsAngel.java index f781ff3c9..25fef8b4d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsAngel.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsAngel.java @@ -32,7 +32,7 @@ public class ParticleWingsAngel extends ParticleGadget public void playParticle(Player player, UpdateEvent event) { Location loc = player.getLocation().add(0, 1.2, 0).add(player.getLocation().getDirection().multiply(-0.2)); - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { if (event.getType() == UpdateType.TICK) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsDemons.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsDemons.java index ca1f4f584..089c0a121 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsDemons.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsDemons.java @@ -34,7 +34,7 @@ public class ParticleWingsDemons extends ParticleGadget public void playParticle(Player player, UpdateEvent event) { Location loc = player.getLocation().add(0, 1.2, 0).add(player.getLocation().getDirection().multiply(-0.2)); - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { if (event.getType() == UpdateType.FASTEST) UtilParticle.playParticleFor(player, ParticleType.SMOKE, loc, 0.3f, 0.2f, 0.3f, 0, 10, ViewDist.NORMAL); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsInfernal.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsInfernal.java index e5710f604..9e7f6694c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsInfernal.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsInfernal.java @@ -32,7 +32,7 @@ public class ParticleWingsInfernal extends ParticleGadget public void playParticle(Player player, UpdateEvent event) { Location loc = player.getLocation().add(0, 1.2, 0).add(player.getLocation().getDirection().multiply(-0.2)); - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { if (event.getType() == UpdateType.TICK) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsLove.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsLove.java index 3ad307040..9776ddec0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsLove.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsLove.java @@ -38,7 +38,7 @@ public class ParticleWingsLove extends ParticleGadget public void playParticle(Player player, UpdateEvent event) { Location loc = player.getLocation().add(0, 1.2, 0).add(player.getLocation().getDirection().multiply(-0.2)); - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { if (event.getType() == UpdateType.TICK) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsPixie.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsPixie.java index dd2003c9b..dcde0b02f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsPixie.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsPixie.java @@ -32,7 +32,7 @@ public class ParticleWingsPixie extends ParticleGadget { Location loc = player.getLocation().add(0, 1.2, 0).add(player.getLocation().getDirection().multiply(-0.2)); - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { if (event.getType() == UpdateType.TICK) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleYinYang.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleYinYang.java index 19cd7705c..5f13b1e3c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleYinYang.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleYinYang.java @@ -47,7 +47,7 @@ public class ParticleYinYang extends ParticleGadget RechargeData r = Recharge.Instance.Get(player).get("Yin and Yang Move"); - if(Manager.isMoving(player)) + if(_manager.isMoving(player)) { long time = 50; if(r != null) 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/candycane/ParticleCandyCane.java index 4d8b223fc..a6e76fd63 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/candycane/ParticleCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/candycane/ParticleCandyCane.java @@ -35,7 +35,7 @@ public class ParticleCandyCane extends ParticleGadget { if (event.getType() != UpdateType.TICK) return; - boolean moving = Manager.isMoving(player); + boolean moving = _manager.isMoving(player); Location loc = player.getLocation(); float y = moving ? 0.2f : 0.15f; double yadd = getY(player); 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/cupidslove/ParticleHeart.java index dea6a85aa..35fbfeb97 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/cupidslove/ParticleHeart.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/cupidslove/ParticleHeart.java @@ -33,7 +33,7 @@ public class ParticleHeart extends ParticleGadget { if (event.getType() != UpdateType.FASTEST) return; - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { if(getSet() == null || !getSet().isActive(player)) return; 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/emerald/ParticleEmerald.java index 417587dbb..6fefeb799 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/emerald/ParticleEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/emerald/ParticleEmerald.java @@ -40,7 +40,7 @@ public class ParticleEmerald extends ParticleGadget if(getSet() == null || !getSet().isActive(player)) return; - if(Manager.isMoving(player)) + if(_manager.isMoving(player)) { UtilParticle.PlayParticle(ParticleType.HAPPY_VILLAGER, player.getLocation().add(0, 0.2, 0), 0.3f, 0f, 0.3f, 0, 2, ViewDist.NORMAL, UtilServer.getPlayers()); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedom.java index bafa31183..577d6a981 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedom.java @@ -38,7 +38,7 @@ public class ParticleFreedom extends ParticleGadget @Override public void startEffect(Player player) { - _effects.put(player.getUniqueId(), new FreedomFireworkEffect(player, Manager.getPlugin(), true)); + _effects.put(player.getUniqueId(), new FreedomFireworkEffect(player, _manager.getPlugin(), true)); _effects.get(player.getUniqueId()).start(); } 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/frostlord/ParticleFrostLord.java index 62c1388b3..4abe120c0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/frostlord/ParticleFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/frostlord/ParticleFrostLord.java @@ -30,7 +30,7 @@ public class ParticleFrostLord extends ParticleGadget { if (event.getType() != UpdateType.TICK) return; - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { UtilParticle.PlayParticle(ParticleType.SNOW_SHOVEL, player.getLocation().add(0, 1, 0), 0.2f, 0.2f, 0.2f, 0, 4, ViewDist.NORMAL, UtilServer.getPlayers()); 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/howlingwinds/ParticleRain.java index f2c45007c..8d72f79ca 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/howlingwinds/ParticleRain.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/howlingwinds/ParticleRain.java @@ -35,7 +35,7 @@ public class ParticleRain extends ParticleGadget { if (event.getType() != UpdateType.TICK) return; - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { UtilParticle.playParticleFor(player, ParticleType.SPLASH, player.getLocation(), 0.2f, 0, 0.2f, 0, 6, ViewDist.NORMAL); } 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/music/ParticleMusic.java index 04874fffc..59332a626 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/music/ParticleMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/music/ParticleMusic.java @@ -29,7 +29,7 @@ public class ParticleMusic extends ParticleGadget @Override public void playParticle(Player player, UpdateEvent event) { - boolean moving = Manager.isMoving(player); + boolean moving = _manager.isMoving(player); UpdateType type = moving? UpdateType.FASTER : UpdateType.FAST; if (event.getType() != type) return; @@ -76,7 +76,7 @@ public class ParticleMusic extends ParticleGadget if(red == 0) red = 0.00001; double step2 = Math.PI/12; - if(Manager.isMoving(player)) step2 = Math.PI/2; + if(_manager.isMoving(player)) step2 = Math.PI/2; for(double rad2 = 0; rad2 < Math.PI*2; rad2 += step2) { 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/party/ParticlePartyTime.java index 3aab6f928..27e62d969 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/party/ParticlePartyTime.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/party/ParticlePartyTime.java @@ -57,7 +57,7 @@ public class ParticlePartyTime extends ParticleGadget for (int i = 0; i < 1; i++) { String particle = ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, list.get(i)); - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { UtilParticle.playParticleFor(player, particle, player.getLocation().add(0, 1, 0), null, 0.08f, 1, ViewDist.NORMAL); } @@ -82,7 +82,7 @@ public class ParticlePartyTime extends ParticleGadget _hiddenDrops.computeIfAbsent(player, key -> new HashSet<>()).add(item); DisguiseArmorStand stand = new DisguiseArmorStand(item); stand.setInvisible(true); - Manager.getDisguiseManager().disguise(stand); + _manager.getDisguiseManager().disguise(stand); String particle = ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, data); UtilParticle.playParticleFor(player, particle, spawnLoc, null, 0.08f, 30, ViewDist.NORMAL); 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/shadow/ParticleFoot.java index 9c3b8be54..8eae12cac 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/shadow/ParticleFoot.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/shadow/ParticleFoot.java @@ -4,10 +4,8 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; -import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.Sound; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -50,7 +48,7 @@ public class ParticleFoot extends ParticleGadget _foot = !_foot; - if (!Manager.isMoving(player)) return; + if (!_manager.isMoving(player)) return; if (!UtilEnt.isGrounded(player)) return; 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/titan/ParticleTitan.java index b5f02de23..d8984e476 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/titan/ParticleTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/titan/ParticleTitan.java @@ -49,7 +49,7 @@ public class ParticleTitan extends ParticleGadget double r = 3; boolean redstone = false; - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { UtilParticle.playParticleFor(player, ParticleType.FLAME, player.getLocation().add(0, 0.1, 0), 0.2f, 0.1f, 0.2f, 0.015f, 3, ViewDist.NORMAL); return; @@ -94,9 +94,9 @@ public class ParticleTitan extends ParticleGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) + if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) { - Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } } 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/vampire/ParticleBlood.java index a33078067..849dbff1b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/vampire/ParticleBlood.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/vampire/ParticleBlood.java @@ -30,7 +30,7 @@ public class ParticleBlood extends ParticleGadget { if (event.getType() != UpdateType.TICK) return; - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { UtilParticle.playParticleFor(player, ParticleType.RED_DUST, player.getLocation().add(0, 1, 0), 0.2f, 0.2f, 0.2f, 0, 2, ViewDist.NORMAL); } 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/wisdom/ParticleEnchant.java index f8d734e74..dbda9f2c4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/wisdom/ParticleEnchant.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/wisdom/ParticleEnchant.java @@ -31,7 +31,7 @@ public class ParticleEnchant extends ParticleGadget { if (event.getType() != UpdateType.TICK) return; - if (Manager.isMoving(player)) + if (_manager.isMoving(player)) { UtilParticle.PlayParticle(ParticleType.ENCHANTMENT_TABLE, player.getLocation().add(0, 1, 0), 0.2f, 0.2f, 0.2f, 0, 4, ViewDist.NORMAL, UtilServer.getPlayers()); 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 53e6a7793..145144147 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 @@ -68,7 +68,7 @@ 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); + UtilMorph.disguise(player, disguiseSkeleton, _manager); } @Override @@ -113,7 +113,7 @@ public class EternalTaunt extends TauntGadget @Override public void onFinish(Player player) { - UtilMorph.undisguise(player, Manager.getDisguiseManager()); + UtilMorph.undisguise(player, _manager.getDisguiseManager()); if (_clocks.containsKey(player.getUniqueId())) { _clocks.get(player.getUniqueId()).forEach(c -> c.remove()); @@ -125,9 +125,9 @@ public class EternalTaunt extends TauntGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.ETERNAL)) + if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.ETERNAL)) { - Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } 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..9628c38be 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 @@ -48,7 +48,7 @@ public class RainbowTaunt extends TauntGadget Location start = player.getLocation().clone().add(sideA.multiply(4).toLocation(player.getWorld())); Location end = player.getLocation().clone().add(sideB.multiply(4).toLocation(player.getWorld())); - RainbowTauntEffect rainbowTauntEffect = new RainbowTauntEffect(start, Manager.getPlugin()); + RainbowTauntEffect rainbowTauntEffect = new RainbowTauntEffect(start, _manager.getPlugin()); rainbowTauntEffect.setTargetLocation(new EffectLocation(end)); rainbowTauntEffect.start(); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectBabyChicken.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectBabyChicken.java index d7d20aa75..2294fa0ed 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectBabyChicken.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectBabyChicken.java @@ -125,7 +125,7 @@ public class WinEffectBabyChicken extends WinEffectGadget { _chicken.getWorld().playSound(_chicken.getLocation(), Sound.CHICKEN_IDLE, 1, (float) (1 + Math.random()*0.6)); - Hologram hologram = new Hologram(Manager.getHologramManager(), _chicken.getEyeLocation(), C.Italics + "BAWK"); + Hologram hologram = new Hologram(_manager.getHologramManager(), _chicken.getEyeLocation(), C.Italics + "BAWK"); _text.put(hologram, Vector.getRandom().subtract(Vector.getRandom()).normalize().multiply(0.4).setY(0.6)); hologram.start(); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFireworks.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFireworks.java index 18b3fb26d..a7e8199ed 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFireworks.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFireworks.java @@ -45,7 +45,7 @@ public class WinEffectFireworks extends WinEffectGadget start.setDirection(new Vector(1, 0, 0)); _npc = getNPC(_player, start); - AnimatorEntity animator = new AnimatorEntity(Manager.getPlugin(), _npc.getEntity().getBukkitEntity()); + AnimatorEntity animator = new AnimatorEntity(_manager.getPlugin(), _npc.getEntity().getBukkitEntity()); for(double rad = 0; rad < Math.PI*2; rad+= Math.PI/points) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFlames.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFlames.java index 8a0760799..03f56b951 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFlames.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFlames.java @@ -49,7 +49,7 @@ public class WinEffectFlames extends WinEffectGadget start.setDirection(new Vector(1, 0, 0)); _npc = getNPC(_player, start); - AnimatorEntity animator = new AnimatorEntity(Manager.getPlugin(), _npc.getEntity().getBukkitEntity()); + AnimatorEntity animator = new AnimatorEntity(_manager.getPlugin(), _npc.getEntity().getBukkitEntity()); for(double rad = 0; rad < Math.PI*2; rad+= Math.PI/points) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectHalloween.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectHalloween.java index d40136327..be41eb54d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectHalloween.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectHalloween.java @@ -173,11 +173,11 @@ public class WinEffectHalloween extends WinEffectGadget BabyFireworkEffect babyFireworkEffect; if (i %2 == 0) { - babyFireworkEffect = new BabyFireworkEffect((randomLoc) ? randLocation : entityLocation, Manager.getPlugin(), color); + babyFireworkEffect = new BabyFireworkEffect((randomLoc) ? randLocation : entityLocation, _manager.getPlugin(), color); } else { - babyFireworkEffect = new BabyFireworkEffect((randomLoc) ? randLocation : entityLocation, Manager.getPlugin(), Color.ORANGE, Color.BLACK); + babyFireworkEffect = new BabyFireworkEffect((randomLoc) ? randLocation : entityLocation, _manager.getPlugin(), Color.ORANGE, Color.BLACK); } // Starts without the firework trail babyFireworkEffect.setCount(6); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLightningStrike.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLightningStrike.java index e159d74bd..3edd2858b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLightningStrike.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLightningStrike.java @@ -29,7 +29,7 @@ public class WinEffectLightningStrike extends WinEffectGadget public void play() { final DisguisePlayer player = getNPC(this._player, getBaseLocation()); - Bukkit.getScheduler().runTaskLater(Manager.getPlugin(), + Bukkit.getScheduler().runTaskLater(_manager.getPlugin(), new Runnable() { public void run() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLoveIsABattlefield.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLoveIsABattlefield.java index 9b31c73fa..3164313ba 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLoveIsABattlefield.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLoveIsABattlefield.java @@ -50,7 +50,7 @@ public class WinEffectLoveIsABattlefield extends WinEffectGadget { _npc = getNPC(this._player, getBaseLocation()); - AnimatorEntity animator = new AnimatorEntity(Manager.getPlugin(), _npc.getEntity().getBukkitEntity()); + AnimatorEntity animator = new AnimatorEntity(_manager.getPlugin(), _npc.getEntity().getBukkitEntity()); animator.addPoint(new AnimationPoint(20, new Vector(0,0,0), new Vector(-1, 0.5, 0))); animator.addPoint(new AnimationPoint(40, new Vector(0,0,0), new Vector( 0, 0.5,-1))); @@ -103,7 +103,7 @@ public class WinEffectLoveIsABattlefield extends WinEffectGadget @Override public void finish() { - Manager.getDisguiseManager().undisguise(_npc); + _manager.getDisguiseManager().undisguise(_npc); _npc = null; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectPodium.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectPodium.java index 3dc52ff95..90a17799b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectPodium.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectPodium.java @@ -32,7 +32,7 @@ public class WinEffectPodium extends WinEffectGadget { _npc = getNPC(this._player, getBaseLocation()); - AnimatorEntity animator = new AnimatorEntity(Manager.getPlugin(), _npc.getEntity().getBukkitEntity()); + AnimatorEntity animator = new AnimatorEntity(_manager.getPlugin(), _npc.getEntity().getBukkitEntity()); animator.addPoint(new AnimationPoint( 20, new Vector(0,0,0), new Vector(-1, 0.5, 0))); animator.addPoint(new AnimationPoint( 40, new Vector(0,0,0), new Vector( 0, 0.5,-1))); @@ -78,7 +78,7 @@ public class WinEffectPodium extends WinEffectGadget @Override public void finish() { - Manager.getDisguiseManager().undisguise(_npc); + _manager.getDisguiseManager().undisguise(_npc); _npc = null; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectRiseOfTheElderGuardian.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectRiseOfTheElderGuardian.java index 6539f59c0..2304574df 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectRiseOfTheElderGuardian.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectRiseOfTheElderGuardian.java @@ -62,7 +62,7 @@ public class WinEffectRiseOfTheElderGuardian extends WinEffectGadget stand.setGravity(false); DisguiseGuardian g = new DisguiseGuardian(stand); - Manager.getDisguiseManager().disguise(g); + _manager.getDisguiseManager().disguise(g); _guardians.add(g); } @@ -91,7 +91,7 @@ public class WinEffectRiseOfTheElderGuardian extends WinEffectGadget for(DisguiseGuardian g : _guardians) { g.setTarget(_npcPlayer.getEntityId()); - Manager.getDisguiseManager().updateDisguise(g); + _manager.getDisguiseManager().updateDisguise(g); } } @@ -113,17 +113,17 @@ public class WinEffectRiseOfTheElderGuardian extends WinEffectGadget for(DisguiseGuardian g : _guardians) { g.setTarget(0); - Manager.getDisguiseManager().updateDisguise(g); + _manager.getDisguiseManager().updateDisguise(g); } ArmorStand stand = (ArmorStand) _npcPlayer.getEntity().getBukkitEntity(); - Manager.getDisguiseManager().undisguise(stand); + _manager.getDisguiseManager().undisguise(stand); _npcGuardian = new DisguiseGuardian(stand); _npcGuardian.setElder(true); - Manager.getDisguiseManager().disguise(_npcGuardian); + _manager.getDisguiseManager().disguise(_npcGuardian); } _tick++; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectSnowTrails.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectSnowTrails.java index 42a8c5115..f0edca603 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectSnowTrails.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectSnowTrails.java @@ -48,7 +48,7 @@ public class WinEffectSnowTrails extends WinEffectGadget start.setDirection(new Vector(1, 0, 0)); _npc = getNPC(_player, start); - AnimatorEntity animator = new AnimatorEntity(Manager.getPlugin(), _npc.getEntity().getBukkitEntity()); + AnimatorEntity animator = new AnimatorEntity(_manager.getPlugin(), _npc.getEntity().getBukkitEntity()); for(double rad = 0; rad < Math.PI*2; rad+= Math.PI/points) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectWinterWarfare.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectWinterWarfare.java index 67a9abe9c..bf9ef4fcd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectWinterWarfare.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectWinterWarfare.java @@ -76,7 +76,7 @@ public class WinEffectWinterWarfare extends WinEffectGadget @Override public void finish() { - Manager.getDisguiseManager().undisguise(_npc); + _manager.getDisguiseManager().undisguise(_npc); _npc = null; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ArrowEffectGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ArrowEffectGadget.java index 4d3b5b0d4..735047344 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ArrowEffectGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ArrowEffectGadget.java @@ -29,7 +29,7 @@ public abstract class ArrowEffectGadget extends Gadget if (UtilPlayer.isSpectator(player)) return false; - if (Manager.hideParticles()) + if (_manager.hideParticles()) return false; return true; @@ -38,7 +38,7 @@ public abstract class ArrowEffectGadget extends Gadget @EventHandler public void arrowLaunch(ProjectileLaunchEvent event) { - if (Manager.hideParticles()) + if (_manager.hideParticles()) return; if (event.getEntity() instanceof Arrow) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/BalloonGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/BalloonGadget.java index 4a5ad6f60..3d97ba38f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/BalloonGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/BalloonGadget.java @@ -49,7 +49,7 @@ public abstract class BalloonGadget extends Gadget } else { - Manager.removeActive(player, this); + _manager.removeActive(player, this); UtilPlayer.message(player, F.main("Gadget", "You cannot have more than " + F.count("10") + " balloons!")); } } @@ -152,7 +152,7 @@ public abstract class BalloonGadget extends Gadget if (event.getFrom().getY() > 0) return; - for (BalloonGadget balloonGadget : Manager.getActiveBalloons(event.getPlayer())) + for (BalloonGadget balloonGadget : _manager.getActiveBalloons(event.getPlayer())) { balloonGadget.disable(event.getPlayer(), false); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DeathEffectGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DeathEffectGadget.java index 35eeb4737..7aafae5a6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DeathEffectGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DeathEffectGadget.java @@ -20,7 +20,7 @@ public abstract class DeathEffectGadget extends Gadget if (UtilPlayer.isSpectator(player)) return false; - if (Manager.hideParticles()) + if (_manager.hideParticles()) return false; return true; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DoubleJumpEffectGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DoubleJumpEffectGadget.java index e1076dba7..6d2ffbb37 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DoubleJumpEffectGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DoubleJumpEffectGadget.java @@ -20,7 +20,7 @@ public abstract class DoubleJumpEffectGadget extends Gadget if (UtilPlayer.isSpectator(player)) return false; - if (Manager.hideParticles()) + if (_manager.hideParticles()) return false; return true; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/Gadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/Gadget.java index 141885d0c..b165ed3ff 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/Gadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/Gadget.java @@ -22,20 +22,16 @@ import mineplex.core.shop.item.SalesPackageBase; public abstract class Gadget extends SalesPackageBase implements Listener { - public GadgetManager Manager; + public GadgetManager _manager; private GadgetType _gadgetType; protected HashSet _active = new HashSet<>(); - protected GadgetSet _set = null; private String[] _alternativePackageNames; - - private boolean _free; - + private boolean _freeGadget; private YearMonth _yearMonth = null; - private ItemStack _displayItem = null; public Gadget(GadgetManager manager, GadgetType gadgetType, String name, String[] desc, int cost, Material mat, byte data) @@ -53,15 +49,15 @@ public abstract class Gadget extends SalesPackageBase implements Listener super(name, mat, data, desc, cost, quantity); _gadgetType = gadgetType; - KnownPackage = false; - _free = false; + _knownPackage = false; + _freeGadget = false; _alternativePackageNames = alternativesalepackageNames; if(_alternativePackageNames == null) { _alternativePackageNames = new String[0]; } - Manager = manager; + _manager = manager; - Manager.getPlugin().getServer().getPluginManager().registerEvents(this, Manager.getPlugin()); + _manager.getPlugin().getServer().getPluginManager().registerEvents(this, _manager.getPlugin()); } public Gadget(GadgetManager manager, GadgetType gadgetType, String name, String[] desc, int cost, Material mat, byte data, YearMonth yearMonth, int quantity, String... alternativesalepackageNames) @@ -69,32 +65,32 @@ public abstract class Gadget extends SalesPackageBase implements Listener super(name, mat, data, desc, cost, quantity); _gadgetType = gadgetType; - KnownPackage = false; - _free = false; + _knownPackage = false; + _freeGadget = false; _yearMonth = yearMonth; _alternativePackageNames = alternativesalepackageNames; if(_alternativePackageNames == null) { _alternativePackageNames = new String[0]; } - Manager = manager; + _manager = manager; - Manager.getPlugin().getServer().getPluginManager().registerEvents(this, Manager.getPlugin()); + _manager.getPlugin().getServer().getPluginManager().registerEvents(this, _manager.getPlugin()); } - public Gadget(GadgetManager manager, GadgetType gadgetType, String name, String[] desc, int cost, Material mat, byte data, int quantity, boolean free, String... alternativesalepackageNames) + public Gadget(GadgetManager manager, GadgetType gadgetType, String name, String[] desc, int cost, Material mat, byte data, int quantity, boolean freeGadget, String... alternativesalepackageNames) { super(name, mat, data, desc, cost, quantity); _gadgetType = gadgetType; - KnownPackage = false; - _free = free; + _knownPackage = false; + _freeGadget = freeGadget; _alternativePackageNames = alternativesalepackageNames; if(_alternativePackageNames == null) { _alternativePackageNames = new String[0]; } - Manager = manager; + _manager = manager; - Manager.getPlugin().getServer().getPluginManager().registerEvents(this, Manager.getPlugin()); + _manager.getPlugin().getServer().getPluginManager().registerEvents(this, _manager.getPlugin()); } public GadgetType getGadgetType() @@ -141,7 +137,7 @@ public abstract class Gadget extends SalesPackageBase implements Listener return; } - Manager.setActive(player, this); + _manager.setActive(player, this); enableCustom(player, message); Bukkit.getServer().getPluginManager().callEvent(new GadgetAppliedEvent(player, this)); } @@ -161,7 +157,7 @@ public abstract class Gadget extends SalesPackageBase implements Listener { if (isActive(player)) { - Manager.removeActive(player, this); + _manager.removeActive(player, this); GadgetDisableEvent event = new GadgetDisableEvent(player, this); Bukkit.getServer().getPluginManager().callEvent(event); disableCustom(player, message); @@ -170,7 +166,7 @@ public abstract class Gadget extends SalesPackageBase implements Listener public void enableCustom(Player player, boolean message) { - Manager.removeGadgetType(player, _gadgetType, this); + _manager.removeGadgetType(player, _gadgetType, this); _active.add(player); if (message) UtilPlayer.message(player, F.main("Gadget", "You enabled " + F.elem(getName()) + ".")); @@ -184,14 +180,14 @@ public abstract class Gadget extends SalesPackageBase implements Listener public boolean ownsGadget(Player player) { - if(isFree() || _free) { return true; } - if(Manager.getDonationManager().Get(player).ownsUnknownSalesPackage(getName())) { return true; } - if(Manager.getInventoryManager().Get(player).getItemCount(getName()) > 0) { return true; } + if(isFree() || _freeGadget) { return true; } + if(_manager.getDonationManager().Get(player).ownsUnknownSalesPackage(getName())) { return true; } + if(_manager.getInventoryManager().Get(player).getItemCount(getName()) > 0) { return true; } for(String alt : _alternativePackageNames) { - if(Manager.getDonationManager().Get(player).ownsUnknownSalesPackage(alt)) { return true; } - if(Manager.getInventoryManager().Get(player).getItemCount(alt) > 0) { return true; } + if(_manager.getDonationManager().Get(player).ownsUnknownSalesPackage(alt)) { return true; } + if(_manager.getInventoryManager().Get(player).getItemCount(alt) > 0) { return true; } } return false; 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..7684c5f5d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/HatGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/HatGadget.java @@ -46,9 +46,9 @@ public abstract class HatGadget extends OutfitGadget public void applyArmor(Player player, boolean message) { - Manager.removeGadgetType(player, GadgetType.MORPH, this); + _manager.removeGadgetType(player, GadgetType.MORPH, this); - Manager.removeOutfit(player, _slot); + _manager.removeOutfit(player, _slot); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ItemGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ItemGadget.java index 82a685892..693bafc8f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ItemGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ItemGadget.java @@ -1,5 +1,6 @@ package mineplex.core.gadget.types; +import java.time.YearMonth; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; @@ -40,7 +41,17 @@ public abstract class ItemGadget extends Gadget _ammo = ammo; _recharge = recharge; - Free = true; + this._free = true; + } + + public ItemGadget(GadgetManager manager, String name, String[] desc, int cost, Material mat, byte data, + long recharge, Ammo ammo, YearMonth yearMonth) + { + super(manager, GadgetType.ITEM, name, desc, cost, mat, data, yearMonth); + + _ammo = ammo; + _recharge = recharge; + this._free = true; } public ItemGadget(GadgetManager manager, String name, String[] desc, int cost, Material mat, byte data, @@ -75,16 +86,16 @@ public abstract class ItemGadget extends Gadget public void ApplyItem(Player player, boolean inform) { - Manager.removeGadgetType(player, GadgetType.ITEM, this); + _manager.removeGadgetType(player, GadgetType.ITEM, this); _active.add(player); List itemLore = new ArrayList(); itemLore.addAll(Arrays.asList(getDescription())); itemLore.add(C.cBlack); - itemLore.add(C.cWhite + "Your Ammo : " + Manager.getInventoryManager().Get(player).getItemCount(getName())); + itemLore.add(C.cWhite + "Your Ammo : " + _manager.getInventoryManager().Get(player).getItemCount(getName())); - player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); if (inform) UtilPlayer.message(player, F.main("Gadget", "You equipped " + F.elem(getName()) + ".")); @@ -100,14 +111,14 @@ public abstract class ItemGadget extends Gadget final Player player = event.getPlayer(); - Bukkit.getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() + Bukkit.getScheduler().scheduleSyncDelayedTask(_manager.getPlugin(), new Runnable() { public void run() { if (player.isOnline()) { player.getInventory().remove(getDisplayMaterial()); - player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); UtilInv.Update(player); } } @@ -119,7 +130,7 @@ public abstract class ItemGadget extends Gadget { if (_active.remove(player)) { - player.getInventory().setItem(Manager.getActiveItemSlot(), null); + player.getInventory().setItem(_manager.getActiveItemSlot(), null); if (message) UtilPlayer.message(player, F.main("Gadget", "You unequipped " + F.elem(getName()) + ".")); @@ -156,7 +167,7 @@ public abstract class ItemGadget extends Gadget event.setCancelled(true); //Stock - if (!hasAmmo(player)) + if (!hasAmmo(player) && !_ammo.isFree()) { UtilPlayer.message(player, F.main("Gadget", "You do not have any " + getName() + " left.")); @@ -183,16 +194,17 @@ public abstract class ItemGadget extends Gadget return; } - Manager.getInventoryManager().addItemToInventory(player, getName(), -1); + if (!_ammo.isFree()) + _manager.getInventoryManager().addItemToInventory(player, getName(), -1); - player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); ActivateCustom(event.getPlayer()); } public boolean hasAmmo(Player player) { - return Manager.getInventoryManager().Get(player).getItemCount(getName()) > 0; + return _manager.getInventoryManager().Get(player).getItemCount(getName()) > 0; } public abstract void ActivateCustom(Player 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 ff08e8152..f681fe3bd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MorphGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MorphGadget.java @@ -25,7 +25,7 @@ public abstract class MorphGadget extends Gadget public void applyArmor(Player player, boolean message) { - Manager.removeGadgetType(player, GadgetType.MORPH, this); + _manager.removeGadgetType(player, GadgetType.MORPH, this); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MusicGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MusicGadget.java index 708e5e5a6..5f8df9f09 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MusicGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MusicGadget.java @@ -51,7 +51,7 @@ public class MusicGadget extends Gadget return; } - if (!Manager.canPlaySongAt(player.getLocation())) + if (!_manager.canPlaySongAt(player.getLocation())) { UtilPlayer.message(player, F.main("Music", "There is already a song playing.")); return; 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..2ddae9ad4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java @@ -59,9 +59,9 @@ public abstract class OutfitGadget extends Gadget public void applyArmor(Player player, boolean message) { - Manager.removeGadgetType(player, GadgetType.MORPH, this); + _manager.removeGadgetType(player, GadgetType.MORPH, this); - Manager.removeOutfit(player, _slot); + _manager.removeOutfit(player, _slot); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ParticleGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ParticleGadget.java index 06af3908b..68e60f9b0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ParticleGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ParticleGadget.java @@ -33,7 +33,7 @@ public abstract class ParticleGadget extends Gadget @Override public void enableCustom(Player player, boolean message) { - Manager.removeGadgetType(player, GadgetType.PARTICLE, this); + _manager.removeGadgetType(player, GadgetType.PARTICLE, this); _active.add(player); startEffect(player); if (message) @@ -55,7 +55,7 @@ public abstract class ParticleGadget extends Gadget if (UtilPlayer.isSpectator(player)) return false; - if (Manager.hideParticles()) + if (_manager.hideParticles()) return false; return true; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/WinEffectGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/WinEffectGadget.java index 403161cc9..a119e7162 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/WinEffectGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/WinEffectGadget.java @@ -123,7 +123,7 @@ public abstract class WinEffectGadget extends Gadget // Loads gadgets back when players are teleported to the arcade hub, after the win effect for (Player player : UtilServer.getPlayers()) { - Manager.getUserGadgetPersistence().load(player); + _manager.getUserGadgetPersistence().load(player); } } } @@ -310,7 +310,7 @@ public abstract class WinEffectGadget extends Gadget profile.getProperties().putAll(((CraftPlayer) player).getHandle().getProfile().getProperties()); DisguisePlayer disguise = new DisguisePlayer(stand, profile); - Manager.getDisguiseManager().disguise(disguise); + _manager.getDisguiseManager().disguise(disguise); return disguise; } @@ -334,7 +334,7 @@ public abstract class WinEffectGadget extends Gadget profile.getProperties().put("textures", skinData.getProperty()); DisguisePlayer disguise = new DisguisePlayer(stand, profile); - Manager.getDisguiseManager().disguise(disguise); + _manager.getDisguiseManager().disguise(disguise); return disguise; } @@ -465,7 +465,7 @@ public abstract class WinEffectGadget extends Gadget */ protected String getRank(Player player) { - return Manager.getClientManager().Get(player).getRealOrDisguisedRank().getTag(true, true) + " " + C.Reset; + return _manager.getClientManager().Get(player).getRealOrDisguisedRank().getTag(true, true) + " " + C.Reset; } public int getGameTime() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/DragonMount.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/DragonMount.java index 242e21dfa..3ab15c9f8 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/DragonMount.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/DragonMount.java @@ -12,7 +12,7 @@ public class DragonMount extends Mount { super (manager, name, displayMaterial, displayData, desc, cost); - KnownPackage = false; + _knownPackage = false; } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/HorseMount.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/HorseMount.java index f383958b4..edb368243 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/HorseMount.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/HorseMount.java @@ -36,7 +36,7 @@ public class HorseMount extends Mount> public HorseMount(MountManager manager, String name, String[] desc, Material displayMaterial, byte displayData, int cost, Color color, Style style, Variant variant, double jump, Material armor) { super (manager, name, displayMaterial, displayData, desc, cost); - KnownPackage = false; + _knownPackage = false; _color = color; _style = style; @@ -48,7 +48,7 @@ public class HorseMount extends Mount> public HorseMount(MountManager manager, String name, String[] desc, Material displayMaterial, byte displayData, int cost, Color color, Style style, Variant variant, double jump, Material armor, YearMonth yearMonth) { super (manager, name, displayMaterial, displayData, desc, cost, yearMonth); - KnownPackage = false; + _knownPackage = false; _color = color; _style = style; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountCart.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountCart.java index a1f9f5a5b..d9c605cc3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountCart.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountCart.java @@ -33,7 +33,7 @@ public class MountCart extends Mount> UtilText.splitLineToArray(C.cGray + "Cruise around town in your shiny new Minecart RX Turbo!", LineFormat.LORE), 15000); - KnownPackage = false; + _knownPackage = false; } public void enableCustom(Player player) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountSlime.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountSlime.java index 265601406..8bcc250ef 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountSlime.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountSlime.java @@ -34,7 +34,7 @@ public class MountSlime extends Mount> UtilText.splitLineToArray(C.cGray + "Bounce around on your very own slime friend!", LineFormat.LORE), 15000); - KnownPackage = false; + _knownPackage = false; } public void enableCustom(Player player) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/BlowAKissEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/BlowAKissEffect.java index 066521459..e49e1e453 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/BlowAKissEffect.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/BlowAKissEffect.java @@ -23,7 +23,7 @@ public class BlowAKissEffect extends Effect public BlowAKissEffect(Player player, Location target, Gadget gadget) { - super(-1, new EffectLocation(player), gadget.Manager.getPlugin()); + super(-1, new EffectLocation(player), gadget._manager.getPlugin()); _gadget = gadget; _player = player; setTargetLocation(new EffectLocation(target)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/LoveDoctorEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/LoveDoctorEffect.java index 85c293e6f..718816efc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/LoveDoctorEffect.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/LoveDoctorEffect.java @@ -28,7 +28,7 @@ public class LoveDoctorEffect extends Effect public LoveDoctorEffect(Player player, Location target, Gadget gadget) { - super(-1, new EffectLocation(player), gadget.Manager.getPlugin()); + super(-1, new EffectLocation(player), gadget._manager.getPlugin()); _gadget = gadget; _player = player; setTargetLocation(new EffectLocation(target)); @@ -79,7 +79,7 @@ public class LoveDoctorEffect extends Effect HashMap players = UtilPlayer.getInRadius(loc, 9d); for (Player ent : players.keySet()) { - if (_gadget.Manager.collideEvent(_player, _gadget, ent)) + if (_gadget._manager.collideEvent(_player, _gadget, ent)) continue; double mult = players.get(ent); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/MetalManEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/MetalManEffect.java index d9382e15e..abb66a52c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/MetalManEffect.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/MetalManEffect.java @@ -34,7 +34,7 @@ public class MetalManEffect extends Effect public MetalManEffect(Location location, Location target, int color, Gadget gadget, Player player) { - super(-1, new EffectLocation(player), gadget.Manager.getPlugin()); + super(-1, new EffectLocation(player), gadget._manager.getPlugin()); _color = color; _gadget = gadget; _player = player; @@ -105,7 +105,7 @@ public class MetalManEffect extends Effect HashMap players = UtilPlayer.getInRadius(loc, 9d); for (Player ent : players.keySet()) { - if (_gadget.Manager.collideEvent(_player, _gadget, ent)) + if (_gadget._manager.collideEvent(_player, _gadget, ent)) continue; double mult = players.get(ent); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetExtraSalesPackage.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetExtraSalesPackage.java index 206e64a8f..91cd9e9d4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetExtraSalesPackage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetExtraSalesPackage.java @@ -11,9 +11,9 @@ public class PetExtraSalesPackage extends SalesPackageBase public PetExtraSalesPackage(String name, Material material, int price) { super(name, material, (byte)0, new String[0]); - CurrencyCostMap.put(GlobalCurrency.TREASURE_SHARD, price); + _currencyCostMap.put(GlobalCurrency.TREASURE_SHARD, price); - KnownPackage = false; - OneTimePurchaseOnly = false; + _knownPackage = false; + _oneTimePurchaseOnly = false; } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetSalesPackage.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetSalesPackage.java index 2189e1469..84c606bc5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetSalesPackage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetSalesPackage.java @@ -14,8 +14,8 @@ public class PetSalesPackage extends SalesPackageBase public PetSalesPackage(PetType type, String tagName) { super(type.getName(), Material.MONSTER_EGG, (byte)type.getEntityType().getTypeId(), new String[0]); - CurrencyCostMap.put(GlobalCurrency.TREASURE_SHARD, type.getPrice()); - KnownPackage = false; + _currencyCostMap.put(GlobalCurrency.TREASURE_SHARD, type.getPrice()); + _knownPackage = false; setDisplayName(C.cGreen + "Purchase " + tagName); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/shop/item/SalesPackageBase.java b/Plugins/Mineplex.Core/src/mineplex/core/shop/item/SalesPackageBase.java index 9290244de..f17874141 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/shop/item/SalesPackageBase.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/shop/item/SalesPackageBase.java @@ -1,28 +1,29 @@ package mineplex.core.shop.item; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + import mineplex.core.common.currency.GlobalCurrency; import mineplex.core.common.util.NautHashMap; import mineplex.core.donation.repository.GameSalesPackageToken; import mineplex.core.itemstack.ItemBuilder; -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; public abstract class SalesPackageBase implements ICurrencyPackage, IDisplayPackage { private Material _displayMaterial; private byte _displayData; - protected String Name; - protected String DisplayName; - protected String[] Description; - protected int Quantity; + protected String _name; + protected String _displayName; + protected String[] _description; + protected int _quantity; - protected int SalesPackageId; - protected boolean Free; - protected NautHashMap CurrencyCostMap; - protected boolean KnownPackage = true; - protected boolean OneTimePurchaseOnly = true; + protected int _salesPackageId; + protected boolean _free; + protected NautHashMap _currencyCostMap; + protected boolean _knownPackage = true; + protected boolean _oneTimePurchaseOnly = true; public SalesPackageBase(String name, Material material, String...description) { @@ -41,46 +42,46 @@ public abstract class SalesPackageBase implements ICurrencyPackage, IDisplayPack public SalesPackageBase(String name, Material material, byte displayData, String[] description, int coins, int quantity) { - CurrencyCostMap = new NautHashMap<>(); + _currencyCostMap = new NautHashMap<>(); - Name = name; - DisplayName = name; - Description = description; + _name = name; + _displayName = name; + _description = description; _displayMaterial = material; _displayData = displayData; - CurrencyCostMap.put(GlobalCurrency.TREASURE_SHARD, coins); - Quantity = quantity; + _currencyCostMap.put(GlobalCurrency.TREASURE_SHARD, coins); + _quantity = quantity; } @Override public String getName() { - return Name; + return _name; } @Override public String[] getDescription() { - return Description; + return _description; } @Override public int getCost(GlobalCurrency currencyType) { - return CurrencyCostMap.containsKey(currencyType) ? CurrencyCostMap.get(currencyType) : 0; + return _currencyCostMap.containsKey(currencyType) ? _currencyCostMap.get(currencyType) : 0; } @Override public int getSalesPackageId() { - return SalesPackageId; + return _salesPackageId; } @Override public boolean isFree() { - return Free; + return _free; } @Override @@ -98,42 +99,42 @@ public abstract class SalesPackageBase implements ICurrencyPackage, IDisplayPack @Override public void update(GameSalesPackageToken token) { - SalesPackageId = token.GameSalesPackageId; - Free = token.Free; + _salesPackageId = token.GameSalesPackageId; + _free = token.Free; if (token.Gems > 0) { - CurrencyCostMap.put(GlobalCurrency.GEM, token.Gems); + _currencyCostMap.put(GlobalCurrency.GEM, token.Gems); } } public int getQuantity() { - return Quantity; + return _quantity; } public boolean isKnown() { - return KnownPackage; + return _knownPackage; } public boolean oneTimePurchase() { - return OneTimePurchaseOnly; + return _oneTimePurchaseOnly; } public String getDisplayName() { - return DisplayName; + return _displayName; } public void setDisplayName(String name) { - DisplayName = name; + _displayName = name; } public ItemStack buildIcon() { - return new ItemBuilder(_displayMaterial).setData(_displayData).setTitle(DisplayName).addLore(Description).build(); + return new ItemBuilder(_displayMaterial).setData(_displayData).setTitle(_displayName).addLore(_description).build(); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/ChestPackage.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/ChestPackage.java index bd4162932..198eb3098 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/ChestPackage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/ChestPackage.java @@ -9,7 +9,7 @@ public class ChestPackage extends SalesPackageBase { super(name, mat, (byte) 0, new String[] {}, cost); - KnownPackage = false; - OneTimePurchaseOnly = false; + _knownPackage = false; + _oneTimePurchaseOnly = false; } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureKey.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureKey.java index 30ef863f6..bdf9748cc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureKey.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureKey.java @@ -13,7 +13,7 @@ public class TreasureKey extends SalesPackageBase { super("Treasure Key", Material.TRIPWIRE_HOOK, (byte) 0, new String[] { ChatColor.RESET + "Used to open Treasure Chests" }, 1000); - KnownPackage = false; - OneTimePurchaseOnly = false; + _knownPackage = false; + _oneTimePurchaseOnly = false; } } diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/classes/SelectBullsChargeGoal.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/classes/SelectBullsChargeGoal.java index bc31e43e6..0568d831c 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/classes/SelectBullsChargeGoal.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/classes/SelectBullsChargeGoal.java @@ -17,7 +17,7 @@ public class SelectBullsChargeGoal extends ObjectiveGoal { public SelectBullsChargeGoal(ClassesObjective objective) { - super(objective, "Open Class Manager", "Using the Class Manager, choose Bulls Charge for your Axe Skill"); + super(objective, "Open Class Manager", "Using the Class _manager, choose Bulls Charge for your Axe Skill"); } @Override diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java index 55e32d4bf..56c0e01c3 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java @@ -65,7 +65,7 @@ public class TextManager extends MiniPlugin UtilBlockText.MakeText("CAPTURE THE FLAG", locComp.clone().add(16, 28, 0), faceComp, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); // UtilBlockText.MakeText("CLANS", locComp.clone().add(15, 28, 0), faceComp, 159, (byte)14, TextAlign.CENTER); -// UtilBlockText.MakeText("CLANS", locComp.clone().add(16, 28, 0), faceComp, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); +// UtilBlockText.MakeText("CLANS", locComp.clone().add(16, 28, 0), faceComp, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); //Arcade UtilBlockText.MakeText("ARCADE", locArcade, faceArcade, 159, (byte)5, TextAlign.CENTER); @@ -115,13 +115,13 @@ public class TextManager extends MiniPlugin return; UtilText.MakeText(GetArcadeText(0), locArcade.clone().add(0, 14, 15), faceArcade, 159, (byte)4, TextAlign.CENTER); - UtilText.MakeText(GetArcadeText(0), locArcade.clone().add(0, 14, 16), faceArcade, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); + UtilText.MakeText(GetArcadeText(0), locArcade.clone().add(0, 14, 16), faceArcade, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); UtilText.MakeText(GetArcadeText(1), locArcade.clone().add(0, 21, 15), faceArcade, 159, (byte)1, TextAlign.CENTER); - UtilText.MakeText(GetArcadeText(1), locArcade.clone().add(0, 21, 16), faceArcade, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); + UtilText.MakeText(GetArcadeText(1), locArcade.clone().add(0, 21, 16), faceArcade, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); UtilText.MakeText(GetArcadeText(2), locArcade.clone().add(0, 28, 15), faceArcade, 159, (byte)14, TextAlign.CENTER); - UtilText.MakeText(GetArcadeText(2), locArcade.clone().add(0, 28, 16), faceArcade, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); + UtilText.MakeText(GetArcadeText(2), locArcade.clone().add(0, 28, 16), faceArcade, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); arcadeIndex = (arcadeIndex + 3)%arcadeGames.length; } @@ -149,13 +149,13 @@ public class TextManager extends MiniPlugin if (smashIndex == 1) color = 0; //UtilText.MakeText("SUPER SMASH MOBS", locOther, faceOther, 159, color, TextAlign.CENTER); - //UtilText.MakeText("SUPER SMASH MOBS", locOther.clone().add(0, 0, -1), faceOther, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); + //UtilText.MakeText("SUPER SMASH MOBS", locOther.clone().add(0, 0, -1), faceOther, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); UtilText.MakeText("SUPER SMASH MOBS", locClassics.clone().add(0, 14, -15), faceOther, 159, color, TextAlign.CENTER); - UtilText.MakeText("SUPER SMASH MOBS", locClassics.clone().add(0, 14, -16), faceOther, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); + UtilText.MakeText("SUPER SMASH MOBS", locClassics.clone().add(0, 14, -16), faceOther, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); UtilText.MakeText("DOMINATE", locComp.clone().add(15, 14, 0), faceComp, 159, color, TextAlign.CENTER); - UtilText.MakeText("DOMINATE", locComp.clone().add(16, 14, 0), faceComp, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); + UtilText.MakeText("DOMINATE", locComp.clone().add(16, 14, 0), faceComp, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); //System.out.println("TextCreator : " + (System.currentTimeMillis() - startTime) + "ms"); } */ diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/ItemSalesPackage.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/ItemSalesPackage.java index 3ce30af02..0e9da60d7 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/ItemSalesPackage.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/ItemSalesPackage.java @@ -10,8 +10,8 @@ public class ItemSalesPackage extends SalesPackageBase public ItemSalesPackage(Item item) { super("Champions " + item.GetName(), Material.BOOK, (byte)0, item.GetDesc(), item.GetGemCost()); - Free = item.isFree(); - KnownPackage = false; - CurrencyCostMap.put(GlobalCurrency.GEM, item.GetGemCost()); + _free = item.isFree(); + _knownPackage = false; + _currencyCostMap.put(GlobalCurrency.GEM, item.GetGemCost()); } } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/SkillSalesPackage.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/SkillSalesPackage.java index 420427e31..54b3a181b 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/SkillSalesPackage.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/SkillSalesPackage.java @@ -10,8 +10,8 @@ public class SkillSalesPackage extends SalesPackageBase public SkillSalesPackage(ISkill skill) { super("Champions " + skill.GetName(), Material.BOOK, (byte)0, skill.GetDesc(0), skill.GetGemCost()); - Free = skill.IsFree(); - KnownPackage = false; - CurrencyCostMap.put(GlobalCurrency.GEM, skill.GetGemCost()); + _free = skill.IsFree(); + _knownPackage = false; + _currencyCostMap.put(GlobalCurrency.GEM, skill.GetGemCost()); } } diff --git a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/condition/ConditionFactory.java b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/condition/ConditionFactory.java index fcfa571e1..10dde2ab1 100644 --- a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/condition/ConditionFactory.java +++ b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/condition/ConditionFactory.java @@ -194,7 +194,7 @@ public class ConditionFactory public Condition Vulnerable(String reason, LivingEntity ent, LivingEntity source, double duration, int mult, boolean extend, boolean showIndicator, boolean ambient) { - return Manager.AddCondition(new Vulnerability(Manager, reason, ent, source, + return Manager.AddCondition(new Vulnerability(_manager, reason, ent, source, ConditionType.WITHER, mult, (int)(20 * duration), extend, Material.BONE, (byte)0, showIndicator, ambient)); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/event/EventGame.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/event/EventGame.java index 68767903c..12e28e680 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/event/EventGame.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/event/EventGame.java @@ -853,7 +853,7 @@ public class EventGame extends Game } if(command.contentEquals("[EFFECT]")) { - //Manager.GetEventModule().commandEffect(Manager.GetGameHostManager().getHost(), commandArgs, varMap.get(1)); + //Manager.GetEventModule().commandEffect(_manager.GetGameHostManager().getHost(), commandArgs, varMap.get(1)); for(Player player : varMap.get(1)) { player.addPotionEffect(new PotionEffect(PotionEffectType.getByName(args[2]), Integer.parseInt(args[3].split(" ")[0]), Integer.parseInt(args[3].split(" ")[1]))); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSkeleton.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSkeleton.java index d4831cbbb..70be9fded 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSkeleton.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSkeleton.java @@ -70,7 +70,7 @@ public class KitSkeleton // { // event.setCancelled(true); // -// Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() +// Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(_manager.getPlugin(), new Runnable() // { // @Override // public void run() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSnowman.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSnowman.java index fcf33d0aa..13be5a6cb 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSnowman.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSnowman.java @@ -70,7 +70,7 @@ public class KitSnowman // { // event.setCancelled(true); // -// Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() +// Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(_manager.getPlugin(), new Runnable() // { // @Override // public void run() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java index 5d63023a5..bc49dd5b9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java @@ -230,7 +230,7 @@ public class PerkDestructor extends Perk // @EventHandler // public void collide(PlayerTeleportEvent event) // { -// if (Manager.GetGame() == null || !Manager.GetGame().IsLive()) +// if (Manager.GetGame() == null || !_manager.GetGame().IsLive()) // return; // // if (event.getCause() != TeleportCause.ENDER_PEARL) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidRifle.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidRifle.java index 0157bf271..78714db86 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidRifle.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidRifle.java @@ -89,7 +89,7 @@ public class PerkSquidRifle extends Perk implements IThrown //_fireworks.put(fw, vel); //Projectile - //Manager.GetProjectile().AddThrow(fw, player, this, -1, true, true, true, 3d, Manager.GetDisguise()); + //Manager.GetProjectile().AddThrow(fw, player, this, -1, true, true, true, 3d, _manager.GetDisguise()); } catch (Exception e) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidShotgun.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidShotgun.java index 797468967..cea32dd65 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidShotgun.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidShotgun.java @@ -96,7 +96,7 @@ public class PerkSquidShotgun extends Perk implements IThrown //_fireworks.put(fw, vel); //Projectile - //Manager.GetProjectile().AddThrow(fw, player, this, -1, true, true, true, 3d, Manager.GetDisguise()); + //Manager.GetProjectile().AddThrow(fw, player, this, -1, true, true, true, 3d, _manager.GetDisguise()); } catch (Exception e) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidSniper.java index 96b38e418..c4d864c88 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidSniper.java @@ -89,7 +89,7 @@ public class PerkSquidSniper extends Perk implements IThrown //_fireworks.put(fw, vel); //Projectile - //Manager.GetProjectile().AddThrow(fw, player, this, -1, true, true, true, 3d, Manager.GetDisguise()); + //Manager.GetProjectile().AddThrow(fw, player, this, -1, true, true, true, 3d, _manager.GetDisguise()); } catch (Exception e) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/shop/KitPackage.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/shop/KitPackage.java index 6fbea37dc..5a8c75f54 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/shop/KitPackage.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/shop/KitPackage.java @@ -9,7 +9,7 @@ public class KitPackage extends SalesPackageBase public KitPackage(String gameName, Kit kit) { super(gameName + " " + kit.GetName(), kit.getDisplayMaterial(), kit.GetDesc()); - KnownPackage = false; - CurrencyCostMap.put(GlobalCurrency.GEM, kit.GetCost()); + _knownPackage = false; + _currencyCostMap.put(GlobalCurrency.GEM, kit.GetCost()); } } From 788326fe54675a9ac0991a5782dbe51ac47f8eda Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Wed, 22 Mar 2017 13:11:14 -0300 Subject: [PATCH 060/133] Tried with armorstands, still not working :( --- .../gadget/gadgets/item/ItemBubbleBlaster.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java index 71b5f37b8..eeea8cb12 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java @@ -5,12 +5,13 @@ import java.time.YearMonth; import org.bukkit.Material; import org.bukkit.block.Block; -import org.bukkit.entity.Item; +import org.bukkit.entity.ArmorStand; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; import mineplex.core.common.util.C; import mineplex.core.common.util.F; @@ -74,12 +75,16 @@ public class ItemBubbleBlaster extends ItemGadget implements IThrown // TODO CHANGE COLOR IF RAINBOW // TODO COOLDOWN AFTER MAX OF 5 SECONDS HOLDING // TODO LAUNCH MULTIPLE WHILE HOLDING - Item item = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), ItemStackFactory.Instance.CreateStack(Material.STAINED_GLASS, (byte) UtilMath.random.nextInt(15))); + //Item item = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), ItemStackFactory.Instance.CreateStack(Material.STAINED_GLASS, (byte) UtilMath.random.nextInt(15))); - UtilAction.velocity(item, player.getLocation().getDirection(), - 1, false, 0, 0.2, 10, false); + ArmorStand armorStand = player.getWorld().spawn(player.getLocation(), ArmorStand.class); + armorStand.setItemInHand(new ItemStack(Material.STAINED_GLASS, 1, (byte) UtilMath.random.nextInt(15))); + armorStand.setSmall(true); + armorStand.setVisible(false); - _manager.getProjectileManager().AddThrow(item, player, this, 1000, false, false, false, false, false, 0f); +// _manager.getProjectileManager().AddThrow(item, player, this, 1000, false, false, false, false, 0f); +// + UtilAction.velocity(armorStand, player.getLocation().getDirection(), 1, false, 0, 0.7, 10, false); } @Override From 49bc6b8663d3ab227cccc4d8b842de535c3df113 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Wed, 22 Mar 2017 14:42:11 -0300 Subject: [PATCH 061/133] Removed gravity --- .../mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java index eeea8cb12..507a32e75 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java @@ -5,6 +5,7 @@ import java.time.YearMonth; import org.bukkit.Material; import org.bukkit.block.Block; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftArmorStand; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -81,6 +82,7 @@ public class ItemBubbleBlaster extends ItemGadget implements IThrown armorStand.setItemInHand(new ItemStack(Material.STAINED_GLASS, 1, (byte) UtilMath.random.nextInt(15))); armorStand.setSmall(true); armorStand.setVisible(false); + ((CraftArmorStand) armorStand).getHandle().setGravity(false); // _manager.getProjectileManager().AddThrow(item, player, this, 1000, false, false, false, false, 0f); // From 3b48a7caaf9e4e1172bdcf6de45d5d3558d048f2 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Wed, 22 Mar 2017 16:55:49 -0300 Subject: [PATCH 062/133] Update armorstand to make it never fall --- .../gadgets/item/ItemBubbleBlaster.java | 53 ++++++++++--------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java index 507a32e75..c6701c2ee 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java @@ -2,12 +2,12 @@ package mineplex.core.gadget.gadgets.item; import java.time.Month; import java.time.YearMonth; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_8_R3.entity.CraftArmorStand; import org.bukkit.entity.ArmorStand; -import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; @@ -26,12 +26,14 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.Ammo; import mineplex.core.gadget.types.ItemGadget; import mineplex.core.itemstack.ItemStackFactory; -import mineplex.core.projectile.IThrown; -import mineplex.core.projectile.ProjectileUser; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; -public class ItemBubbleBlaster extends ItemGadget implements IThrown +public class ItemBubbleBlaster extends ItemGadget { + private Map _armorStands = new HashMap<>(); + public ItemBubbleBlaster(GadgetManager manager) { super(manager, "Bubble Blaster", UtilText.splitLinesToArray(new String[]{C.cGray + "Placeholder"}, LineFormat.LORE), @@ -76,35 +78,36 @@ public class ItemBubbleBlaster extends ItemGadget implements IThrown // TODO CHANGE COLOR IF RAINBOW // TODO COOLDOWN AFTER MAX OF 5 SECONDS HOLDING // TODO LAUNCH MULTIPLE WHILE HOLDING - //Item item = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), ItemStackFactory.Instance.CreateStack(Material.STAINED_GLASS, (byte) UtilMath.random.nextInt(15))); ArmorStand armorStand = player.getWorld().spawn(player.getLocation(), ArmorStand.class); armorStand.setItemInHand(new ItemStack(Material.STAINED_GLASS, 1, (byte) UtilMath.random.nextInt(15))); armorStand.setSmall(true); armorStand.setVisible(false); - ((CraftArmorStand) armorStand).getHandle().setGravity(false); -// _manager.getProjectileManager().AddThrow(item, player, this, 1000, false, false, false, false, 0f); -// - UtilAction.velocity(armorStand, player.getLocation().getDirection(), 1, false, 0, 0.7, 10, false); + _armorStands.put(armorStand, player); + + UtilAction.velocity(armorStand, player.getLocation().getDirection(), 1, false, 0, 0.25, 5, false); } - @Override - public void Collide(LivingEntity target, Block block, ProjectileUser data) + @EventHandler + public void updateArmorStand(UpdateEvent event) { + if (event.getType() != UpdateType.TICK) + return; - } - - @Override - public void Idle(ProjectileUser data) - { - - } - - @Override - public void Expire(ProjectileUser data) - { - data.getThrown().remove(); + Iterator> iterator = _armorStands.entrySet().iterator(); + while (iterator.hasNext()) + { + Map.Entry entry = iterator.next(); + ArmorStand armorStand = entry.getKey(); + Player player = entry.getValue(); + UtilAction.velocity(armorStand, armorStand.getLocation().getDirection(), 1, false, 0, 0.25, 0, false); + if (armorStand.getTicksLived() >= 20) + { + armorStand.remove(); + iterator.remove(); + } + } } } From 401276d70587bff6f042e779298d0ba2c6f2aa87 Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 22 Mar 2017 23:04:50 +0000 Subject: [PATCH 063/133] Missing isLive check --- .../src/nautilus/game/arcade/game/games/bridge/Bridge.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java index bf646fa6e..91bf17b99 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java @@ -1657,7 +1657,7 @@ public class Bridge extends TeamGame implements OreObsfucation @EventHandler(priority=EventPriority.LOWEST) public void revivePlayer(CustomDamageEvent event) { - if (_bridgesDown || !(event.GetDamageeEntity() instanceof Player)) + if (!IsLive() || _bridgesDown || !(event.GetDamageeEntity() instanceof Player)) { return; } From 222e4267d2f3eed163d10c9a7be97ab4eec2d68b Mon Sep 17 00:00:00 2001 From: cnr Date: Wed, 22 Mar 2017 22:36:53 -0500 Subject: [PATCH 064/133] Add UHC subtypes to server menu --- .../mineplex/hub/server/ui/ServerNpcShop.java | 3 + .../hub/server/ui/UHCServerTypePage.java | 66 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/UHCServerTypePage.java diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcShop.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcShop.java index 735066e80..107f9fb16 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcShop.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcShop.java @@ -33,6 +33,9 @@ public class ServerNpcShop extends ShopBase case "MS": return new MinestrikeServerTypePage(getPlugin(), this, getClientManager(), getDonationManager(), player, _serverGroup); + case "UHC": + return new UHCServerTypePage(getPlugin(), this, getClientManager(), getDonationManager(), player); + default: return new ServerNpcPage(getPlugin(), this, getClientManager(), getDonationManager(), _serverGroup.getServerNpcName(), player, _serverGroup.getPrefix()); } diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/UHCServerTypePage.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/UHCServerTypePage.java new file mode 100644 index 000000000..76cc3595b --- /dev/null +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/UHCServerTypePage.java @@ -0,0 +1,66 @@ +package mineplex.hub.server.ui; + +import org.bukkit.Material; +import org.bukkit.entity.Player; + +import mineplex.core.account.CoreClientManager; +import mineplex.core.common.util.C; +import mineplex.core.donation.DonationManager; +import mineplex.core.itemstack.ItemBuilder; +import mineplex.core.shop.page.ShopPageBase; +import mineplex.hub.server.ServerManager; + +public class UHCServerTypePage extends ShopPageBase + +{ + public UHCServerTypePage(ServerManager plugin, ServerNpcShop shop, CoreClientManager clientManager, + DonationManager donationManager, Player player) + { + super(plugin, shop, clientManager, donationManager, "Ultra Hardcore", player, 27); + + buildPage(); + } + + @Override + protected void buildPage() + { + setItem(10, new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setTitle(C.Reset + C.cYellow + "UHC Solo") + .addLore(new String[] + { + C.Reset + "", + C.Reset + C.cGreen + "Click to Play", + }).build()); + + setItem(12, new ItemBuilder(Material.SKULL_ITEM, 2, (byte) 3).setTitle(C.Reset + C.cYellow + "UHC Teams") + .addLore(new String[] + { + C.Reset + "", + C.Reset + C.cGreen + "Click to Play", + }).build()); + + setItem(14, new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setTitle(C.Reset + C.cYellow + "UHC Speed Solo") + .addLore(new String[] + { + C.Reset + "", + C.Reset + C.cGreen + "Click to Play" + }).build()); + + setItem(16, new ItemBuilder(Material.SKULL_ITEM, 2, (byte) 3).setTitle(C.Reset + C.cYellow + "UHC Speed Teams") + .addLore(new String[] + { + C.Reset + "", + C.Reset + C.cGreen + "Click to Play" + }).build()); + + getButtonMap().put(10, (player, __) -> getShop().openPageForPlayer(player, new ServerNpcPage(getPlugin(), getShop(), getClientManager(), getDonationManager(), "UHC Solo", player, "UHC2"))); + getButtonMap().put(12, (player, __) -> getShop().openPageForPlayer(player, new ServerNpcPage(getPlugin(), getShop(), getClientManager(), getDonationManager(), "UHC", player, "UHC"))); + getButtonMap().put(14, (player, __) -> getShop().openPageForPlayer(player, new ServerNpcPage(getPlugin(), getShop(), getClientManager(), getDonationManager(), "UHC Speed Solo", player, "UHCS2"))); + getButtonMap().put(16, (player, __) -> getShop().openPageForPlayer(player, new ServerNpcPage(getPlugin(), getShop(), getClientManager(), getDonationManager(), "UHC Speed", player, "UHCS"))); + } + + public void Update() + { + getButtonMap().clear(); + buildPage(); + } +} From 9c504064c1921afe5534642ca56670e5afae172b Mon Sep 17 00:00:00 2001 From: cnr Date: Wed, 22 Mar 2017 22:41:08 -0500 Subject: [PATCH 065/133] Force all players to reappear after win room --- .../src/mineplex/core/gadget/types/WinEffectGadget.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/WinEffectGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/WinEffectGadget.java index 403161cc9..06d6d9475 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/WinEffectGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/WinEffectGadget.java @@ -110,6 +110,7 @@ public abstract class WinEffectGadget extends Gadget } finally { + UtilServer.getPlayersCollection().forEach(UtilPlayer::showForAll); _player = null; _baseLocation = null; _team.clear(); From 5fa583109fdb7641464fe541e026069330e96581 Mon Sep 17 00:00:00 2001 From: cnr Date: Thu, 23 Mar 2017 15:04:04 -0500 Subject: [PATCH 066/133] Revert BungeeRotator US/EU merge This reverts commits e59d744074bc7ed517ec92b1f2b94af082336bab and b8ac877fa39e55dc8dbacaa50546679f7f7b3139 --- .../src/mineplex/bungee/BungeeRotator.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Plugins/Mineplex.BungeeRotator/src/mineplex/bungee/BungeeRotator.java b/Plugins/Mineplex.BungeeRotator/src/mineplex/bungee/BungeeRotator.java index a7d2e0462..12ff80b05 100644 --- a/Plugins/Mineplex.BungeeRotator/src/mineplex/bungee/BungeeRotator.java +++ b/Plugins/Mineplex.BungeeRotator/src/mineplex/bungee/BungeeRotator.java @@ -16,6 +16,7 @@ import java.util.logging.Logger; import mineplex.bungee.api.ApiDeleteCall; import mineplex.bungee.api.ApiGetCall; import mineplex.bungee.api.ApiPostCall; +import mineplex.bungee.api.HttpCallBase; import mineplex.bungee.api.token.ARecord; import mineplex.bungee.api.token.DnsRecord; import mineplex.bungee.api.token.DomainRecords; @@ -24,8 +25,8 @@ import mineplex.serverdata.data.BungeeServer; import mineplex.serverdata.data.DataRepository; import mineplex.serverdata.redis.RedisDataRepository; import mineplex.serverdata.servers.ConnectionData; -import mineplex.serverdata.servers.ConnectionData.ConnectionType; import mineplex.serverdata.servers.ServerManager; +import mineplex.serverdata.servers.ConnectionData.ConnectionType; public class BungeeRotator { @@ -96,8 +97,7 @@ public class BungeeRotator _repository = new RedisDataRepository(ServerManager.getConnection(true, ServerManager.SERVER_STATUS_LABEL), ServerManager.getConnection(false, ServerManager.SERVER_STATUS_LABEL), Region.ALL, BungeeServer.class, "bungeeServers"); - // Temporarily reassigning to US Redis IP for EU player redirection testing. 10.81.1.156 -> 10.33.53.16 - _secondRepository = new RedisDataRepository(new ConnectionData("10.33.53.16", 6379, ConnectionType.MASTER, "ServerStatus"), new ConnectionData("10.33.53.16", 6377, ConnectionType.SLAVE, "ServerStatus"), + _secondRepository = new RedisDataRepository(new ConnectionData("10.81.1.156", 6379, ConnectionType.MASTER, "ServerStatus"), new ConnectionData("10.81.1.156", 6377, ConnectionType.SLAVE, "ServerStatus"), Region.ALL, BungeeServer.class, "bungeeServers"); //_ipRepository = new PlayerStatsRepository(); @@ -110,7 +110,7 @@ public class BungeeRotator try { List bungeeServers = new ArrayList(_repository.getElements()); - //bungeeServers.addAll(_secondRepository.getElements()); + bungeeServers.addAll(_secondRepository.getElements()); Collections.sort(bungeeServers, bungeeSorter); From e3c4d89d9af1909149a2b75fc7e1c14b2dc65b32 Mon Sep 17 00:00:00 2001 From: cnr Date: Thu, 23 Mar 2017 23:17:01 -0500 Subject: [PATCH 067/133] Disable 'Light em up' quest --- .../src/mineplex/gemhunters/quest/QuestModule.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/quest/QuestModule.java b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/quest/QuestModule.java index a48e843d7..342b1851c 100644 --- a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/quest/QuestModule.java +++ b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/quest/QuestModule.java @@ -4,6 +4,8 @@ import java.util.List; import java.util.UUID; import java.util.concurrent.TimeUnit; +import net.md_5.bungee.api.ChatColor; + import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -39,7 +41,6 @@ import mineplex.core.updater.event.UpdateEvent; import mineplex.gemhunters.economy.EconomyModule; import mineplex.gemhunters.quest.command.ResetQuestsCommand; import mineplex.gemhunters.quest.types.ChestOpenerQuest; -import mineplex.gemhunters.quest.types.CraftingQuest; import mineplex.gemhunters.quest.types.EnjoyTheViewQuest; import mineplex.gemhunters.quest.types.GiveItemQuest; import mineplex.gemhunters.quest.types.KillMostValuableQuest; @@ -49,7 +50,6 @@ import mineplex.gemhunters.quest.types.SamitoDQuest; import mineplex.gemhunters.quest.types.SpecificChestOpenerQuest; import mineplex.gemhunters.quest.types.WalkingQuest; import mineplex.gemhunters.world.WorldDataModule; -import net.md_5.bungee.api.ChatColor; @ReflectivelyCreateMiniPlugin public class QuestModule extends MiniClientPlugin @@ -89,7 +89,7 @@ public class QuestModule extends MiniClientPlugin new KillMostValuableQuest(17, "Equality", "Slay the most valuable player in the game.", 100, 1500), - new CraftingQuest(18, "Light em up", "Craft " + F.count("5 Torches"), 25, 250, Material.TORCH, 5) + //new CraftingQuest(18, "Light em up", "Craft " + F.count("5 Torches"), 25, 250, Material.TORCH, 5) }; private final EconomyModule _economy; From 3ebfb453c5d32bafd65e2747c56b3c546c45cb02 Mon Sep 17 00:00:00 2001 From: AlexTheCoder Date: Thu, 23 Feb 2017 17:16:02 -0500 Subject: [PATCH 068/133] Implement rank and powerplay linking to the website and give specific ranks an id corresponding to their respective forum tag --- .../src/mineplex/core/common/Rank.java | 60 +- .../core/account/CoreClientManager.java | 5 + .../core/account/event/RankSaveEvent.java | 42 ++ .../account/repository/AccountRepository.java | 3 + .../powerplayclub/PPCDataRequestEvent.java | 44 ++ .../PowerPlayClubRepository.java | 12 +- .../powerplayclub/SubscriptionAddEvent.java | 38 ++ .../mineplex/core/website/ForumUserData.java | 15 + .../mineplex/core/website/LinkCommand.java | 37 ++ .../core/website/MineplexAuthenticator.java | 28 + .../core/website/WebsiteLinkManager.java | 605 ++++++++++++++++++ .../mineplex/core/website/XenForoData.java | 13 + .../src/mineplex/clanshub/ClansHub.java | 2 + .../Mineplex.Hub/src/mineplex/hub/Hub.java | 6 +- .../src/nautilus/game/arcade/Arcade.java | 2 + 15 files changed, 883 insertions(+), 29 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/account/event/RankSaveEvent.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PPCDataRequestEvent.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/SubscriptionAddEvent.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/website/ForumUserData.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/website/LinkCommand.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/website/MineplexAuthenticator.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/website/XenForoData.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/Rank.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/Rank.java index 2f3556b26..aef681107 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/Rank.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/Rank.java @@ -10,58 +10,61 @@ import mineplex.core.common.util.UtilPlayer; public enum Rank { //Staff - LT("Leader", "lt", ChatColor.DARK_RED, "Leaders manage the operation of their respective team \nor projects. They usually operate on affairs within \nthe staff, development, or management team."), - OWNER("Owner", "owner", ChatColor.DARK_RED, "Owners are the founders of Mineplex. \nEach owner manages a different aspect of the \nserver and ensures its efficient operation."), - DEVELOPER("Dev", "dev", ChatColor.DARK_RED, "Developers work behind the scenes to \ncreate new games and features, and fix bugs to \ngive the best experience."), - ADMIN("Admin", "adm", ChatColor.DARK_RED, "An Administrator’s role is to manage \ntheir respective Senior Moderator team \nand all moderators within it."), - JNR_DEV("Jr.Dev", "jrdev", ChatColor.GOLD, "Junior Developers work behind the scenes to \ncreate new games and features, and fix bugs to \ngive the best experience."), - SUPPORT("Support", "spp", ChatColor.BLUE, "Support agents handle tickets and \nprovide customer service."), - CMOD("C.Mod", "cmod", ChatColor.GOLD, "Clans Moderators are members of the Clans Management Senior Mod team. \nTheir duties include moderation and support within the Clans servers. \n\nFor assistance, contact them using " + F.elem("/a ") + "."), - SNR_MODERATOR("Sr.Mod", "srmod", ChatColor.GOLD, "Senior Moderators are members of a special \nSenior Moderator team where they have to fulfill specific tasks. \nJust like Moderators, you can always ask them for help. \n\nFor assistance, contact them using " + F.elem("/a ") + "."), - MODERATOR("Mod", "mod", ChatColor.GOLD, "Moderators enforce rules and provide help to \nanyone with questions or concerns. \n\nFor assistance, contact them using " + F.elem("/a ") + "."), - HELPER("Trainee", "train", ChatColor.GOLD, "Trainees are moderators-in-training. \nTheir duties include enforcing the rules and \nproviding help to anyone with questions or concerns. \n\nFor assistance, contact them using " + F.elem("/a ") + "."), - MAPLEAD("MapLead", "mapl", ChatColor.BLUE, "Map Leaders are leaders of the Mineplex Build Team. \nThey oversee the creation of new maps and manage Builders."), - MAPDEV("Builder", "mapd", ChatColor.BLUE, "Builders are members of the Mineplex Build Team. \nThey create many of the maps used across Mineplex."), - MEDIA("Media", "media", ChatColor.BLUE, "The Media rank is given to talented artists who are\n endorsed to create content for Mineplex."), + LT("Leader", "lt", ChatColor.DARK_RED, "Leaders manage the operation of their respective team \nor projects. They usually operate on affairs within \nthe staff, development, or management team.", 11), + OWNER("Owner", "owner", ChatColor.DARK_RED, "Owners are the founders of Mineplex. \nEach owner manages a different aspect of the \nserver and ensures its efficient operation.", 55), + DEVELOPER("Dev", "dev", ChatColor.DARK_RED, "Developers work behind the scenes to \ncreate new games and features, and fix bugs to \ngive the best experience.", 5), + ADMIN("Admin", "adm", ChatColor.DARK_RED, "An Administrator’s role is to manage \ntheir respective Senior Moderator team \nand all moderators within it.", 10), + JNR_DEV("Jr.Dev", "jrdev", ChatColor.GOLD, "Junior Developers work behind the scenes to \ncreate new games and features, and fix bugs to \ngive the best experience.", -1), + SUPPORT("Support", "spp", ChatColor.BLUE, "Support agents handle tickets and \nprovide customer service.", 47), + CMOD("C.Mod", "cmod", ChatColor.GOLD, "Clans Moderators are members of the Clans Management Senior Mod team. \nTheir duties include moderation and support within the Clans servers. \n\nFor assistance, contact them using " + F.elem("/a ") + ".", 32), + SNR_MODERATOR("Sr.Mod", "srmod", ChatColor.GOLD, "Senior Moderators are members of a special \nSenior Moderator team where they have to fulfill specific tasks. \nJust like Moderators, you can always ask them for help. \n\nFor assistance, contact them using " + F.elem("/a ") + ".", 44), + MODERATOR("Mod", "mod", ChatColor.GOLD, "Moderators enforce rules and provide help to \nanyone with questions or concerns. \n\nFor assistance, contact them using " + F.elem("/a ") + ".", 32), + HELPER("Trainee", "train", ChatColor.GOLD, "Trainees are moderators-in-training. \nTheir duties include enforcing the rules and \nproviding help to anyone with questions or concerns. \n\nFor assistance, contact them using " + F.elem("/a ") + ".", 24), + MAPLEAD("MapLead", "mapl", ChatColor.BLUE, "Map Leaders are leaders of the Mineplex Build Team. \nThey oversee the creation of new maps and manage Builders.", 25), + MAPDEV("Builder", "mapd", ChatColor.BLUE, "Builders are members of the Mineplex Build Team. \nThey create many of the maps used across Mineplex.", 26), + MEDIA("Media", "media", ChatColor.BLUE, "The Media rank is given to talented artists who are\n endorsed to create content for Mineplex.", -1), - EVENT("Event", "evnt", ChatColor.WHITE, "A member of the official Mineplex Events team!"), + EVENT("Event", "evnt", ChatColor.WHITE, "A member of the official Mineplex Events team!", -1), //Media - YOUTUBE("YouTube", "yt", ChatColor.RED, "A YouTuber who creates content for \nor related to Mineplex."), - YOUTUBE_SMALL("YT", "ytsm", ChatColor.DARK_PURPLE, "A YouTuber who creates content for \nor related to Mineplex. \n\nThey have fewer subscribers than full YouTubers."), - TWITCH("Twitch", "tw", ChatColor.DARK_PURPLE, "A Twitch streamer who often features \nMineplex in their streams."), + YOUTUBE("YouTube", "yt", ChatColor.RED, "A YouTuber who creates content for \nor related to Mineplex.", 22), + YOUTUBE_SMALL("YT", "ytsm", ChatColor.DARK_PURPLE, "A YouTuber who creates content for \nor related to Mineplex. \n\nThey have fewer subscribers than full YouTubers.", 20), + TWITCH("Twitch", "tw", ChatColor.DARK_PURPLE, "A Twitch streamer who often features \nMineplex in their streams.", 21), //Player - ETERNAL("Eternal", "et", ChatColor.DARK_AQUA, true, "Fantastic and magical, no one \nexcept the time lords truly understand \nthe power of this rank.\n\nThe fifth purchasable rank at Mineplex.com/shop"), - TITAN("Titan", "t", ChatColor.RED, true, "Ancient myths spoke of a gigantic being \nwith immense power... \n\nThe fourth purchasable rank at Mineplex.com/shop"), - LEGEND("Legend", "l", ChatColor.GREEN, true, "Years they have told stories of this rank, \nonly for the legends to be true. \n\nThe third purchasable rank at Mineplex.com/shop"), - HERO("Hero", "h", ChatColor.LIGHT_PURPLE, true, "There are many stories of a \nvaliant Hero who was brave enough to \ntame the most fearsome dragon in the land. \n\nThe second purchasable rank at Mineplex.com/shop"), - ULTRA("Ultra", "u", ChatColor.AQUA, true, "A first step into the stories of the mist. \nOnly those brave enough may enter. \n\nThe first purchasable rank at Mineplex.com/shop"), - ALL("", "", ChatColor.WHITE, null); + ETERNAL("Eternal", "et", ChatColor.DARK_AQUA, true, "Fantastic and magical, no one \nexcept the time lords truly understand \nthe power of this rank.\n\nThe fifth purchasable rank at Mineplex.com/shop", 18), + TITAN("Titan", "t", ChatColor.RED, true, "Ancient myths spoke of a gigantic being \nwith immense power... \n\nThe fourth purchasable rank at Mineplex.com/shop", 15), + LEGEND("Legend", "l", ChatColor.GREEN, true, "Years they have told stories of this rank, \nonly for the legends to be true. \n\nThe third purchasable rank at Mineplex.com/shop", 14), + HERO("Hero", "h", ChatColor.LIGHT_PURPLE, true, "There are many stories of a \nvaliant Hero who was brave enough to \ntame the most fearsome dragon in the land. \n\nThe second purchasable rank at Mineplex.com/shop", 13), + ULTRA("Ultra", "u", ChatColor.AQUA, true, "A first step into the stories of the mist. \nOnly those brave enough may enter. \n\nThe first purchasable rank at Mineplex.com/shop", 12), + ALL("", "", ChatColor.WHITE, null, -1); private ChatColor _color; private boolean _donor; private String _description; + private int _forumId; public String Name; public String ScoreboardTag; - Rank(String name, String scoreboardTag, ChatColor color, String description) + Rank(String name, String scoreboardTag, ChatColor color, String description, int forumId) { _color = color; Name = name; _donor = false; _description = description; ScoreboardTag = scoreboardTag; + _forumId = forumId; } - Rank(String name, String scoreboardTag, ChatColor color, boolean donor, String description) + Rank(String name, String scoreboardTag, ChatColor color, boolean donor, String description, int forumId) { _color = color; Name = name; _donor = donor; _description = description; ScoreboardTag = scoreboardTag; + _forumId = forumId; } public String getDescription() @@ -138,4 +141,9 @@ public enum Rank { return _donor; } -} + + public int getForumId() + { + return _forumId; + } +} \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/account/CoreClientManager.java b/Plugins/Mineplex.Core/src/mineplex/core/account/CoreClientManager.java index 37ca50942..a8bc40c04 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/account/CoreClientManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/account/CoreClientManager.java @@ -36,6 +36,7 @@ import mineplex.core.account.command.TestRank; import mineplex.core.account.command.UpdateRank; import mineplex.core.account.event.ClientUnloadEvent; import mineplex.core.account.event.ClientWebResponseEvent; +import mineplex.core.account.event.RankSaveEvent; import mineplex.core.account.repository.AccountRepository; import mineplex.core.account.repository.token.ClientToken; import mineplex.core.common.Rank; @@ -43,6 +44,7 @@ import mineplex.core.common.timing.TimingManager; import mineplex.core.common.util.Callback; import mineplex.core.common.util.UUIDFetcher; import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTasks; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; @@ -552,6 +554,7 @@ public class CoreClientManager extends MiniPlugin client.SetRank(newRank, false); } + UtilServer.CallEvent(new RankSaveEvent(uuid, newRank)); } }, name, uuid, rank, perm); } @@ -571,6 +574,8 @@ public class CoreClientManager extends MiniPlugin if (callback != null) callback.run(newRank); + + UtilServer.CallEvent(new RankSaveEvent(uuid, newRank)); } }, name, uuid, rank, perm); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/account/event/RankSaveEvent.java b/Plugins/Mineplex.Core/src/mineplex/core/account/event/RankSaveEvent.java new file mode 100644 index 000000000..8453ab6b7 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/account/event/RankSaveEvent.java @@ -0,0 +1,42 @@ +package mineplex.core.account.event; + +import java.util.UUID; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import mineplex.core.common.Rank; + +public class RankSaveEvent extends Event +{ + private static final HandlerList handlers = new HandlerList(); + + private UUID _uuid; + private Rank _rank; + + public RankSaveEvent(UUID uuid, Rank rank) + { + _uuid = uuid; + _rank = rank; + } + + public UUID getUUID() + { + return _uuid; + } + + public Rank getRank() + { + return _rank; + } + + public HandlerList getHandlers() + { + return handlers; + } + + public static HandlerList getHandlerList() + { + return handlers; + } +} \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java index 789914489..104365605 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java @@ -16,6 +16,7 @@ import com.google.gson.reflect.TypeToken; import mineplex.cache.player.PlayerCache; import mineplex.core.account.ILoginProcessor; +import mineplex.core.account.event.RankSaveEvent; import mineplex.core.account.repository.token.LoginToken; import mineplex.core.account.repository.token.RankUpdateToken; import mineplex.core.common.Rank; @@ -204,6 +205,8 @@ public class AccountRepository extends MinecraftRepository { if (callback != null) callback.run(response); + + UtilServer.CallEvent(new RankSaveEvent(uuid, rank)); }); }; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PPCDataRequestEvent.java b/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PPCDataRequestEvent.java new file mode 100644 index 000000000..51af9b3b9 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PPCDataRequestEvent.java @@ -0,0 +1,44 @@ +package mineplex.core.powerplayclub; + +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +public class PPCDataRequestEvent extends Event +{ + private static final HandlerList handlers = new HandlerList(); + + private Player _player; + private PowerPlayData _data; + + public PPCDataRequestEvent(Player player) + { + _player = player; + _data = null; + } + + public Player getPlayer() + { + return _player; + } + + public PowerPlayData getData() + { + return _data; + } + + public void setData(PowerPlayData data) + { + _data = data;; + } + + public HandlerList getHandlers() + { + return handlers; + } + + public static HandlerList getHandlerList() + { + return handlers; + } +} \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PowerPlayClubRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PowerPlayClubRepository.java index e28b0509f..0e007abdb 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PowerPlayClubRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PowerPlayClubRepository.java @@ -25,6 +25,7 @@ import org.bukkit.plugin.java.JavaPlugin; import mineplex.core.account.CoreClientManager; import mineplex.core.account.ILoginProcessor; +import mineplex.core.common.util.UtilServer; import mineplex.core.donation.DonationManager; import mineplex.serverdata.database.DBPool; @@ -120,9 +121,17 @@ public class PowerPlayClubRepository implements Listener { _stageOneDataClaims.remove(event.getPlayer().getUniqueId()); // Just in case. _cachedPlayerData.remove(event.getPlayer().getUniqueId()); } + + @EventHandler + public void onDataRequested(PPCDataRequestEvent event) + { + event.setData(getCachedData(event.getPlayer())); + } public CompletableFuture addSubscription(int accountId, LocalDate date, String duration) { + UtilServer.CallEvent(new SubscriptionAddEvent(accountId, duration)); + return CompletableFuture.supplyAsync(() -> { try (Connection connection = DBPool.getAccount().getConnection()) @@ -133,7 +142,8 @@ public class PowerPlayClubRepository implements Listener { statement.setString(3, duration); statement.executeUpdate(); - } catch (SQLException e) + } + catch (SQLException e) { e.printStackTrace(); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/SubscriptionAddEvent.java b/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/SubscriptionAddEvent.java new file mode 100644 index 000000000..50503de00 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/SubscriptionAddEvent.java @@ -0,0 +1,38 @@ +package mineplex.core.powerplayclub; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +public class SubscriptionAddEvent extends Event +{ + private static final HandlerList handlers = new HandlerList(); + + private int _accountId; + private String _duration; + + public SubscriptionAddEvent(int accountId, String duration) + { + _accountId = accountId; + _duration = duration; + } + + public int getAccountId() + { + return _accountId; + } + + public String getDuration() + { + return _duration; + } + + public HandlerList getHandlers() + { + return handlers; + } + + public static HandlerList getHandlerList() + { + return handlers; + } +} \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/website/ForumUserData.java b/Plugins/Mineplex.Core/src/mineplex/core/website/ForumUserData.java new file mode 100644 index 000000000..bd663e61b --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/website/ForumUserData.java @@ -0,0 +1,15 @@ +package mineplex.core.website; + +public class ForumUserData +{ + public boolean Linked; + public int LinkedForumId; + public boolean LastSyncedPowerPlayStatus; + + public ForumUserData() + { + Linked = false; + LinkedForumId = -1; + LastSyncedPowerPlayStatus = false; + } +} \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/website/LinkCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/website/LinkCommand.java new file mode 100644 index 000000000..2d754f9de --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/website/LinkCommand.java @@ -0,0 +1,37 @@ +package mineplex.core.website; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; + +import mineplex.core.command.CommandBase; +import mineplex.core.common.Rank; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; + +public class LinkCommand extends CommandBase +{ + public LinkCommand(WebsiteLinkManager plugin) + { + super(plugin, Rank.ALL, "link"); + } + + @Override + public void Execute(final Player caller, String[] args) + { + if (args.length < 1) + { + UtilPlayer.message(caller, F.help("/" + _aliasUsed + " XXX-XXX-XXX", "Begins linking your Minecraft account with your website link code.", Rank.ALL, ChatColor.GREEN)); + } + else + { + if (Plugin.Get(caller).Linked) + { + UtilPlayer.message(caller, F.main(Plugin.getName(), "Your account is already linked!")); + } + else + { + Plugin.startLink(caller, args[0]); + } + } + } +} \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/website/MineplexAuthenticator.java b/Plugins/Mineplex.Core/src/mineplex/core/website/MineplexAuthenticator.java new file mode 100644 index 000000000..5cd97df4d --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/website/MineplexAuthenticator.java @@ -0,0 +1,28 @@ +package mineplex.core.website; + +import java.net.Authenticator; +import java.net.PasswordAuthentication; + +public class MineplexAuthenticator extends Authenticator +{ + private String _username, _password; + + public MineplexAuthenticator(String username, String password) + { + _username = username; + _password = password; + } + + @Override + public PasswordAuthentication getPasswordAuthentication() + { + System.out.println("-==Mineplex Authentication In Progress==-"); + System.out.println("Requesting Host: " + getRequestingHost()); + System.out.println("Requesting Port: " + getRequestingPort()); + System.out.println("Requesting Prompt: " + getRequestingPrompt()); + System.out.println("Requesting Protocol: " + getRequestingProtocol()); + System.out.println("Requesting Scheme: " + getRequestingScheme()); + System.out.println("Requesting Site: " + getRequestingSite()); + return new PasswordAuthentication(_username, _password.toCharArray()); + } +} \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java b/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java new file mode 100644 index 000000000..3b50ff978 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java @@ -0,0 +1,605 @@ +package mineplex.core.website; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.Authenticator; +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.TimeZone; +import java.util.UUID; + +import org.apache.commons.lang.StringUtils; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.plugin.java.JavaPlugin; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.google.gson.JsonSyntaxException; + +import mineplex.core.MiniDbClientPlugin; +import mineplex.core.account.CoreClientManager; +import mineplex.core.account.event.RankSaveEvent; +import mineplex.core.common.Pair; +import mineplex.core.common.Rank; +import mineplex.core.common.util.Callback; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilServer; +import mineplex.core.powerplayclub.PPCDataRequestEvent; +import mineplex.core.powerplayclub.PowerPlayData; +import mineplex.core.powerplayclub.SubscriptionAddEvent; +import mineplex.serverdata.database.DBPool; + +public class WebsiteLinkManager extends MiniDbClientPlugin +{ + private final JsonParser PARSER = new JsonParser(); + private final String API_URL = "https://xen.mineplex.com/api.php"; + private final String API_KEY = "dd412425-edb0-477c-abee-2d0b507c59ef"; + + public WebsiteLinkManager(JavaPlugin plugin, CoreClientManager clientManager) + { + super("Website Link", plugin, clientManager); + + addCommand(new LinkCommand(this)); + + Authenticator.setDefault(new MineplexAuthenticator("minexen", "c4cADuj&ChaQ")); + } + + public void startLink(Player player, String code) + { + final int forumId = getForumId(code); + final int accountId = getClientManager().getAccountId(player); + final Rank rank = getClientManager().Get(player).GetRank(true); + PowerPlayData d = UtilServer.CallEvent(new PPCDataRequestEvent(player)).getData(); + final boolean powerPlay = (d != null && d.isSubscribed()); + if (forumId == -1) + { + UtilPlayer.message(player, F.main(getName(), "That link code is invalid!")); + return; + } + runAsync(() -> + { + loadXenforoAccount(forumId, data -> + { + if (data == null) + { + UtilPlayer.message(player, F.main(getName(), "That link code is invalid!")); + return; + } + if (data.custom_fields.containsKey("mcAcctIdPC") && !data.custom_fields.get("mcAcctIdPC").isEmpty()) + { + UtilPlayer.message(player, F.main(getName(), "That link code is invalid!")); + return; + } + completeLink(player, data.username, data.user_id, accountId, rank, powerPlay); + }); + }); + } + + private void completeLink(Player player, String forumUser, int userId, int accountId, Rank rank, boolean powerPlay) + { + try (Connection c = DBPool.getAccount().getConnection()) + { + boolean success = c.prepareStatement("INSERT INTO forumLink (accountId, userId, powerPlayStatus) VALUES (" + accountId + ", " + userId + ", " + powerPlay + ");").executeUpdate() > 0; + if (success) + { + String call = "action=editUser&user=" + forumUser + "&custom_fields=mcAcctIdPC=" + accountId; + if (rank.getForumId() != -1) + { + call += ("&add_groups=" + rank.getForumId()); + } + if (powerPlay) + { + if (call.contains("&add_groups=")) + { + call += (",17"); + } + else + { + call += ("&add_groups=17"); + } + } + doAPICall(call, err -> + { + UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!")); + }, () -> + { + UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!")); + }, () -> + { + runSync(() -> + { + UtilPlayer.message(player, F.main(getName(), "You have successfully linked your account!")); + if (player.isOnline()) + { + Get(player).LinkedForumId = userId; + Get(player).LastSyncedPowerPlayStatus = powerPlay; + Get(player).Linked = true; + } + }); + }); + } + else + { + UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!")); + } + } + catch (SQLException e) + { + UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!")); + e.printStackTrace(); + } + } + + private void loadXenforoAccount(int userId, Callback callback) + { + try + { + StringBuilder result = new StringBuilder(); + URL call = new URL(API_URL + "?hash=" + API_KEY + "&action=getUser&value=" + userId); + BufferedReader br = new BufferedReader(new InputStreamReader(call.openStream())); + br.lines().forEach(line -> result.append(line)); + + String json = result.toString().trim(); + + JsonObject response = null; + try + { + response = PARSER.parse(json).getAsJsonObject(); + if (response.has("error")) + { + callback.run(null); + } + else + { + XenForoData data = new XenForoData(); + data.user_id = response.get("user_id").getAsInt(); + data.username = response.get("username").getAsString(); + data.email = response.get("email").getAsString(); + data.user_group_id = response.get("user_group_id").getAsInt(); + String groups = response.get("secondary_group_ids").getAsString(); + if (groups.isEmpty()) + { + data.secondary_group_ids = new int[] {}; + } + else + { + String[] groupIds = groups.split(","); + data.secondary_group_ids = new int[groupIds.length]; + for (int index = 0; index < groupIds.length; index++) + { + data.secondary_group_ids[index] = Integer.parseInt(groupIds[index]); + } + } + Map fields = new HashMap<>(); + if (response.get("custom_fields") instanceof JsonObject) + { + JsonObject cFields = (JsonObject) response.get("custom_fields"); + for (Entry entry : cFields.entrySet()) + { + fields.put(entry.getKey(), entry.getValue().getAsString()); + } + } + data.custom_fields = fields; + callback.run(data); + } + } + catch (JsonSyntaxException e) + { + callback.run(null); + e.printStackTrace(); + return; + } + } + catch (MalformedURLException e) + { + callback.run(null); + e.printStackTrace(); + } + catch (IOException e) + { + callback.run(null); + e.printStackTrace(); + } + } + + private void doAPICall(String call, Callback errorCallback, Runnable ioException, Runnable onComplete) + { + StringBuilder input = new StringBuilder(); + + try (BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(API_URL + "?hash=" + API_KEY + "&" + call).openStream()))) + { + reader.lines().forEach(l -> input.append(l)); + } + catch (IOException e) + { + System.out.println("[XENFORO API] Could not connect to web server"); + e.printStackTrace(); + ioException.run(); + return; + } + + JsonObject response = null; + try + { + response = PARSER.parse(input.toString().trim()).getAsJsonObject(); + } + catch (JsonSyntaxException e) + { + System.out.println("[XENFORO API] Could not parse JSON response data"); + e.printStackTrace(); + return; + } + + if (response.has("error")) + { + if (response.get("error").getAsString().equals("7")) + { + if (response.has("user_error_id")) + { + String errorID = response.get("user_error_id").getAsString(); + + errorCallback.run(errorID); + System.out.println("[XENFORO API] An error was found in the JSON response (id: " + errorID + ") from REST call: " + call); + return; + } + else + { + System.out.println("[XENFORO API] An error was found in the JSON response, but no error code was found from REST call: " + call); + } + } + else + { + System.out.println("[XENFORO API] A non-user error was found in the JSON response (id: " + response.get("error").getAsString() + ") from REST call: " + call); + return; + } + } + else + { + onComplete.run(); + } + } + + private int getForumId(String linkCode) + { + String given = linkCode.replace("-", ""); + if (given.length() < 9) + { + return -1; + } + if (!StringUtils.isNumeric(given)) + { + return -1; + } + + Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC")); + int offset = 100000000; + StringBuilder sb = new StringBuilder((cal.get(Calendar.DAY_OF_YEAR) - 1) + ""); + while (sb.length() < 3) + { + sb.insert(0, "0"); + } + String reverse = sb.reverse().toString(); + Integer test = Integer.parseInt(reverse + reverse + reverse); + test += offset; + + Integer input = Integer.parseInt(given); + + return Math.abs(test - input); + } + + private Pair checkAccountOnline(int accountId) + { + for (Player player : Bukkit.getOnlinePlayers()) + { + if (getClientManager().getAccountId(player) == accountId) + { + return Pair.create(true, player.getUniqueId()); + } + } + + return Pair.create(false, null); + } + + @EventHandler + public void handleRankSave(RankSaveEvent event) + { + Callback dataCallback = new Callback() + { + public void run(XenForoData data) + { + List remove = new ArrayList<>(); + for (Rank rank : Rank.values()) + { + if (rank.getForumId() != -1 && rank != event.getRank()) + { + boolean found = false; + for (int groupId : data.secondary_group_ids) + { + if (groupId == rank.getForumId()) + { + found = true; + } + } + if (found) + { + remove.add(rank.getForumId()); + } + } + } + String callBase = "action=editUser&user=" + data.username; + if (!remove.isEmpty()) + { + String removal = "&remove_groups=" + remove.get(0).intValue(); + for (int i = 1; i < remove.size(); i++) + { + removal += ("," + remove.get(i)); + } + String call = callBase + removal; + doAPICall(call, error -> {}, () -> {}, () -> {}); + } + if (event.getRank().getForumId() != -1) + { + boolean found = false; + for (int groupId : data.secondary_group_ids) + { + if (groupId == event.getRank().getForumId()) + { + found = true; + } + } + if (!found) + { + String call = callBase + "&add_groups=" + event.getRank().getForumId(); + doAPICall(call, error -> {}, () -> {}, () -> {}); + } + } + } + }; + if (Bukkit.getPlayer(event.getUUID()) != null) + { + ForumUserData fd = Get(event.getUUID()); + if (fd.Linked) + { + final int userId = fd.LinkedForumId; + runAsync(() -> + { + loadXenforoAccount(userId, dataCallback); + }); + } + } + else + { + runAsync(() -> + { + getClientManager().getRepository().getAccountId(event.getUUID(), accountId -> + { + runAsync(() -> + { + try (Connection c = DBPool.getAccount().getConnection()) + { + ResultSet rs = c.prepareStatement("SELECT userId FROM forumLink WHERE accountId=" + accountId + ";").executeQuery(); + if (rs.next()) + { + Integer userId = rs.getInt(1); + loadXenforoAccount(userId, dataCallback); + } + } + catch (SQLException e) + { + e.printStackTrace(); + } + }); + }); + }); + } + } + + @EventHandler + public void handleSubscriptionAdd(SubscriptionAddEvent event) + { + Pair p = checkAccountOnline(event.getAccountId()); + if (p.getLeft()) + { + ForumUserData fd = Get(p.getRight()); + if (fd.Linked && !fd.LastSyncedPowerPlayStatus) + { + final int userId = fd.LinkedForumId; + runAsync(() -> + { + loadXenforoAccount(userId, data -> + { + boolean has = false; + for (int groupId : data.secondary_group_ids) + { + if (groupId == 17) + { + has = true; + } + } + if (!has) + { + doAPICall("action=editUser&user=" + data.username + "&add_groups=17", error -> {}, () -> {}, () -> + { + runSync(() -> + { + fd.LastSyncedPowerPlayStatus = true; + }); + try (Connection c = DBPool.getAccount().getConnection()) + { + c.prepareStatement("UPDATE forumLink SET powerPlayStatus=true WHERE accountId=" + event.getAccountId() + ";").execute(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + }); + } + }); + }); + } + } + else + { + runAsync(() -> + { + try (Connection c = DBPool.getAccount().getConnection()) + { + ResultSet rs = c.prepareStatement("SELECT userId FROM forumLink WHERE accountId=" + event.getAccountId() + ";").executeQuery(); + if (rs.next()) + { + Integer userId = rs.getInt(1); + loadXenforoAccount(userId, data -> + { + boolean has = false; + for (int groupId : data.secondary_group_ids) + { + if (groupId == 17) + { + has = true; + } + } + if (!has) + { + doAPICall("action=editUser&user=" + data.username + "&add_groups=17", error -> {}, () -> {}, () -> + { + try + { + c.prepareStatement("UPDATE forumLink SET powerPlayStatus=true WHERE accountId=" + event.getAccountId() + ";").execute(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + }); + } + }); + } + } + catch (SQLException e) + { + e.printStackTrace(); + } + }); + } + } + + @EventHandler + public void updatePPCTag(PlayerJoinEvent event) + { + runSyncLater(() -> + { + if (event.getPlayer().isOnline()) + { + boolean ppc = false; + PowerPlayData d = UtilServer.CallEvent(new PPCDataRequestEvent(event.getPlayer())).getData(); + if (d != null) + { + ppc = d.isSubscribed(); + final boolean powerPlay = ppc; + if (Get(event.getPlayer()).Linked && Get(event.getPlayer()).LastSyncedPowerPlayStatus != powerPlay) + { + final int userId = Get(event.getPlayer()).LinkedForumId; + final int accountId = getClientManager().getAccountId(event.getPlayer()); + runAsync(() -> + { + loadXenforoAccount(userId, data -> + { + String call = ""; + boolean change = false; + boolean has = false; + for (int groupId : data.secondary_group_ids) + { + if (groupId == 17) + { + has = true; + } + } + if (powerPlay) + { + if (!has) + { + call = "action=editUser&user=" + data.username + "&add_groups=17"; + change = true; + } + } + else + { + if (has) + { + call = "action=editUser&user=" + data.username + "&remove_groups=17"; + change = true; + } + } + if (change) + { + doAPICall(call, error -> {}, () -> {}, () -> + { + runSync(() -> + { + if (event.getPlayer().isOnline()) + { + Get(event.getPlayer()).LastSyncedPowerPlayStatus = powerPlay; + } + }); + try (Connection c = DBPool.getAccount().getConnection()) + { + c.prepareStatement("UPDATE forumLink SET powerPlayStatus=" + powerPlay + " WHERE accountId=" + accountId + ";").execute(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + }); + } + }); + }); + } + } + } + }, 40L); + } + + @Override + public String getQuery(int accountId, String uuid, String name) + { + return "SELECT userId, powerPlayStatus FROM forumLink WHERE accountId=" + accountId + ";"; + } + + @Override + public void processLoginResultSet(String playerName, UUID uuid, int accountId, ResultSet resultSet) throws SQLException + { + if (resultSet.next()) + { + ForumUserData data = new ForumUserData(); + data.Linked = true; + data.LinkedForumId = resultSet.getInt(1); + data.LastSyncedPowerPlayStatus = resultSet.getBoolean(2); + Set(uuid, data); + } + else + { + Set(uuid, new ForumUserData()); + } + } + + @Override + protected ForumUserData addPlayer(UUID uuid) + { + return new ForumUserData(); + } +} \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/website/XenForoData.java b/Plugins/Mineplex.Core/src/mineplex/core/website/XenForoData.java new file mode 100644 index 000000000..cb5901982 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/website/XenForoData.java @@ -0,0 +1,13 @@ +package mineplex.core.website; + +import java.util.Map; + +public class XenForoData +{ + public int user_id; + public String username; + public String email; + public int user_group_id; + public int[] secondary_group_ids; + public Map custom_fields; +} \ No newline at end of file diff --git a/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/ClansHub.java b/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/ClansHub.java index e44061aad..7f10bdfca 100644 --- a/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/ClansHub.java +++ b/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/ClansHub.java @@ -60,6 +60,7 @@ import mineplex.core.updater.FileUpdater; import mineplex.core.updater.Updater; import mineplex.core.velocity.VelocityFix; import mineplex.core.visibility.VisibilityManager; +import mineplex.core.website.WebsiteLinkManager; import mineplex.minecraft.game.core.combat.CombatManager; import mineplex.minecraft.game.core.condition.ConditionManager; import mineplex.minecraft.game.core.damage.DamageManager; @@ -181,6 +182,7 @@ public class ClansHub extends JavaPlugin require(TrackManager.class); require(Titles.class); require(TwoFactorAuth.class); + new WebsiteLinkManager(this, clientManager); } @Override diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java index 763bbb153..1269d0ed9 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java @@ -1,5 +1,7 @@ package mineplex.hub; +import static mineplex.core.Managers.require; + import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -74,6 +76,7 @@ import mineplex.core.updater.FileUpdater; import mineplex.core.updater.Updater; import mineplex.core.velocity.VelocityFix; import mineplex.core.visibility.VisibilityManager; +import mineplex.core.website.WebsiteLinkManager; import mineplex.hub.modules.BillboardManager; import mineplex.hub.queue.QueueManager; import mineplex.hub.server.ServerManager; @@ -88,8 +91,6 @@ import mineplex.minecraft.game.core.combat.CombatManager; import mineplex.minecraft.game.core.damage.DamageManager; import mineplex.minecraft.game.core.fire.Fire; -import static mineplex.core.Managers.require; - public class Hub extends JavaPlugin implements IRelation { private NpcManager _npcManager; @@ -236,6 +237,7 @@ public class Hub extends JavaPlugin implements IRelation require(Titles.class); require(TwoFactorAuth.class); require(TeamspeakManager.class); + new WebsiteLinkManager(this, clientManager); } @Override 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 6478db304..302603df5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java @@ -73,6 +73,7 @@ import mineplex.core.updater.FileUpdater; import mineplex.core.updater.Updater; import mineplex.core.velocity.VelocityFix; import mineplex.core.visibility.VisibilityManager; +import mineplex.core.website.WebsiteLinkManager; import mineplex.minecraft.game.core.combat.CombatManager; import mineplex.minecraft.game.core.damage.DamageManager; @@ -199,6 +200,7 @@ public class Arcade extends JavaPlugin new FoodDupeFix(this); require(TwoFactorAuth.class); + new WebsiteLinkManager(this, _clientManager); //Updates getServer().getScheduler().scheduleSyncRepeatingTask(this, new Updater(this), 1, 1); From f6fdc1f8173950ac58bf84ec1697b71413ffec48 Mon Sep 17 00:00:00 2001 From: AlexTheCoder Date: Sat, 25 Feb 2017 12:52:34 -0500 Subject: [PATCH 069/133] Implement a method for administrators to remove the link between an in-game minecraft account and a forum account, and rewrite synchronization of tags to more effectively handle the intricacies of the API being utilized --- .../mineplex/core/website/UnlinkCommand.java | 30 + .../core/website/WebsiteLinkManager.java | 538 +++++++++++++----- 2 files changed, 411 insertions(+), 157 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/website/UnlinkCommand.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/website/UnlinkCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/website/UnlinkCommand.java new file mode 100644 index 000000000..730d9b1fe --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/website/UnlinkCommand.java @@ -0,0 +1,30 @@ +package mineplex.core.website; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; + +import mineplex.core.command.CommandBase; +import mineplex.core.common.Rank; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; + +public class UnlinkCommand extends CommandBase +{ + public UnlinkCommand(WebsiteLinkManager plugin) + { + super(plugin, Rank.ADMIN, "unlink"); + } + + @Override + public void Execute(final Player caller, String[] args) + { + if (args.length < 1) + { + UtilPlayer.message(caller, F.help("/" + _aliasUsed + " ", "Removes a link to a forum and in-game account.", Rank.ADMIN, ChatColor.RED)); + } + else + { + Plugin.unlink(caller, args[0]); + } + } +} \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java b/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java index 3b50ff978..b8bb6825e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java @@ -55,10 +55,120 @@ public class WebsiteLinkManager extends MiniDbClientPlugin super("Website Link", plugin, clientManager); addCommand(new LinkCommand(this)); + addCommand(new UnlinkCommand(this)); Authenticator.setDefault(new MineplexAuthenticator("minexen", "c4cADuj&ChaQ")); } + public void unlink(Player sender, String target) + { + getClientManager().getOrLoadClient(target, client -> + { + if (client != null) + { + Callback dataCallback = data -> + { + if (data == null) + { + UtilPlayer.message(sender, F.main(getName(), "Could not find " + F.name(target) + "!")); + } + else + { + if (!data.Linked) + { + UtilPlayer.message(sender, F.main(getName(), F.name(target) + " is not linked to a forum account!")); + } + else + { + runAsync(() -> + { + loadXenforoAccount(data.LinkedForumId, user -> + { + List remove = new ArrayList<>(); + remove.add(17); + remove.add(91); + for (Rank rank : Rank.values()) + { + if (rank.getForumId() != -1) + { + remove.add(rank.getForumId()); + } + } + String call = "action=editUser&user=" + user.username + "&custom_fields=mcAcctIdPC="; + doAPICall(call, err -> + { + runSync(() -> UtilPlayer.message(sender, F.main(getName(), F.name(target) + " was not able to be unlinked at this time!"))); + }, () -> + { + runSync(() -> UtilPlayer.message(sender, F.main(getName(), F.name(target) + " was not able to be unlinked at this time!"))); + }, () -> + { + refreshSiteTags(data.LinkedForumId, remove, new ArrayList<>(), false, () -> + { + try (Connection c = DBPool.getAccount().getConnection()) + { + c.prepareStatement("DELETE FROM forumLink WHERE accountId=" + client.getAccountId()).execute(); + runSync(() -> + { + UtilPlayer.message(sender, F.main(getName(), F.name(target) + " was successfully unlinked!")); + data.Linked = false; + data.LinkedForumId = -1; + data.LastSyncedPowerPlayStatus = false; + }); + } + catch (SQLException e) + { + e.printStackTrace(); + runSync(() -> UtilPlayer.message(sender, F.main(getName(), F.name(target) + " was not able to be unlinked at this time!"))); + } + }, false, () -> UtilPlayer.message(sender, F.main(getName(), F.name(target) + " was not able to be unlinked at this time!")), true); + }); + }); + }); + } + } + }; + if (Bukkit.getPlayer(client.getUniqueId()) != null) + { + dataCallback.run(Get(client.getUniqueId())); + } + else + { + runAsync(() -> + { + try (Connection c = DBPool.getAccount().getConnection()) + { + ResultSet rs = c.prepareStatement("SELECT userId, powerPlayStatus FROM forumLink WHERE accountId=" + client.getAccountId() + ";").executeQuery(); + if (rs.next()) + { + Integer userId = rs.getInt(1); + Boolean powerPlay = rs.getBoolean(2); + final ForumUserData data = new ForumUserData(); + data.Linked = true; + data.LinkedForumId = userId; + data.LastSyncedPowerPlayStatus = powerPlay; + runSync(() -> dataCallback.run(data)); + } + else + { + runSync(() -> dataCallback.run(new ForumUserData())); + } + } + catch (SQLException e) + { + e.printStackTrace(); + runSync(() -> dataCallback.run(new ForumUserData())); + } + }); + } + } + else + { + UtilPlayer.message(sender, F.main(getName(), "Could not find " + F.name(target) + "!")); + } + }); + } + public void startLink(Player player, String code) { final int forumId = getForumId(code); @@ -85,66 +195,248 @@ public class WebsiteLinkManager extends MiniDbClientPlugin UtilPlayer.message(player, F.main(getName(), "That link code is invalid!")); return; } - completeLink(player, data.username, data.user_id, accountId, rank, powerPlay); + completeLink(player, data, accountId, rank, powerPlay); }); }); } - private void completeLink(Player player, String forumUser, int userId, int accountId, Rank rank, boolean powerPlay) + private void completeLink(Player player, XenForoData data, int accountId, Rank rank, boolean powerPlay) { try (Connection c = DBPool.getAccount().getConnection()) { - boolean success = c.prepareStatement("INSERT INTO forumLink (accountId, userId, powerPlayStatus) VALUES (" + accountId + ", " + userId + ", " + powerPlay + ");").executeUpdate() > 0; + boolean success = c.prepareStatement("INSERT INTO forumLink (accountId, userId, powerPlayStatus) VALUES (" + accountId + ", " + data.user_id + ", " + powerPlay + ");").executeUpdate() > 0; if (success) { - String call = "action=editUser&user=" + forumUser + "&custom_fields=mcAcctIdPC=" + accountId; + String call = "action=editUser&user=" + data.username + "&custom_fields=mcAcctIdPC=" + accountId; + List adding = new ArrayList<>(); + adding.add(91); if (rank.getForumId() != -1) { - call += ("&add_groups=" + rank.getForumId()); + adding.add(rank.getForumId()); } if (powerPlay) { - if (call.contains("&add_groups=")) - { - call += (",17"); - } - else - { - call += ("&add_groups=17"); - } + adding.add(17); } doAPICall(call, err -> { - UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!")); + runSync(() -> UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!"))); }, () -> { - UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!")); + runSync(() -> UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!"))); }, () -> { - runSync(() -> + refreshSiteTags(data, new ArrayList<>(), adding, false, () -> { UtilPlayer.message(player, F.main(getName(), "You have successfully linked your account!")); if (player.isOnline()) { - Get(player).LinkedForumId = userId; + Get(player).LinkedForumId = data.user_id; Get(player).LastSyncedPowerPlayStatus = powerPlay; Get(player).Linked = true; } - }); + }, true, () -> UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!")), true); }); } else { - UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!")); + runSync(() -> UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!"))); } } catch (SQLException e) { - UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!")); + runSync(() -> UtilPlayer.message(player, F.main(getName(), "The link failed! Please try again!"))); e.printStackTrace(); } } + private void refreshSiteTags(int userId, List removing, List adding, boolean runAsync, Runnable after, boolean runAfterSync, Runnable onErr, boolean runErrSync) + { + Runnable r = () -> + { + loadXenforoAccount(userId, data -> + { + refreshSiteTags(data, removing, adding, false, after, runAfterSync, onErr, runErrSync); + }); + }; + + if (runAsync) + { + runAsync(r); + } + else + { + r.run(); + } + } + + private void refreshSiteTags(XenForoData data, List removing, List adding, boolean runAsync, Runnable after, boolean runAfterSync, Runnable onErr, boolean runErrSync) + { + Runnable r = () -> + { + if (data == null) + { + return; + } + String callBase = "action=editUser&user=" + data.username; + String groups = ""; + for (int groupId : data.secondary_group_ids) + { + if (!removing.contains(groupId) && !adding.contains(groupId)) + { + groups += ("," + groupId); + } + } + for (Integer groupId : adding) + { + groups += ("," + groupId); + } + if (!groups.isEmpty()) + { + groups = groups.substring(1); + } + final String addGroups = groups; + groups = ""; + for (int groupId : data.secondary_group_ids) + { + groups += ("," + groupId); + } + if (!groups.isEmpty()) + { + groups = groups.substring(1); + } + final String remGroups = groups; + if (!remGroups.isEmpty()) + { + doAPICall(callBase + "&remove_groups=" + remGroups, err -> + { + if (runErrSync) + { + runSync(onErr); + } + else + { + onErr.run(); + } + }, () -> + { + if (runErrSync) + { + runSync(onErr); + } + else + { + onErr.run(); + } + }, () -> + { + if (!addGroups.isEmpty()) + { + doAPICall(callBase + "&add_groups=" + addGroups, err -> + { + if (runErrSync) + { + runSync(onErr); + } + else + { + onErr.run(); + } + }, () -> + { + if (runErrSync) + { + runSync(onErr); + } + else + { + onErr.run(); + } + }, () -> + { + if (runAfterSync) + { + runSync(after); + } + else + { + after.run(); + } + }); + } + else + { + if (runAfterSync) + { + runSync(after); + } + else + { + after.run(); + } + } + }); + } + else + { + if (!addGroups.isEmpty()) + { + doAPICall(callBase + "&add_groups=" + addGroups, err -> + { + if (runErrSync) + { + runSync(onErr); + } + else + { + onErr.run(); + } + }, () -> + { + if (runErrSync) + { + runSync(onErr); + } + else + { + onErr.run(); + } + }, () -> + { + if (runAfterSync) + { + runSync(after); + } + else + { + after.run(); + } + }); + } + else + { + if (runAfterSync) + { + runSync(after); + } + else + { + after.run(); + } + } + } + }; + + if (runAsync) + { + runAsync(r); + } + else + { + r.run(); + } + } + private void loadXenforoAccount(int userId, Callback callback) { try @@ -288,7 +580,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC")); int offset = 100000000; - StringBuilder sb = new StringBuilder((cal.get(Calendar.DAY_OF_YEAR) - 1) + ""); + StringBuilder sb = new StringBuilder(cal.get(Calendar.DAY_OF_YEAR) + ""); while (sb.length() < 3) { sb.insert(0, "0"); @@ -299,7 +591,20 @@ public class WebsiteLinkManager extends MiniDbClientPlugin Integer input = Integer.parseInt(given); - return Math.abs(test - input); + Integer abs = Math.abs(test - input); + +// Bukkit.broadcastMessage("REVERSE: " + reverse); +// Bukkit.broadcastMessage("TEST: " + test); +// Bukkit.broadcastMessage("INPUT: " + input); +// Bukkit.broadcastMessage("ABS: " + abs); +// Bukkit.broadcastMessage("MODULUS: " + abs % 11); + + if (abs % 11 != 0) + { + return -1; + } + + return abs / 11; } private Pair checkAccountOnline(int accountId) @@ -318,57 +623,22 @@ public class WebsiteLinkManager extends MiniDbClientPlugin @EventHandler public void handleRankSave(RankSaveEvent event) { - Callback dataCallback = new Callback() + Callback dataCallback = id -> { - public void run(XenForoData data) + List remove = new ArrayList<>(); + List add = new ArrayList<>(); + for (Rank rank : Rank.values()) { - List remove = new ArrayList<>(); - for (Rank rank : Rank.values()) + if (rank.getForumId() != -1 && rank != event.getRank()) { - if (rank.getForumId() != -1 && rank != event.getRank()) - { - boolean found = false; - for (int groupId : data.secondary_group_ids) - { - if (groupId == rank.getForumId()) - { - found = true; - } - } - if (found) - { - remove.add(rank.getForumId()); - } - } - } - String callBase = "action=editUser&user=" + data.username; - if (!remove.isEmpty()) - { - String removal = "&remove_groups=" + remove.get(0).intValue(); - for (int i = 1; i < remove.size(); i++) - { - removal += ("," + remove.get(i)); - } - String call = callBase + removal; - doAPICall(call, error -> {}, () -> {}, () -> {}); - } - if (event.getRank().getForumId() != -1) - { - boolean found = false; - for (int groupId : data.secondary_group_ids) - { - if (groupId == event.getRank().getForumId()) - { - found = true; - } - } - if (!found) - { - String call = callBase + "&add_groups=" + event.getRank().getForumId(); - doAPICall(call, error -> {}, () -> {}, () -> {}); - } + remove.add(rank.getForumId()); } } + if (event.getRank().getForumId() != -1) + { + add.add(event.getRank().getForumId()); + } + refreshSiteTags(id, remove, add, false, () -> {}, false, () -> {}, false); }; if (Bukkit.getPlayer(event.getUUID()) != null) { @@ -378,7 +648,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin final int userId = fd.LinkedForumId; runAsync(() -> { - loadXenforoAccount(userId, dataCallback); + dataCallback.run(userId); }); } } @@ -396,7 +666,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin if (rs.next()) { Integer userId = rs.getInt(1); - loadXenforoAccount(userId, dataCallback); + dataCallback.run(userId); } } catch (SQLException e) @@ -421,35 +691,23 @@ public class WebsiteLinkManager extends MiniDbClientPlugin final int userId = fd.LinkedForumId; runAsync(() -> { - loadXenforoAccount(userId, data -> + List add = new ArrayList<>(); + add.add(17); + refreshSiteTags(userId, new ArrayList<>(), add, false, () -> { - boolean has = false; - for (int groupId : data.secondary_group_ids) + runSync(() -> { - if (groupId == 17) - { - has = true; - } - } - if (!has) + fd.LastSyncedPowerPlayStatus = true; + }); + try (Connection c = DBPool.getAccount().getConnection()) { - doAPICall("action=editUser&user=" + data.username + "&add_groups=17", error -> {}, () -> {}, () -> - { - runSync(() -> - { - fd.LastSyncedPowerPlayStatus = true; - }); - try (Connection c = DBPool.getAccount().getConnection()) - { - c.prepareStatement("UPDATE forumLink SET powerPlayStatus=true WHERE accountId=" + event.getAccountId() + ";").execute(); - } - catch (SQLException e) - { - e.printStackTrace(); - } - }); + c.prepareStatement("UPDATE forumLink SET powerPlayStatus=true WHERE accountId=" + event.getAccountId() + ";").execute(); } - }); + catch (SQLException e) + { + e.printStackTrace(); + } + }, false, () -> {}, false); }); } } @@ -463,31 +721,19 @@ public class WebsiteLinkManager extends MiniDbClientPlugin if (rs.next()) { Integer userId = rs.getInt(1); - loadXenforoAccount(userId, data -> + List add = new ArrayList<>(); + add.add(17); + refreshSiteTags(userId, new ArrayList<>(), add, false, () -> { - boolean has = false; - for (int groupId : data.secondary_group_ids) + try { - if (groupId == 17) - { - has = true; - } + c.prepareStatement("UPDATE forumLink SET powerPlayStatus=true WHERE accountId=" + event.getAccountId() + ";").execute(); } - if (!has) + catch (SQLException e) { - doAPICall("action=editUser&user=" + data.username + "&add_groups=17", error -> {}, () -> {}, () -> - { - try - { - c.prepareStatement("UPDATE forumLink SET powerPlayStatus=true WHERE accountId=" + event.getAccountId() + ";").execute(); - } - catch (SQLException e) - { - e.printStackTrace(); - } - }); + e.printStackTrace(); } - }); + }, false, () -> {}, false); } } catch (SQLException e) @@ -517,56 +763,34 @@ public class WebsiteLinkManager extends MiniDbClientPlugin final int accountId = getClientManager().getAccountId(event.getPlayer()); runAsync(() -> { - loadXenforoAccount(userId, data -> + List remove = new ArrayList<>(); + List add = new ArrayList<>(); + if (powerPlay) { - String call = ""; - boolean change = false; - boolean has = false; - for (int groupId : data.secondary_group_ids) + add.add(17); + } + else + { + remove.add(17); + } + refreshSiteTags(userId, remove, add, false, () -> + { + runSync(() -> { - if (groupId == 17) + if (event.getPlayer().isOnline()) { - has = true; + Get(event.getPlayer()).LastSyncedPowerPlayStatus = powerPlay; } - } - if (powerPlay) + }); + try (Connection c = DBPool.getAccount().getConnection()) { - if (!has) - { - call = "action=editUser&user=" + data.username + "&add_groups=17"; - change = true; - } + c.prepareStatement("UPDATE forumLink SET powerPlayStatus=" + powerPlay + " WHERE accountId=" + accountId + ";").execute(); } - else + catch (SQLException e) { - if (has) - { - call = "action=editUser&user=" + data.username + "&remove_groups=17"; - change = true; - } + e.printStackTrace(); } - if (change) - { - doAPICall(call, error -> {}, () -> {}, () -> - { - runSync(() -> - { - if (event.getPlayer().isOnline()) - { - Get(event.getPlayer()).LastSyncedPowerPlayStatus = powerPlay; - } - }); - try (Connection c = DBPool.getAccount().getConnection()) - { - c.prepareStatement("UPDATE forumLink SET powerPlayStatus=" + powerPlay + " WHERE accountId=" + accountId + ";").execute(); - } - catch (SQLException e) - { - e.printStackTrace(); - } - }); - } - }); + }, false, () -> {}, false); }); } } From 1ff033de434df6e29897fb6d60eb1f2808521104 Mon Sep 17 00:00:00 2001 From: AlexTheCoder Date: Sat, 25 Feb 2017 19:44:55 -0500 Subject: [PATCH 070/133] Refactor website link to use consumers instead of callbacks --- .../core/website/WebsiteLinkManager.java | 129 +++++++++--------- 1 file changed, 66 insertions(+), 63 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java b/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java index b8bb6825e..f6787c514 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java @@ -17,6 +17,8 @@ import java.util.Map; import java.util.Map.Entry; import java.util.TimeZone; import java.util.UUID; +import java.util.function.BiConsumer; +import java.util.function.Consumer; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; @@ -33,9 +35,7 @@ import com.google.gson.JsonSyntaxException; import mineplex.core.MiniDbClientPlugin; import mineplex.core.account.CoreClientManager; import mineplex.core.account.event.RankSaveEvent; -import mineplex.core.common.Pair; import mineplex.core.common.Rank; -import mineplex.core.common.util.Callback; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; @@ -66,7 +66,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin { if (client != null) { - Callback dataCallback = data -> + Consumer dataCallback = data -> { if (data == null) { @@ -130,7 +130,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin }; if (Bukkit.getPlayer(client.getUniqueId()) != null) { - dataCallback.run(Get(client.getUniqueId())); + dataCallback.accept(Get(client.getUniqueId())); } else { @@ -147,17 +147,17 @@ public class WebsiteLinkManager extends MiniDbClientPlugin data.Linked = true; data.LinkedForumId = userId; data.LastSyncedPowerPlayStatus = powerPlay; - runSync(() -> dataCallback.run(data)); + runSync(() -> dataCallback.accept(data)); } else { - runSync(() -> dataCallback.run(new ForumUserData())); + runSync(() -> dataCallback.accept(new ForumUserData())); } } catch (SQLException e) { e.printStackTrace(); - runSync(() -> dataCallback.run(new ForumUserData())); + runSync(() -> dataCallback.accept(new ForumUserData())); } }); } @@ -437,7 +437,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin } } - private void loadXenforoAccount(int userId, Callback callback) + private void loadXenforoAccount(int userId, Consumer callback) { try { @@ -454,7 +454,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin response = PARSER.parse(json).getAsJsonObject(); if (response.has("error")) { - callback.run(null); + callback.accept(null); } else { @@ -487,29 +487,29 @@ public class WebsiteLinkManager extends MiniDbClientPlugin } } data.custom_fields = fields; - callback.run(data); + callback.accept(data); } } catch (JsonSyntaxException e) { - callback.run(null); + callback.accept(null); e.printStackTrace(); return; } } catch (MalformedURLException e) { - callback.run(null); + callback.accept(null); e.printStackTrace(); } catch (IOException e) { - callback.run(null); + callback.accept(null); e.printStackTrace(); } } - private void doAPICall(String call, Callback errorCallback, Runnable ioException, Runnable onComplete) + private void doAPICall(String call, Consumer errorCallback, Runnable ioException, Runnable onComplete) { StringBuilder input = new StringBuilder(); @@ -545,7 +545,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin { String errorID = response.get("user_error_id").getAsString(); - errorCallback.run(errorID); + errorCallback.accept(errorID); System.out.println("[XENFORO API] An error was found in the JSON response (id: " + errorID + ") from REST call: " + call); return; } @@ -607,23 +607,24 @@ public class WebsiteLinkManager extends MiniDbClientPlugin return abs / 11; } - private Pair checkAccountOnline(int accountId) + private void checkAccountOnline(int accountId, BiConsumer consumer) { for (Player player : Bukkit.getOnlinePlayers()) { if (getClientManager().getAccountId(player) == accountId) { - return Pair.create(true, player.getUniqueId()); + consumer.accept(true, player.getUniqueId()); + return; } } - return Pair.create(false, null); + consumer.accept(false, null); } @EventHandler public void handleRankSave(RankSaveEvent event) { - Callback dataCallback = id -> + Consumer dataCallback = id -> { List remove = new ArrayList<>(); List add = new ArrayList<>(); @@ -648,7 +649,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin final int userId = fd.LinkedForumId; runAsync(() -> { - dataCallback.run(userId); + dataCallback.accept(userId); }); } } @@ -666,7 +667,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin if (rs.next()) { Integer userId = rs.getInt(1); - dataCallback.run(userId); + dataCallback.accept(userId); } } catch (SQLException e) @@ -682,50 +683,25 @@ public class WebsiteLinkManager extends MiniDbClientPlugin @EventHandler public void handleSubscriptionAdd(SubscriptionAddEvent event) { - Pair p = checkAccountOnline(event.getAccountId()); - if (p.getLeft()) + checkAccountOnline(event.getAccountId(), (online, uuid) -> { - ForumUserData fd = Get(p.getRight()); - if (fd.Linked && !fd.LastSyncedPowerPlayStatus) + if (online) { - final int userId = fd.LinkedForumId; - runAsync(() -> + ForumUserData fd = Get(uuid); + if (fd.Linked && !fd.LastSyncedPowerPlayStatus) { - List add = new ArrayList<>(); - add.add(17); - refreshSiteTags(userId, new ArrayList<>(), add, false, () -> + final int userId = fd.LinkedForumId; + runAsync(() -> { - runSync(() -> - { - fd.LastSyncedPowerPlayStatus = true; - }); - try (Connection c = DBPool.getAccount().getConnection()) - { - c.prepareStatement("UPDATE forumLink SET powerPlayStatus=true WHERE accountId=" + event.getAccountId() + ";").execute(); - } - catch (SQLException e) - { - e.printStackTrace(); - } - }, false, () -> {}, false); - }); - } - } - else - { - runAsync(() -> - { - try (Connection c = DBPool.getAccount().getConnection()) - { - ResultSet rs = c.prepareStatement("SELECT userId FROM forumLink WHERE accountId=" + event.getAccountId() + ";").executeQuery(); - if (rs.next()) - { - Integer userId = rs.getInt(1); List add = new ArrayList<>(); add.add(17); refreshSiteTags(userId, new ArrayList<>(), add, false, () -> { - try + runSync(() -> + { + fd.LastSyncedPowerPlayStatus = true; + }); + try (Connection c = DBPool.getAccount().getConnection()) { c.prepareStatement("UPDATE forumLink SET powerPlayStatus=true WHERE accountId=" + event.getAccountId() + ";").execute(); } @@ -734,14 +710,41 @@ public class WebsiteLinkManager extends MiniDbClientPlugin e.printStackTrace(); } }, false, () -> {}, false); - } + }); } - catch (SQLException e) + } + else + { + runAsync(() -> { - e.printStackTrace(); - } - }); - } + try (Connection c = DBPool.getAccount().getConnection()) + { + ResultSet rs = c.prepareStatement("SELECT userId FROM forumLink WHERE accountId=" + event.getAccountId() + ";").executeQuery(); + if (rs.next()) + { + Integer userId = rs.getInt(1); + List add = new ArrayList<>(); + add.add(17); + refreshSiteTags(userId, new ArrayList<>(), add, false, () -> + { + try + { + c.prepareStatement("UPDATE forumLink SET powerPlayStatus=true WHERE accountId=" + event.getAccountId() + ";").execute(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + }, false, () -> {}, false); + } + } + catch (SQLException e) + { + e.printStackTrace(); + } + }); + } + }); } @EventHandler From 3b2c50efa3cf043588e0d0c331a49240fd9b9916 Mon Sep 17 00:00:00 2001 From: AlexTheCoder Date: Wed, 1 Mar 2017 03:02:12 -0500 Subject: [PATCH 071/133] Remove magic values for PPC tag id and linked tag id --- .../mineplex/core/website/WebsiteLinkManager.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java b/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java index f6787c514..3ab0e1637 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java @@ -49,6 +49,8 @@ public class WebsiteLinkManager extends MiniDbClientPlugin private final JsonParser PARSER = new JsonParser(); private final String API_URL = "https://xen.mineplex.com/api.php"; private final String API_KEY = "dd412425-edb0-477c-abee-2d0b507c59ef"; + private final int POWER_PLAY_TAG_ID = 17; + private final int LINKED_TAG_ID = 91; public WebsiteLinkManager(JavaPlugin plugin, CoreClientManager clientManager) { @@ -85,8 +87,8 @@ public class WebsiteLinkManager extends MiniDbClientPlugin loadXenforoAccount(data.LinkedForumId, user -> { List remove = new ArrayList<>(); - remove.add(17); - remove.add(91); + remove.add(POWER_PLAY_TAG_ID); + remove.add(LINKED_TAG_ID); for (Rank rank : Rank.values()) { if (rank.getForumId() != -1) @@ -216,7 +218,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin } if (powerPlay) { - adding.add(17); + adding.add(POWER_PLAY_TAG_ID); } doAPICall(call, err -> { @@ -694,7 +696,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin runAsync(() -> { List add = new ArrayList<>(); - add.add(17); + add.add(POWER_PLAY_TAG_ID); refreshSiteTags(userId, new ArrayList<>(), add, false, () -> { runSync(() -> @@ -770,11 +772,11 @@ public class WebsiteLinkManager extends MiniDbClientPlugin List add = new ArrayList<>(); if (powerPlay) { - add.add(17); + add.add(POWER_PLAY_TAG_ID); } else { - remove.add(17); + remove.add(POWER_PLAY_TAG_ID); } refreshSiteTags(userId, remove, add, false, () -> { From d95ed8d7499fcc3fdf00cb10c19570eaff80ec86 Mon Sep 17 00:00:00 2001 From: cnr Date: Thu, 23 Mar 2017 23:22:33 -0500 Subject: [PATCH 072/133] Disable /link and /unlink help messages --- .../Mineplex.Core/src/mineplex/core/website/LinkCommand.java | 3 +-- .../src/mineplex/core/website/UnlinkCommand.java | 5 +---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/website/LinkCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/website/LinkCommand.java index 2d754f9de..74dcbe768 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/website/LinkCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/website/LinkCommand.java @@ -1,6 +1,5 @@ package mineplex.core.website; -import org.bukkit.ChatColor; import org.bukkit.entity.Player; import mineplex.core.command.CommandBase; @@ -20,7 +19,7 @@ public class LinkCommand extends CommandBase { if (args.length < 1) { - UtilPlayer.message(caller, F.help("/" + _aliasUsed + " XXX-XXX-XXX", "Begins linking your Minecraft account with your website link code.", Rank.ALL, ChatColor.GREEN)); + //UtilPlayer.message(caller, F.help("/" + _aliasUsed + " XXX-XXX-XXX", "Begins linking your Minecraft account with your website link code.", Rank.ALL, ChatColor.GREEN)); } else { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/website/UnlinkCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/website/UnlinkCommand.java index 730d9b1fe..b6060c863 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/website/UnlinkCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/website/UnlinkCommand.java @@ -1,12 +1,9 @@ package mineplex.core.website; -import org.bukkit.ChatColor; import org.bukkit.entity.Player; import mineplex.core.command.CommandBase; import mineplex.core.common.Rank; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; public class UnlinkCommand extends CommandBase { @@ -20,7 +17,7 @@ public class UnlinkCommand extends CommandBase { if (args.length < 1) { - UtilPlayer.message(caller, F.help("/" + _aliasUsed + " ", "Removes a link to a forum and in-game account.", Rank.ADMIN, ChatColor.RED)); + //UtilPlayer.message(caller, F.help("/" + _aliasUsed + " ", "Removes a link to a forum and in-game account.", Rank.ADMIN, ChatColor.RED)); } else { From 0ad69ebefc3107a69d6eb6980a479437f800f371 Mon Sep 17 00:00:00 2001 From: cnr Date: Thu, 23 Mar 2017 23:24:00 -0500 Subject: [PATCH 073/133] Revert "Merge branch update/bridges into develop" This reverts commit 7e8f5b4939e9a095a2b3cb90b036629fce6b9fa3, reversing changes made to 222e4267d2f3eed163d10c9a7be97ab4eec2d68b. --- .../core/common/util/UtilParticle.java | 5 +- .../game/games/bridge/BattleCryManager.java | 6 + .../game/arcade/game/games/bridge/Bridge.java | 744 +++++++++++------- .../bridge/animation/BridgeAnimation.java | 45 -- .../bridge/animation/BridgeAnimationType.java | 44 -- .../bridge/animation/IceBridgeAnimation.java | 79 -- .../bridge/animation/LavaBridgeAnimation.java | 84 -- .../animation/LillyPadBridgeAnimation.java | 65 -- .../animation/MushroomBridgeAnimation.java | 107 --- .../bridge/animation/WoodBridgeAnimation.java | 129 --- .../custom/CustomBridgeAnimation.java | 246 ------ .../custom/RadiusCustomBridgeAnimation.java | 58 -- .../custom/RandomCustomBridgeAnimation.java | 44 -- .../game/games/bridge/kits/KitApple.java | 2 +- .../game/games/bridge/kits/KitArcher.java | 2 +- .../game/games/bridge/kits/KitBerserker.java | 2 +- .../game/games/bridge/kits/KitDestructor.java | 2 +- .../games/bridge/modes/OverpoweredBridge.java | 36 +- .../game/arcade/game/modules/Module.java | 3 + .../game/modules/WorldBorderModule.java | 116 --- .../game/arcade/kit/ProgressingKit.java | 8 - .../game/arcade/kit/perks/PerkDestructor.java | 4 +- .../arcade/stats/DeathBomberStatTracker.java | 22 +- .../stats/FoodForTheMassesStatTracker.java | 6 - 24 files changed, 522 insertions(+), 1337 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BattleCryManager.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimation.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimationType.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/IceBridgeAnimation.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LavaBridgeAnimation.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LillyPadBridgeAnimation.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/MushroomBridgeAnimation.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/WoodBridgeAnimation.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/CustomBridgeAnimation.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RadiusCustomBridgeAnimation.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RandomCustomBridgeAnimation.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/WorldBorderModule.java 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 7b85b4971..0945ad7fd 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 @@ -372,12 +372,11 @@ public class UtilParticle int count, ViewDist dist, Player... players) { PacketPlayOutWorldParticles packet = getPacket(particle, location, offsetX, offsetY, offsetZ, speed, count, true); - int distValue = dist.getDist() * dist.getDist(); - + for (Player player : players) { // Out of range for player - if (UtilMath.offsetSquared(player.getLocation(), location) > distValue) + if (UtilMath.offset(player.getLocation(), location) > dist.getDist()) continue; UtilPlayer.sendPacket(player, packet); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BattleCryManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BattleCryManager.java new file mode 100644 index 000000000..7c7e71ba0 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/BattleCryManager.java @@ -0,0 +1,6 @@ +package nautilus.game.arcade.game.games.bridge; + +public class BattleCryManager +{ + +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java index 91bf17b99..a6d5d92f3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.bridge; +import com.google.common.collect.Lists; import mineplex.core.common.Rank; import mineplex.core.common.util.*; import mineplex.core.common.util.UtilEvent.ActionType; @@ -12,28 +13,17 @@ import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.DebugCommand; +import nautilus.game.arcade.events.PlayerDeathOutEvent; import nautilus.game.arcade.game.Game; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.TeamGame; -import nautilus.game.arcade.game.games.bridge.animation.BridgeAnimation; -import nautilus.game.arcade.game.games.bridge.animation.BridgeAnimationType; -import nautilus.game.arcade.game.games.bridge.animation.custom.CustomBridgeAnimation; -import nautilus.game.arcade.game.games.bridge.animation.custom.RadiusCustomBridgeAnimation; -import nautilus.game.arcade.game.games.bridge.animation.custom.RandomCustomBridgeAnimation; import nautilus.game.arcade.game.games.bridge.kits.*; -import nautilus.game.arcade.game.modules.WorldBorderModule; import nautilus.game.arcade.game.modules.compass.CompassModule; import nautilus.game.arcade.kit.Kit; -import nautilus.game.arcade.kit.Perk; -import nautilus.game.arcade.kit.perks.PerkDestructor; import nautilus.game.arcade.ore.OreHider; import nautilus.game.arcade.ore.OreObsfucation; import nautilus.game.arcade.stats.*; -import org.bukkit.Effect; -import org.bukkit.GameMode; -import org.bukkit.Location; -import org.bukkit.Material; +import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Chest; @@ -48,19 +38,14 @@ import org.bukkit.event.entity.EntityChangeBlockEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntitySpawnEvent; import org.bukkit.event.entity.ItemSpawnEvent; -import org.bukkit.event.inventory.CraftItemEvent; import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketFillEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.event.player.*; import org.bukkit.inventory.CraftingInventory; import org.bukkit.inventory.ItemStack; import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.util.Vector; import java.util.*; -import java.util.concurrent.TimeUnit; public class Bridge extends TeamGame implements OreObsfucation { @@ -69,24 +54,29 @@ public class Bridge extends TeamGame implements OreObsfucation */ private static final Material[] PLAYER_DROP_DELAY_MATERIALS = new Material[] { Material.LOG, Material.LOG_2, Material.IRON_ORE, Material.DIAMOND_ORE, Material.COAL_ORE, Material.GOLD_ORE, Material.WORKBENCH, Material.FURNACE }; - /** - * The number of milliseconds from the game start time til the bridges should be built. - */ - private static final long BRIDGE_TIME = TimeUnit.MINUTES.toMillis(10); - - /** - * The number of ticks after the prepare state that we wait before setting the world border for the players. Just to make sure they are in the correct world. - */ - private static final int WORLD_BORDER_PREPARE_TICKS = 20; - - private static final String CUSTOM_BRIDGE_KEY = "TYPE"; - - //Bridge - private long _bridgeTime = BRIDGE_TIME; + //Bridge Timer + private int _bridgeTime = 600000; private boolean _bridgesDown = false; - private BridgeAnimation _animation; - private CustomBridgeAnimation[] _customAnimations; + + //Wood Bridge + private ArrayList _woodBridge = new ArrayList(); + private HashMap _woodBridgeBlocks = null; + + //Lava Bridge + private ArrayList _lavaBridge = new ArrayList(); + private ArrayList _lavaSource = new ArrayList(); + + //Lilly Pad Bridge + private NautHashMap _lillyPads = new NautHashMap(); + //Mushrooms + private NautHashMap _mushroomStem = new NautHashMap(); + private NautHashMap _mushroomTop = new NautHashMap(); + private boolean _stemsGrown = false; + + //Ice + private ArrayList _iceBridge = new ArrayList(); + private HashSet _bridgeParts = new HashSet(); //Animals @@ -107,14 +97,14 @@ public class Bridge extends TeamGame implements OreObsfucation private int _buildHeight = -1; //Player Respawn - private Set _usedLife = new HashSet<>(); + private HashSet _usedLife = new HashSet(); //Tourney Mode private boolean _tournament; private HashMap _tournamentKills = new HashMap(); private long _tournamentKillMessageTimer = 0; + - @SuppressWarnings("unchecked") public Bridge(ArcadeManager manager) { this(manager, GameType.Bridge); @@ -164,14 +154,36 @@ public class Bridge extends TeamGame implements OreObsfucation "The last team alive wins!" }); + List kits = Lists.newArrayList(GetKits()); + List finalKits = Lists.newArrayList(kits); + + boolean foundBrawler = false; + for(int i = 0; i < kits.size(); i++) + { + Kit kit = kits.get(i); + if(kit.GetName().equalsIgnoreCase("Brawler")) + { + if(!foundBrawler) + { + foundBrawler = true; + } + else + { + finalKits.remove(i); + } + } + } + + setKits(finalKits.toArray(new Kit[finalKits.size()])); + _ore = new OreHider(); // Flags - GameTimeout = Manager.IsTournamentServer() ? TimeUnit.MINUTES.toMillis(90) : TimeUnit.MINUTES.toMillis(60); + GameTimeout = Manager.IsTournamentServer() ? 5400000 : 3600000; Manager.GetExplosion().SetLiquidDamage(false); - StrictAntiHack = true; + this.StrictAntiHack = true; DamageSelf = true; @@ -194,6 +206,10 @@ public class Bridge extends TeamGame implements OreObsfucation WorldWaterDamage = 0; WorldBoundaryKill = false; + new CompassModule() + .setGiveCompassToAlive(true) + .register(this); + DeathDropItems = true; GemMultiplier = 2.5; @@ -213,108 +229,35 @@ public class Bridge extends TeamGame implements OreObsfucation "Killing yourself counts as -1 team kill.", "Team with the most kills wins!" }; - - _tournament = true; } - _customAnimations = new CustomBridgeAnimation[] { - new RandomCustomBridgeAnimation(this), - new RadiusCustomBridgeAnimation(this) - }; - - new CompassModule() - .setGiveCompassToAlive(true) - .register(this); - - new WorldBorderModule().register(this); - - // So that we can be 110% sure - for (Kit kit : GetKits()) - { - if (kit instanceof KitDestructor) - { - for (Perk perk : kit.GetPerks()) - { - ((PerkDestructor) perk).setEnabled(false); - break; - } - - break; - } - } - - registerDebugCommand(new DebugCommand("bridge", Rank.ADMIN) - { - - @Override - public void Execute(Player caller, String[] args) - { - caller.sendMessage(F.main("Debug", "Spawning the bridges.")); - _bridgeTime = 3000; - } - }); - - registerDebugCommand(new DebugCommand("bridgeinfo", getArcadeManager().getGameCommandRank()) - { - - @Override - public void Execute(Player caller, String[] args) - { - if (_animation == null || !(_animation instanceof CustomBridgeAnimation)) - { - caller.sendMessage(F.main("Debug", "The bridge animation for this map isn't a custom one.")); - return; - } - - caller.sendMessage(F.main("Debug", "Bridge Info:")); - caller.sendMessage(_animation.toString()); - } - }); + + _tournament = Manager.IsTournamentServer(); } @EventHandler - public void prepare(GameStateChangeEvent event) + public void PlayerOut(final PlayerDeathOutEvent event) { - if (event.GetState() != GameState.Prepare) - { + if (_bridgesDown) return; + + Player player = event.GetPlayer(); + + if (!_usedLife.contains(player.getName())) + { + _usedLife.add(player.getName()); + + UtilPlayer.message(player, F.main("Game", "You used your " + F.elem(C.cAqua + "Early Game Revive") + ".")); + + event.setCancelled(true); } - - //Delay this so that we are 100% sure people are in the world. - Manager.runSyncLater(() -> { - - WorldBorderModule borderModule = getModule(WorldBorderModule.class); - - // Here we do some calculations for per player world borders - for (GameTeam team : GetTeamList()) - { - // Step 1 - Get the average location of the spawns, we assume this is generally in an OK position. - Location center = UtilAlg.getAverageLocation(team.GetSpawns()); - // Step 1.5 - Move the location back a bit from the centre, this is usually because spawns are on the inside edge of the islands. - center.add(UtilAlg.getTrajectory(SpectatorSpawn, center).multiply(15)); - - // Step 2 - Calculate an estimate for the size of the border. We'll go with half but the setSize uses the radius so it works out the same to leave it like this - double distToCenter = UtilMath.offset2d(SpectatorSpawn, center) * 0.9; - - // Step 3 - Send the setCenter and setSize packets to the team members - for (Player player : team.GetPlayers(true)) - { - borderModule.setCenter(player, center); - borderModule.setSize(player, distToCenter); - } - - } - - }, WORLD_BORDER_PREPARE_TICKS); } - + @EventHandler(priority = EventPriority.MONITOR) - public void live(GameStateChangeEvent event) + public void GameStateChange(GameStateChangeEvent event) { if (event.GetState() != GameState.Live) - { return; - } if (!WorldData.GetCustomLocs("WATER_DAMAGE").isEmpty()) { @@ -323,72 +266,24 @@ public class Bridge extends TeamGame implements OreObsfucation if (WorldWaterDamage > 0) { - String name = WorldData.MapName; - - if (name.equals("Volcanic Islands")) - { + if (WorldData.MapName.equals("Volcanic Islands")) UtilTextMiddle.display(C.cRed + "Warning", "Water is Boiling Hot", 10, 60, 20); - } else if (WorldData.MapName.equals("Icelands")) - { UtilTextMiddle.display(C.cRed + "Warning", "Water is Freezing Cold", 10, 60, 20); - } else - { UtilTextMiddle.display(C.cRed + "Warning", "Water is Deadly", 10, 60, 20); - } } } + //parse @Override public void ParseData() { - // Now we need to decide on what bridge animation. - typeLoop : for (BridgeAnimationType type : BridgeAnimationType.values()) - { - for (String colours : type.getColoursUsed()) - { - if (WorldData.GetDataLocs(colours).isEmpty()) - { - continue typeLoop; - } - } - - _animation = type.createInstance(this); - break; - } - - // If none of the premade ones are usable then we need a custom one! - if (_animation == null) - { - locationLoop : for (String key : WorldData.GetAllCustomLocs().keySet()) - { - if (!key.startsWith(CUSTOM_BRIDGE_KEY)) - { - continue; - } - - String[] split = key.split(" "); - - if (split.length < 2) - { - continue; - } - - String subKey = split[1]; - - for (CustomBridgeAnimation animation : _customAnimations) - { - if (animation.getTypeKey().equalsIgnoreCase(subKey)) - { - _animation = animation; - break locationLoop; - } - } - } - } - - _animation.onParse(); + ParseLavaBridge(); + ParseWoodBridge(); + ParseIceBridge(); + ParseLillyPad(); + ParseMushrooms(); ParseChests(); @@ -508,6 +403,8 @@ public class Bridge extends TeamGame implements OreObsfucation } } + + public void ParseOre(ArrayList teamOre) { int coal = (int) ((teamOre.size() / 32d) * _oreDensity); @@ -728,45 +625,368 @@ public class Bridge extends TeamGame implements OreObsfucation } } - @EventHandler - public void BridgeBuild(UpdateEvent event) + protected void ParseWoodBridge() { + _woodBridge = new ArrayList(); + + // Load Wood In + for (Location loc : WorldData.GetDataLocs("BROWN")) { + _woodBridge.add(loc.getBlock().getLocation()); + } + + for (Location loc : WorldData.GetDataLocs("GRAY")) { + _woodBridge.add(loc.getBlock().getLocation()); + _woodBridge.add(loc.getBlock().getRelative(BlockFace.UP) + .getLocation()); + } + + // Determine Wood Block + _woodBridgeBlocks = new HashMap(); + + for (Location loc : _woodBridge) { + if (_woodBridge.contains(loc.getBlock().getRelative(BlockFace.DOWN) + .getLocation())) { + _woodBridgeBlocks.put(loc, 85); + } + + if (_woodBridge.contains(loc.getBlock().getRelative(BlockFace.UP) + .getLocation())) { + _woodBridgeBlocks.put(loc, 17); + } + + if (!_woodBridgeBlocks.containsKey(loc)) { + _woodBridgeBlocks.put(loc, 126); + } + } + } + + protected void ParseLavaBridge() { + for (Location loc : WorldData.GetDataLocs("RED")) { + _lavaBridge.add(loc.getBlock().getLocation()); + } + + for (Location loc : WorldData.GetDataLocs("ORANGE")) { + _lavaBridge.add(loc.getBlock().getLocation()); + _lavaBridge.add(loc.getBlock().getRelative(BlockFace.UP) + .getLocation()); + } + + _lavaSource = WorldData.GetDataLocs("BLACK"); + } + + protected void ParseIceBridge() { - if (!IsLive() || !UtilTime.elapsed(GetStateTime(), _bridgeTime)) - { - return; - } + _iceBridge = WorldData.GetDataLocs("LIGHT_BLUE"); + } - if (_animation != null) + protected void ParseMushrooms() + { + for (Location loc : WorldData.GetCustomLocs("21")) { - _animation.onUpdate(event.getType()); + _mushroomStem.put(loc, 0L); + loc.getBlock().setType(Material.AIR); } + + for (Location loc : WorldData.GetDataLocs("PURPLE")) + { + _mushroomTop.put(loc, 0L); + } + } + + protected void ParseLillyPad() + { + for (Location loc : WorldData.GetDataLocs("LIME")) + { + _lillyPads.put(loc, 0L); + } + } - if (event.getType() != UpdateType.FAST) - { + @EventHandler + public void BridgeBuild(UpdateEvent event) + { + if (!IsLive()) + return; + + if (event.getType() != UpdateType.FASTEST) + return; + + if (!UtilTime.elapsed(this.GetStateTime(), _bridgeTime)) return; - } if (!_bridgesDown) { - _bridgesDown = true; + Manager.GetExplosion().SetLiquidDamage(true); + this.Announce(C.cRed + C.Bold + "ALERT: " + ChatColor.RESET + C.Bold + "THE BRIDGES ARE SPAWNING!"); + } - WorldBorderModule borderModule = getModule(WorldBorderModule.class); + _bridgesDown = true; - for (Player player : GetPlayers(true)) + for (Kit kit : this.GetKits()) + { + if (kit instanceof KitDestructor) { - borderModule.setSize(player, 10000); + ((KitDestructor)kit).SetEnabled(true); + } + } + + BuildWood(); + BuildLava(); + BuildIce(); + BuildLillyPad(); + buildMushroom(); + } + + protected void BuildLava() + { + for (int i = 0; i < 3; i++) + if (_lavaBridge != null && _lavaSource != null + && !_lavaBridge.isEmpty() && !_lavaSource.isEmpty()) { + // Random Block + Location bestLoc = _lavaBridge.get(UtilMath.r(_lavaBridge + .size())); + + if (bestLoc.getBlock().getRelative(BlockFace.DOWN) + .isLiquid()) + continue; + + _lavaBridge.remove(bestLoc); + + Location source = _lavaSource.get(UtilMath.r(_lavaSource + .size())); + + // Create Part + FallingBlock block = bestLoc.getWorld().spawnFallingBlock( + source, 87, (byte) 0); + BridgePart part = new BridgePart(block, bestLoc, true); + _bridgeParts.add(part); + + // Sound + source.getWorld().playSound(source, Sound.EXPLODE, + 5f * (float) Math.random(), + 0.5f + (float) Math.random()); + } + } + + protected void BuildLillyPad() + { + for (int i = 0; i < 3; i++) + if (_lillyPads != null && !_lillyPads.isEmpty()) + { + // Random Block + Location loc = UtilAlg.Random(_lillyPads.keySet()); + + if (!UtilTime.elapsed(_lillyPads.get(loc), 8000)) + continue; + + if (!loc.getBlock().getRelative(BlockFace.DOWN).isLiquid()) + continue; + + _lillyPads.remove(loc); + + MapUtil.QuickChangeBlockAt(loc, Material.WATER_LILY); + + // Sound + loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 111); + } + } + + @EventHandler + public void breakLillyPad(BlockBreakEvent event) + { + if (event.getBlock().getType() != Material.WATER_LILY) + return; + + _lillyPads.put(event.getBlock().getLocation(), System.currentTimeMillis() + (long)(Math.random() * 12000)); + } + + protected void buildMushroom() + { + if (_mushroomStem != null && !_mushroomStem.isEmpty()) + { + for (int i=0 ; i<4 && !_mushroomStem.isEmpty() ; i++) + { + double lowestY = 0; + Location lowestLoc = null; + + for (Location loc : _mushroomStem.keySet()) + { + if (!UtilTime.elapsed(_mushroomStem.get(loc), 6000)) + continue; + + if (lowestLoc == null || loc.getY() < lowestY) + { + lowestY = loc.getY(); + lowestLoc = loc; + } + } + + if (lowestLoc == null) + continue; + + _mushroomStem.remove(lowestLoc); + + MapUtil.QuickChangeBlockAt(lowestLoc, 100, (byte)15); + } + } + else + { + _stemsGrown = true; + } + + if (_stemsGrown && _mushroomTop != null && !_mushroomTop.isEmpty()) + { + int attempts = 0; + int done = 0; + while (done < 6 && attempts < 400) + { + attempts++; + + // Random Block + Location loc = UtilAlg.Random(_mushroomTop.keySet()); + + if (!UtilTime.elapsed(_mushroomTop.get(loc), 6000)) + continue; + + Block block = loc.getBlock(); + + if (block.getRelative(BlockFace.DOWN).getType() == Material.AIR && + block.getRelative(BlockFace.NORTH).getType() == Material.AIR && + block.getRelative(BlockFace.EAST).getType() == Material.AIR && + block.getRelative(BlockFace.SOUTH).getType() == Material.AIR && + block.getRelative(BlockFace.WEST).getType() == Material.AIR) + continue; + + _mushroomTop.remove(loc); + + MapUtil.QuickChangeBlockAt(block.getLocation(), 99, (byte)14); + + done++; + } + } + } + + @EventHandler + public void breakMushroom(BlockBreakEvent event) + { + if (event.isCancelled()) + return; + + + if (event.getBlock().getTypeId() == 100 && + WorldData.GetCustomLocs("21").contains(event.getBlock().getLocation().add(0.5, 0, 0.5))) + { + event.setCancelled(true); + event.getBlock().setType(Material.AIR); + + _mushroomStem.put(event.getBlock().getLocation(), System.currentTimeMillis() + (long)(Math.random() * 12000)); + } + + if (event.getBlock().getTypeId() == 99 && + WorldData.GetDataLocs("PURPLE").contains(event.getBlock().getLocation().add(0.5, 0, 0.5))) + { + event.setCancelled(true); + event.getBlock().setType(Material.AIR); + + _mushroomTop.put(event.getBlock().getLocation(), System.currentTimeMillis() + (long)(Math.random() * 12000)); + } + } + + protected void BuildIce() + { + if (_iceBridge == null || _iceBridge.isEmpty() || UtilTime.elapsed(this.GetStateTime(), _bridgeTime + 120000)) + { + WorldData.World.setStorm(false); + return; + } + + WorldData.World.setStorm(true); + + int attempts = 0; + int done = 0; + while (done < 5 && attempts < 400) + { + attempts++; + + // Random Block + Location loc = _iceBridge.get(UtilMath.r(_iceBridge.size())); + + Block block = loc.getBlock().getRelative(BlockFace.DOWN); + + if (!block.isLiquid()) + continue; + + if (block.getRelative(BlockFace.NORTH).isLiquid() && + block.getRelative(BlockFace.EAST).isLiquid() && + block.getRelative(BlockFace.SOUTH).isLiquid() && + block.getRelative(BlockFace.WEST).isLiquid()) + continue; + + _iceBridge.remove(loc); + + if (Math.random() > 0.25) + MapUtil.QuickChangeBlockAt(block.getLocation(), Material.PACKED_ICE); + else + MapUtil.QuickChangeBlockAt(block.getLocation(), Material.ICE); + + done++; + } + } + + protected void BuildWood() + { + if (_woodBridgeBlocks != null && !_woodBridgeBlocks.isEmpty()) + { + ArrayList toDo = new ArrayList(); + + BlockFace[] faces = new BlockFace[] { BlockFace.NORTH, + BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST }; + + for (Location loc : _woodBridgeBlocks.keySet()) + { + if (_woodBridgeBlocks.get(loc) == 17) + { + int adjacent = 0; + + for (BlockFace face : faces) + if (loc.getBlock().getRelative(face).getTypeId() != 0) + adjacent++; + + if (adjacent > 0) + toDo.add(loc); + + } else if (_woodBridgeBlocks.get(loc) == 85) + { + if (loc.getBlock().getRelative(BlockFace.DOWN).getTypeId() == 0) + continue; + + toDo.add(loc); + } else if (_woodBridgeBlocks.get(loc) == 126) + { + int adjacent = 0; + + for (BlockFace face : faces) + if (loc.getBlock().getRelative(face).getTypeId() != 0) + adjacent++; + + if (adjacent > 0) + toDo.add(loc); + } } - Manager.GetExplosion().SetLiquidDamage(true); - Announce(C.cRedB + "ALERT: " + C.Reset + C.Bold + "THE BRIDGES ARE SPAWNING!"); - UtilTextMiddle.display(C.cRedB + "ALERT", "The BRIDGES ARE SPAWNING!"); + if (toDo.size() == 0) + return; - for (Kit kit : GetKits()) + for (Location loc : toDo) { - if (kit instanceof KitDestructor) - { - ((KitDestructor) kit).SetEnabled(true); - } + int id = _woodBridgeBlocks.remove(loc); + + Location source = loc.clone().add(0, 30, 0); + + // Create Part + FallingBlock block = loc.getWorld().spawnFallingBlock(source, + id, (byte) 0); + block.setVelocity(new Vector(0, -1, 0)); + BridgePart part = new BridgePart(block, loc, false); + _bridgeParts.add(part); } } } @@ -886,7 +1106,7 @@ public class Bridge extends TeamGame implements OreObsfucation while (!UtilBlock.airFoliage(block)) { block = block.getRelative(BlockFace.UP); - + if (block.getY() >= 256) break; } @@ -899,15 +1119,15 @@ public class Bridge extends TeamGame implements OreObsfucation break; } - if (block.getType() != Material.SNOW) + block = block.getRelative(BlockFace.UP); + + if (block.getTypeId() == 0) { - block = block.getRelative(BlockFace.UP); + if (Math.random() > 0.5) + block.setTypeId(39); + else + block.setTypeId(40); } - - if (Math.random() > 0.5) - block.setTypeId(39); - else - block.setTypeId(40); } } @@ -1295,7 +1515,7 @@ public class Bridge extends TeamGame implements OreObsfucation else { Scoreboard.write(C.cYellow + C.Bold + "Time Left"); - Scoreboard.write(UtilTime.MakeStr(GameTimeout - (System.currentTimeMillis() - GetStateTime()), 0)); + Scoreboard.write(UtilTime.MakeStr(5400000 - (System.currentTimeMillis() - this.GetStateTime()), 0)); } Scoreboard.draw(); @@ -1461,7 +1681,7 @@ public class Bridge extends TeamGame implements OreObsfucation { _tournamentKillMessageTimer = System.currentTimeMillis(); - Announce(C.cRed + C.Bold + "ALERT: " + C.Reset + C.Bold + "FIRST TEAM TO HAVE MOST KILLS WINS!"); + this.Announce(C.cRed + C.Bold + "ALERT: " + ChatColor.RESET + C.Bold + "FIRST TEAM TO HAVE MOST KILLS WINS!"); } } @@ -1654,32 +1874,23 @@ public class Bridge extends TeamGame implements OreObsfucation } } - @EventHandler(priority=EventPriority.LOWEST) - public void revivePlayer(CustomDamageEvent event) - { - if (!IsLive() || _bridgesDown || !(event.GetDamageeEntity() instanceof Player)) - { - return; - } - - Player player = event.GetDamageePlayer(); - - if (player.getHealth() - event.GetDamage() > 0) - { - return; - } - - if (!_usedLife.contains(player.getName())) - { - _usedLife.add(player.getName()); - - UtilPlayer.message(player, F.main("Game", "You used your " + F.elem(C.cAqua + "Early Game Revive") + ".")); - - GetTeam(player).SpawnTeleport(player); - player.setHealth(20); - event.SetCancelled("Early Game Revive"); - } - } + // @EventHandler + // public void liquidBlockDeny(BlockBreakEvent event) + // { + // if (_bridgesDown) + // return; + // + // if (!IsAlive(event.getPlayer())) + // return; + // + // if (event.getBlock().getRelative(BlockFace.UP).isLiquid() || event.getBlock().getRelative(BlockFace.UP).getRelative(BlockFace.UP).isLiquid()) + // { + // UtilPlayer.message(event.getPlayer(), F.main("Game", + // "Cannot tunnel under liquids.")); + // + // event.setCancelled(true); + // } + // } @EventHandler public void vehicleDeny(PlayerInteractEvent event) @@ -1704,6 +1915,16 @@ public class Bridge extends TeamGame implements OreObsfucation else return 12; } + + @EventHandler + public void debug(PlayerCommandPreprocessEvent event) + { + if (Manager.GetClients().hasRank(event.getPlayer(), Rank.ADMIN) && event.getMessage().contains("/oretoggle")) + _ore.ToggleVisibility(); + + if (Manager.GetClients().hasRank(event.getPlayer(), Rank.ADMIN) && event.getMessage().contains("/bridge")) + _bridgeTime = 30000; + } @EventHandler public void disableIceForm(BlockFormEvent event) @@ -1719,40 +1940,6 @@ public class Bridge extends TeamGame implements OreObsfucation UtilPlayer.message(event.getPlayer(), F.main("Game", "You cannot pickup liquids before the bridges have fallen.")); event.setCancelled(true); } - - @EventHandler - public void disableDoors(CraftItemEvent event) - { - if (_bridgesDown) - { - return; - } - - Material type = event.getRecipe().getResult().getType(); - - if (type == Material.WOOD_DOOR || type == Material.IRON_DOOR) - { - event.setResult(null); - event.setCancelled(true); - } - } - - @EventHandler - public void disableDoors(PlayerPickupItemEvent event) - { - if (_bridgesDown) - { - return; - } - - Material type = event.getItem().getItemStack().getType(); - - if (type == Material.WOOD_DOOR || type == Material.IRON_DOOR) - { - event.getItem().remove(); - event.setCancelled(true); - } - } public void setBridgeTime(int time) { @@ -1774,11 +1961,6 @@ public class Bridge extends TeamGame implements OreObsfucation return _chestLoot; } - public HashSet getBridgeParts() - { - return _bridgeParts; - } - public boolean bridgesDown() { return _bridgesDown; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimation.java deleted file mode 100644 index 8c3496f10..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimation.java +++ /dev/null @@ -1,45 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.animation; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; - -import mineplex.core.updater.UpdateType; -import nautilus.game.arcade.game.games.bridge.Bridge; -import nautilus.game.arcade.game.games.bridge.BridgePart; -import nautilus.game.arcade.world.WorldData; - -public abstract class BridgeAnimation -{ - - public static final int AVERAGE_BRIDGE_BLOCKS = 3000; - - protected final Bridge _bridge; - protected final WorldData _worldData; - - public BridgeAnimation(Bridge bridge) - { - _bridge = bridge; - _worldData = bridge.WorldData; - } - - public abstract void onParse(); - - public abstract void onUpdate(UpdateType type); - - public void registerBridgePart(BridgePart part) - { - _bridge.getBridgeParts().add(part); - } - - public boolean isAir(Location location) - { - return isAir(location.getBlock()); - } - - public boolean isAir(Block block) - { - return block.getType() == Material.AIR; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimationType.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimationType.java deleted file mode 100644 index a7a8aa739..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/BridgeAnimationType.java +++ /dev/null @@ -1,44 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.animation; - -import nautilus.game.arcade.game.games.bridge.Bridge; - -public enum BridgeAnimationType -{ - - WOOD(WoodBridgeAnimation.class, "BROWN", "GRAY"), - ICE(IceBridgeAnimation.class, "LIGHT_BLUE"), - LAVA(LavaBridgeAnimation.class, "BLACK", "RED", "ORANGE"), - LILLY(LillyPadBridgeAnimation.class, "LIME"), - MUSHROOM(MushroomBridgeAnimation.class, "PURPLE") - - ; - - private final Class _clazz; - private final String[] _coloursUsed; - - private BridgeAnimationType(Class clazz, String... coloursUsed) - { - _clazz = clazz; - _coloursUsed = coloursUsed; - } - - public BridgeAnimation createInstance(Bridge bridge) - { - try - { - return _clazz.cast(_clazz.getConstructor(Bridge.class).newInstance(bridge)); - } - catch (Exception e) - { - e.printStackTrace(); - } - - return null; - } - - public String[] getColoursUsed() - { - return _coloursUsed; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/IceBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/IceBridgeAnimation.java deleted file mode 100644 index 6b555e861..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/IceBridgeAnimation.java +++ /dev/null @@ -1,79 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.animation; - -import java.util.ArrayList; -import java.util.List; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; - -import mineplex.core.common.util.MapUtil; -import mineplex.core.common.util.UtilAlg; -import mineplex.core.updater.UpdateType; -import nautilus.game.arcade.game.games.bridge.Bridge; - -public class IceBridgeAnimation extends BridgeAnimation -{ - - private List _iceBridge; - - public IceBridgeAnimation(Bridge bridge) - { - super(bridge); - - _iceBridge = new ArrayList<>(AVERAGE_BRIDGE_BLOCKS); - } - - @Override - public void onParse() - { - _iceBridge = _worldData.GetDataLocs("LIGHT_BLUE"); - } - - @Override - public void onUpdate(UpdateType type) - { - if (type != UpdateType.FASTEST || _iceBridge.isEmpty()) - { - return; - } - - int attempts = 0; - int done = 0; - - while (done < 5 && attempts < 400) - { - attempts++; - - // Random Block - Location loc = UtilAlg.Random(_iceBridge); - - Block block = loc.getBlock().getRelative(BlockFace.DOWN); - - if (!block.isLiquid()) - { - continue; - } - - if (block.getRelative(BlockFace.NORTH).isLiquid() && block.getRelative(BlockFace.EAST).isLiquid() && block.getRelative(BlockFace.SOUTH).isLiquid() && block.getRelative(BlockFace.WEST).isLiquid()) - { - continue; - } - - _iceBridge.remove(loc); - - if (Math.random() > 0.25) - { - MapUtil.QuickChangeBlockAt(block.getLocation(), Material.PACKED_ICE); - } - else - { - MapUtil.QuickChangeBlockAt(block.getLocation(), Material.ICE); - } - - done++; - } - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LavaBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LavaBridgeAnimation.java deleted file mode 100644 index 2cf015470..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LavaBridgeAnimation.java +++ /dev/null @@ -1,84 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.animation; - -import java.util.ArrayList; -import java.util.List; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.FallingBlock; - -import mineplex.core.common.util.UtilMath; -import mineplex.core.updater.UpdateType; -import nautilus.game.arcade.game.games.bridge.Bridge; -import nautilus.game.arcade.game.games.bridge.BridgePart; - -public class LavaBridgeAnimation extends BridgeAnimation -{ - - private List _lavaSource; - private List _lavaBridge; - - public LavaBridgeAnimation(Bridge bridge) - { - super(bridge); - - _lavaSource = new ArrayList<>(); - _lavaBridge = new ArrayList<>(AVERAGE_BRIDGE_BLOCKS); - } - - @Override - public void onParse() - { - for (Location loc : _worldData.GetDataLocs("RED")) - { - _lavaBridge.add(loc.getBlock().getLocation()); - } - - for (Location loc : _worldData.GetDataLocs("ORANGE")) - { - _lavaBridge.add(loc.getBlock().getLocation()); - _lavaBridge.add(loc.getBlock().getRelative(BlockFace.UP).getLocation()); - } - - _lavaSource = _worldData.GetDataLocs("BLACK"); - } - - @Override - public void onUpdate(UpdateType type) - { - if (type != UpdateType.FASTEST) - { - return; - } - - for (int i = 0; i < 3; i++) - { - if (!_lavaBridge.isEmpty() && !_lavaSource.isEmpty()) - { - // Random Block - Location bestLoc = _lavaBridge.get(UtilMath.r(_lavaBridge.size())); - - if (bestLoc.getBlock().getRelative(BlockFace.DOWN).isLiquid()) - { - continue; - } - - _lavaBridge.remove(bestLoc); - - Location source = _lavaSource.get(UtilMath.r(_lavaSource.size())); - - // Create Part - FallingBlock block = bestLoc.getWorld().spawnFallingBlock(source, Material.NETHERRACK, (byte) 0); - BridgePart part = new BridgePart(block, bestLoc, true); - - registerBridgePart(part); - - // Sound - source.getWorld().playSound(source, Sound.EXPLODE, 5f * (float) Math.random(), 0.5f + (float) Math.random()); - } - } - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LillyPadBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LillyPadBridgeAnimation.java deleted file mode 100644 index 839a9536e..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/LillyPadBridgeAnimation.java +++ /dev/null @@ -1,65 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.animation; - -import java.util.HashMap; -import java.util.Map; - -import org.bukkit.Effect; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.BlockFace; - -import mineplex.core.common.util.MapUtil; -import mineplex.core.common.util.UtilAlg; -import mineplex.core.common.util.UtilTime; -import mineplex.core.updater.UpdateType; -import nautilus.game.arcade.game.games.bridge.Bridge; - -public class LillyPadBridgeAnimation extends BridgeAnimation -{ - - private Map _lillyPads = new HashMap<>(); - - public LillyPadBridgeAnimation(Bridge bridge) - { - super(bridge); - } - - @Override - public void onParse() - { - for (Location loc : _worldData.GetDataLocs("LIME")) - { - _lillyPads.put(loc, 0L); - } - } - - @Override - public void onUpdate(UpdateType type) - { - if (type != UpdateType.FASTEST) - return; - - for (int i = 0; i < 3; i++) - { - if (_lillyPads != null && !_lillyPads.isEmpty()) - { - // Random Block - Location loc = UtilAlg.Random(_lillyPads.keySet()); - - if (!UtilTime.elapsed(_lillyPads.get(loc), 8000)) - continue; - - if (!loc.getBlock().getRelative(BlockFace.DOWN).isLiquid()) - continue; - - _lillyPads.remove(loc); - - MapUtil.QuickChangeBlockAt(loc, Material.WATER_LILY); - - // Sound - loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 111); - } - } - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/MushroomBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/MushroomBridgeAnimation.java deleted file mode 100644 index dad3ecdb7..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/MushroomBridgeAnimation.java +++ /dev/null @@ -1,107 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.animation; - -import java.util.HashMap; -import java.util.Map; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; - -import mineplex.core.common.util.MapUtil; -import mineplex.core.common.util.UtilAlg; -import mineplex.core.common.util.UtilTime; -import mineplex.core.updater.UpdateType; -import nautilus.game.arcade.game.games.bridge.Bridge; - -public class MushroomBridgeAnimation extends BridgeAnimation -{ - - private Map _mushroomStem = new HashMap<>(); - private Map _mushroomTop = new HashMap<>(); - private boolean _stemsGrown = false; - - public MushroomBridgeAnimation(Bridge bridge) - { - super(bridge); - } - - @Override - public void onParse() - { - for (Location loc : _worldData.GetCustomLocs("21")) - { - _mushroomStem.put(loc, 0L); - loc.getBlock().setType(Material.AIR); - } - - for (Location loc : _worldData.GetDataLocs("PURPLE")) - { - _mushroomTop.put(loc, 0L); - } - } - - @Override - public void onUpdate(UpdateType type) - { - if (_mushroomStem != null && !_mushroomStem.isEmpty()) - { - for (int i = 0; i < 4 && !_mushroomStem.isEmpty(); i++) - { - double lowestY = 0; - Location lowestLoc = null; - - for (Location loc : _mushroomStem.keySet()) - { - if (!UtilTime.elapsed(_mushroomStem.get(loc), 6000)) - continue; - - if (lowestLoc == null || loc.getY() < lowestY) - { - lowestY = loc.getY(); - lowestLoc = loc; - } - } - - if (lowestLoc == null) - continue; - - _mushroomStem.remove(lowestLoc); - - MapUtil.QuickChangeBlockAt(lowestLoc, 100, (byte) 15); - } - } - else - { - _stemsGrown = true; - } - - if (_stemsGrown && _mushroomTop != null && !_mushroomTop.isEmpty()) - { - int attempts = 0; - int done = 0; - while (done < 6 && attempts < 400) - { - attempts++; - - // Random Block - Location loc = UtilAlg.Random(_mushroomTop.keySet()); - - if (!UtilTime.elapsed(_mushroomTop.get(loc), 6000)) - continue; - - Block block = loc.getBlock(); - - if (block.getRelative(BlockFace.DOWN).getType() == Material.AIR && block.getRelative(BlockFace.NORTH).getType() == Material.AIR && block.getRelative(BlockFace.EAST).getType() == Material.AIR && block.getRelative(BlockFace.SOUTH).getType() == Material.AIR && block.getRelative(BlockFace.WEST).getType() == Material.AIR) - continue; - - _mushroomTop.remove(loc); - - MapUtil.QuickChangeBlockAt(block.getLocation(), 99, (byte) 14); - - done++; - } - } - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/WoodBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/WoodBridgeAnimation.java deleted file mode 100644 index e149f2bc3..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/WoodBridgeAnimation.java +++ /dev/null @@ -1,129 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.animation; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.FallingBlock; -import org.bukkit.util.Vector; - -import mineplex.core.updater.UpdateType; -import nautilus.game.arcade.game.games.bridge.Bridge; -import nautilus.game.arcade.game.games.bridge.BridgePart; - -public class WoodBridgeAnimation extends BridgeAnimation -{ - - private static final BlockFace[] FACES = new BlockFace[] { BlockFace.NORTH, BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST }; - private static final int Y_MOD = 30; - - private final Map _woodBridge; - - public WoodBridgeAnimation(Bridge bridge) - { - super(bridge); - - _woodBridge = new HashMap<>(AVERAGE_BRIDGE_BLOCKS); - } - - @Override - public void onParse() - { - onParse(_worldData.GetDataLocs("BROWN"), false); - onParse(_worldData.GetDataLocs("GRAY"), true); - } - - public void onParse(List locations, boolean aboveBelow) - { - for (Location location : locations) - { - if (aboveBelow) - { - _woodBridge.put(location.getBlock().getRelative(BlockFace.UP).getLocation(), Material.FENCE); - _woodBridge.put(location, Material.LOG); - } - else - { - _woodBridge.put(location, Material.WOOD_STEP); - } - } - } - - @Override - public void onUpdate(UpdateType type) - { - if (type != UpdateType.FASTEST) - { - return; - } - - List toDo = new ArrayList<>(); - - for (Location location : _woodBridge.keySet()) - { - Material material = _woodBridge.get(location); - - if (material == Material.LOG) - { - int adjacent = 0; - - for (BlockFace face : FACES) - { - if (!isAir(location.getBlock().getRelative(face))) - { - adjacent++; - } - } - if (adjacent > 0) - { - toDo.add(location); - } - } - else if (material == Material.FENCE) - { - if (!isAir(location.getBlock().getRelative(BlockFace.DOWN))) - { - toDo.add(location); - } - } - else if (material == Material.WOOD_STEP) - { - int adjacent = 0; - - for (BlockFace face : FACES) - { - if (!isAir(location.getBlock().getRelative(face))) - { - adjacent++; - } - } - if (adjacent > 0) - { - toDo.add(location); - } - } - } - - if (toDo.isEmpty()) - { - return; - } - - for (Location location : toDo) - { - Material material = _woodBridge.remove(location); - Location source = location.clone().add(0, Y_MOD, 0); - - // Create Part - FallingBlock block = location.getWorld().spawnFallingBlock(source, material, (byte) 0); - block.setVelocity(new Vector(0, -1, 0)); - BridgePart part = new BridgePart(block, location, false); - - registerBridgePart(part); - } - } -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/CustomBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/CustomBridgeAnimation.java deleted file mode 100644 index fe5e6ed04..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/CustomBridgeAnimation.java +++ /dev/null @@ -1,246 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.animation.custom; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.bukkit.Effect; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.World; -import org.bukkit.block.Block; - -import mineplex.core.blockrestore.BlockRestore; -import mineplex.core.common.util.UtilBlock; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilParticle; -import mineplex.core.common.util.UtilParticle.ParticleType; -import mineplex.core.common.util.UtilParticle.ViewDist; -import nautilus.game.arcade.game.games.bridge.Bridge; -import nautilus.game.arcade.game.games.bridge.animation.BridgeAnimation; - -public abstract class CustomBridgeAnimation extends BridgeAnimation -{ - - private static final String BLOCK_IDS_KEY = "BLOCK_IDS"; - private static final String RATE_KEY = "RATE"; - private static final String PARTICLE_KEY = "PARTICLE"; - private static final String SOUND_KEY = "SOUND"; - private static final String REGION_KEY = "BRIDGE"; - - protected final BlockRestore _restore; - - private final String _typeKey; - protected final Map _bridgeBlocks; - - // Configuration - protected List _blockIds; - protected int _rate; - protected ParticleType _particle; - - // Sound - protected Sound _sound; - protected float _pitch; - - protected double _maxDistance; - - public CustomBridgeAnimation(Bridge bridge, String typeKey) - { - super(bridge); - - _restore = bridge.getArcadeManager().GetBlockRestore(); - - _typeKey = typeKey; - _bridgeBlocks = new HashMap<>(AVERAGE_BRIDGE_BLOCKS); - - // Defaults - // Wood, Logs, Fences - _blockIds = Arrays.asList(5, 17, 85); - _rate = 1; - _particle = ParticleType.BLOCK_DUST; - } - - @Override - public void onParse() - { - List blockIds = new ArrayList<>(); - - for (String key : _worldData.GetAllCustomLocs().keySet()) - { - String[] split = key.split(" "); - String subKey = split[0]; - - if (split.length < 2) - { - continue; - } - - switch (subKey) - { - - case BLOCK_IDS_KEY: - // Set the block ids that the animation will use - - for (int i = 1; i < split.length; i++) - { - try - { - blockIds.add(Integer.parseInt(split[i])); - } - catch (NumberFormatException e) - { - continue; - } - } - - break; - - case RATE_KEY: - // Set the rate at which the animation will run at - - try - { - _rate = Integer.parseInt(split[1]); - } - catch (NumberFormatException e) - { - continue; - } - - break; - - case PARTICLE_KEY: - // Set which type of particle will be displayed when a block - // spawns - - try - { - _particle = ParticleType.valueOf(split[1]); - } - catch (IllegalArgumentException e) - { - continue; - } - - break; - - case SOUND_KEY: - // Set the sound and pitch that will be played when a block - // spawns - - if (split.length < 3) - { - continue; - } - - try - { - _sound = Sound.valueOf(split[1]); - } - catch (IllegalArgumentException e) - { - continue; - } - - try - { - _pitch = Float.parseFloat(split[2]); - } - catch (NumberFormatException e) - { - continue; - } - - break; - - default: - break; - } - } - - // Set configuration values - _blockIds = blockIds; - - // Save all blocks in a big map. - for (String key : _worldData.GetAllCustomLocs().keySet()) - { - if (!key.startsWith(REGION_KEY)) - { - continue; - } - - List locations = _worldData.GetCustomLocs(key); - - if (locations.size() < 2) - { - continue; - } - - for (Block block : UtilBlock.getInBoundingBox(locations.get(0), locations.get(1))) - { - if (!_blockIds.contains(block.getTypeId()) || _bridgeBlocks.containsKey(block)) - { - continue; - } - - double dist = UtilMath.offset2d(block.getLocation(), _bridge.GetSpectatorLocation()); - - if (dist > _maxDistance) - { - _maxDistance = dist; - } - - _restore.add(block, Material.AIR.getId(), (byte) 0, Integer.MAX_VALUE); - _bridgeBlocks.put(block.getLocation(), dist); - } - } - } - - public void onBlockSet(Block block) - { - World world = _worldData.World; - Location location = block.getLocation().add(0.5, 0.5, 0.5); - - if (_particle != null) - { - if (_particle == ParticleType.BLOCK_DUST) - { - world.playEffect(location, Effect.STEP_SOUND, block.getType(), block.getData()); - } - else - { - UtilParticle.PlayParticleToAll(_particle, block.getLocation(), 0.5F, 0.5F, 0.5F, 0.5F, 5, ViewDist.NORMAL); - } - } - - if (_sound != null) - { - world.playSound(location, _sound, 1, _pitch); - } - } - - public final String getTypeKey() - { - return _typeKey; - } - - @Override - public String toString() - { - StringBuilder builder = new StringBuilder(); - - builder.append("Type: " + _typeKey).append("\n"); - builder.append("Bridge Blocks: " + _bridgeBlocks.size()).append("\n"); - builder.append("Block Ids: " + _blockIds).append("\n"); - builder.append("Rate: " + _rate).append("\n"); - builder.append("Particle: " + (_particle == null ? "Null" : _particle.getFriendlyName())).append("\n"); - builder.append("Sound: " + (_sound == null ? "Null" : _sound.toString() + " Pitch: " + _pitch)).append("\n"); - builder.append("Max Distance: " + _maxDistance).append("\n"); - - return builder.toString(); - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RadiusCustomBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RadiusCustomBridgeAnimation.java deleted file mode 100644 index fe0779c7c..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RadiusCustomBridgeAnimation.java +++ /dev/null @@ -1,58 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.animation.custom; - -import java.util.Iterator; - -import org.bukkit.Location; -import org.bukkit.block.Block; - -import mineplex.core.updater.UpdateType; -import nautilus.game.arcade.game.games.bridge.Bridge; - -public class RadiusCustomBridgeAnimation extends CustomBridgeAnimation -{ - - private double _minDistance; - - public RadiusCustomBridgeAnimation(Bridge bridge) - { - super(bridge, "RADIUS"); - } - - @Override - public void onParse() - { - super.onParse(); - - _minDistance = _maxDistance; - } - - @Override - public void onUpdate(UpdateType type) - { - if (type != UpdateType.FAST) - { - return; - } - - _minDistance -= _rate; - - Iterator iterator = _bridgeBlocks.keySet().iterator(); - - while (iterator.hasNext()) - { - Location location = iterator.next(); - double dist = _bridgeBlocks.get(location); - - if (dist > _minDistance) - { - Block block = location.getBlock(); - - _restore.restore(block); - onBlockSet(block); - - iterator.remove(); - } - } - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RandomCustomBridgeAnimation.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RandomCustomBridgeAnimation.java deleted file mode 100644 index badf135bb..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/animation/custom/RandomCustomBridgeAnimation.java +++ /dev/null @@ -1,44 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.animation.custom; - -import java.util.Iterator; - -import org.bukkit.Location; -import org.bukkit.block.Block; - -import mineplex.core.updater.UpdateType; -import nautilus.game.arcade.game.games.bridge.Bridge; - -public class RandomCustomBridgeAnimation extends CustomBridgeAnimation -{ - - public RandomCustomBridgeAnimation(Bridge bridge) - { - super(bridge, "RANDOM"); - } - - @Override - public void onUpdate(UpdateType type) - { - if (type != UpdateType.TICK) - { - return; - } - - Iterator iterator = _bridgeBlocks.keySet().iterator(); - int i = 0; - - while (iterator.hasNext() && i < _rate) - { - i++; - Location location = iterator.next(); - - Block block = location.getBlock(); - - _restore.restore(block); - onBlockSet(block); - - iterator.remove(); - } - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java index 021c06e83..78fc4acae 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitApple.java @@ -36,4 +36,4 @@ public class KitApple extends ProgressingKit { } -} \ No newline at end of file +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitArcher.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitArcher.java index 87ee2d8dd..a02a04427 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitArcher.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitArcher.java @@ -53,6 +53,6 @@ public class KitArcher extends ProgressingKit Bridge bridge = (Bridge) Manager.GetGame(); if(!bridge.hasUsedRevive(player)) - player.getInventory().addItem(PLAYER_ITEMS); + player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW)); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java index 9204c8d7a..497017ee6 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitBerserker.java @@ -46,4 +46,4 @@ public class KitBerserker extends ProgressingKit { player.getInventory().addItem(PLAYER_ITEMS); } -} \ No newline at end of file +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitDestructor.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitDestructor.java index 178ae8ef1..b5710854f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitDestructor.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/kits/KitDestructor.java @@ -44,7 +44,7 @@ public class KitDestructor extends ProgressingKit { super(manager, "Destructor", "bridgedesctructor", KitAvailability.Achievement, 99999, DESCRIPTION, PERKS, EntityType.ZOMBIE, IN_HAND); - setAchievementRequirements(ACHIEVEMENTS); + this.setAchievementRequirements(ACHIEVEMENTS); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/OverpoweredBridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/OverpoweredBridge.java index 5935aaee0..17b6b5ce5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/OverpoweredBridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/OverpoweredBridge.java @@ -14,6 +14,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.EnchantmentStorageMeta; @@ -28,6 +29,7 @@ import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.events.PlayerPrepareTeleportEvent; +import nautilus.game.arcade.game.Game.GameState; import nautilus.game.arcade.game.games.AbsorptionFix; import nautilus.game.arcade.game.games.bridge.Bridge; import net.md_5.bungee.api.ChatColor; @@ -70,8 +72,38 @@ public class OverpoweredBridge extends Bridge public void ParseData() { _starterChests = new HashMap<>(); - - super.ParseData(); + + ParseLavaBridge(); + ParseWoodBridge(); + ParseIceBridge(); + ParseLillyPad(); + ParseMushrooms(); + + ParseChests(); + + ParseOre(WorldData.GetCustomLocs("73")); // Red + ParseOre(WorldData.GetCustomLocs("14")); // Yellow + ParseOre(WorldData.GetCustomLocs("129")); // Green + ParseOre(WorldData.GetCustomLocs("56")); // Blue + + //Mass Teams + if (!WorldData.GetCustomLocs("152").isEmpty()) + ParseOre(WorldData.GetCustomLocs("152")); + if (!WorldData.GetCustomLocs("41").isEmpty()) + ParseOre(WorldData.GetCustomLocs("41")); + if (!WorldData.GetCustomLocs("133").isEmpty()) + ParseOre(WorldData.GetCustomLocs("133")); + if (!WorldData.GetCustomLocs("57").isEmpty()) + ParseOre(WorldData.GetCustomLocs("57")); + + if (!WorldData.GetCustomLocs("100").isEmpty()) + ParseOre(WorldData.GetCustomLocs("100")); + if (!WorldData.GetCustomLocs("86").isEmpty()) + ParseOre(WorldData.GetCustomLocs("86")); + if (!WorldData.GetCustomLocs("103").isEmpty()) + ParseOre(WorldData.GetCustomLocs("103")); + if (!WorldData.GetCustomLocs("22").isEmpty()) + ParseOre(WorldData.GetCustomLocs("22")); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/Module.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/Module.java index 638d2620b..2aed67d39 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/Module.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/Module.java @@ -1,7 +1,10 @@ package nautilus.game.arcade.game.modules; import com.google.gson.JsonElement; +import mineplex.core.Managers; +import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.game.Game; +import nautilus.game.arcade.game.TeamGame; import org.bukkit.event.Listener; /** diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/WorldBorderModule.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/WorldBorderModule.java deleted file mode 100644 index 6a1f13bae..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/WorldBorderModule.java +++ /dev/null @@ -1,116 +0,0 @@ -package nautilus.game.arcade.game.modules; - -import java.lang.reflect.Field; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; - -import mineplex.core.common.Pair; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.packethandler.IPacketHandler; -import mineplex.core.packethandler.PacketHandler; -import mineplex.core.packethandler.PacketInfo; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.Game.GameState; -import net.minecraft.server.v1_8_R3.PacketPlayOutWorldBorder; -import net.minecraft.server.v1_8_R3.PacketPlayOutWorldBorder.EnumWorldBorderAction; -import net.minecraft.server.v1_8_R3.WorldBorder; - -public class WorldBorderModule extends Module implements IPacketHandler -{ - - private PacketHandler _packetHandler; - private Map _sizeToSet; - private Map> _centerToSet; - - @Override - protected void setup() - { - _packetHandler = getGame().getArcadeManager().getPacketHandler(); - _sizeToSet = new HashMap<>(); - _centerToSet = new HashMap<>(); - } - - @EventHandler(priority = EventPriority.LOWEST) - public void live(GameStateChangeEvent event) - { - if (event.GetState() != GameState.Prepare) - { - return; - } - - _packetHandler.addPacketHandler(this, PacketPlayOutWorldBorder.class); - } - - @Override - public void handle(PacketInfo packetInfo) - { - UUID player = packetInfo.getPlayer().getUniqueId(); - PacketPlayOutWorldBorder packet = (PacketPlayOutWorldBorder) packetInfo.getPacket(); - - try - { - Field actionField = packet.getClass().getDeclaredField("a"); - actionField.setAccessible(true); - EnumWorldBorderAction action = (EnumWorldBorderAction) actionField.get(packet); - - if (action == EnumWorldBorderAction.SET_SIZE) - { - Field sizeField = packet.getClass().getDeclaredField("e"); - sizeField.setAccessible(true); - double newSize = _sizeToSet.get(player); - - sizeField.set(packet, newSize); - } - else if (action == EnumWorldBorderAction.SET_CENTER) - { - Field xField = packet.getClass().getDeclaredField("c"); - Field zField = packet.getClass().getDeclaredField("d"); - - xField.setAccessible(true); - zField.setAccessible(true); - - Pair pair = _centerToSet.get(player); - - xField.set(packet, pair.getLeft()); - zField.set(packet, pair.getRight()); - } - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - @Override - public void cleanup() - { - _packetHandler.removePacketHandler(this); - } - - public void setSize(Player player, double size) - { - _sizeToSet.put(player.getUniqueId(), size); - - sendPacket(player, EnumWorldBorderAction.SET_SIZE); - } - - public void setCenter(Player player, Location location) - { - _centerToSet.put(player.getUniqueId(), Pair.create(location.getX(), location.getZ())); - - sendPacket(player, EnumWorldBorderAction.SET_CENTER); - } - - private void sendPacket(Player player, EnumWorldBorderAction action) - { - WorldBorder border = ((CraftWorld) player.getWorld()).getHandle().getWorldBorder(); - UtilPlayer.sendPacket(player, new PacketPlayOutWorldBorder(border, action)); - } -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/ProgressingKit.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/ProgressingKit.java index eabe114f5..a93f7415e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/ProgressingKit.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/ProgressingKit.java @@ -30,7 +30,6 @@ import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; -import mineplex.core.common.util.UtilText; import mineplex.core.donation.Donor; import mineplex.core.menu.Menu; import mineplex.core.progression.ProgressiveKit; @@ -54,8 +53,6 @@ import net.minecraft.server.v1_8_R3.World; public abstract class ProgressingKit extends Kit implements ProgressiveKit { - public static final String COOLDOWN = "Cooldown"; - private static final FireworkEffect EFFECT = FireworkEffect.builder() .withColor(Color.AQUA) .with(Type.BALL) @@ -423,11 +420,6 @@ public abstract class ProgressingKit extends Kit implements ProgressiveKit return "Receive " + C.cGreen + amount + C.cWhite + " " + item + " every " + C.cGreen + time + C.cWhite + " second" + (time == 1 ? "" : "s") + (max > 0 ? ". Max " + C.cGreen + max : ""); } - - public static String receiveItem(String item, int amount) - { - return "Receive " + (amount == 1 ? (UtilText.startsWithVowel(item) ? "an" :" a") : C.cGreen + amount) + " " + item; - } public static String click(boolean left, String comp) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java index 8c575627c..5d63023a5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java @@ -294,9 +294,7 @@ public class PerkDestructor extends Perk if (lowest != null) { - Block down = lowest.getRelative(BlockFace.DOWN); - - if (lowest.getType() != Material.AIR && (UtilBlock.airFoliage(down) || down.isLiquid())) + if (lowest.getType() != Material.AIR && UtilBlock.airFoliage(lowest.getRelative(BlockFace.DOWN))) { lowest.getWorld().playEffect(lowest.getLocation(), Effect.STEP_SOUND, lowest.getType()); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/DeathBomberStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/DeathBomberStatTracker.java index 61d4b8923..90316be6e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/DeathBomberStatTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/DeathBomberStatTracker.java @@ -1,17 +1,18 @@ package nautilus.game.arcade.stats; -import mineplex.core.common.util.UtilPlayer; -import mineplex.minecraft.game.core.combat.event.CombatDeathEvent; -import nautilus.game.arcade.game.Game; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; - import java.util.HashMap; import java.util.Map; import java.util.UUID; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.entity.EntityDamageEvent; + +import mineplex.core.common.util.UtilPlayer; +import mineplex.minecraft.game.core.combat.event.CombatDeathEvent; +import nautilus.game.arcade.game.Game; + public class DeathBomberStatTracker extends StatTracker { private int _required; @@ -51,11 +52,6 @@ public class DeathBomberStatTracker extends StatTracker if(killer.equals(killed)) return; - if (killer.getItemInHand().getType() != Material.TNT) - { - return; - } - if (event.GetLog().GetKiller() != null && event.GetLog().GetKiller().GetReason().contains("Throwing TNT")) { Integer count = _killCount.get(killer.getUniqueId()); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/FoodForTheMassesStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/FoodForTheMassesStatTracker.java index de127e6b2..5495e89a2 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/FoodForTheMassesStatTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/FoodForTheMassesStatTracker.java @@ -1,6 +1,5 @@ package nautilus.game.arcade.stats; -import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -41,11 +40,6 @@ public class FoodForTheMassesStatTracker extends StatTracker Player player = UtilPlayer.searchExact(event.GetLog().GetPlayer().GetName()); if (player == null) return; - - if (killer.getItemInHand().getType() != Material.APPLE) - { - return; - } if (event.GetLog().GetKiller().GetReason() != null && event.GetLog().GetKiller().GetReason().contains("Apple Thrower")) { From 64ed3e2e1bc50040f14fa275f9531e10649a4509 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Fri, 24 Mar 2017 13:45:36 -0300 Subject: [PATCH 074/133] Still trying with armor stands... --- .../gadget/gadgets/item/ItemBubbleBlaster.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java index c6701c2ee..ff0ba75ed 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java @@ -1,5 +1,6 @@ package mineplex.core.gadget.gadgets.item; +import java.awt.Color; import java.time.Month; import java.time.YearMonth; import java.util.HashMap; @@ -13,6 +14,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; +import org.bukkit.util.Vector; import mineplex.core.common.util.C; import mineplex.core.common.util.F; @@ -21,7 +23,10 @@ import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilGear; import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilText; +import mineplex.core.common.util.particles.ColoredParticle; +import mineplex.core.common.util.particles.DustSpellColor; import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.Ammo; import mineplex.core.gadget.types.ItemGadget; @@ -79,14 +84,19 @@ public class ItemBubbleBlaster extends ItemGadget // TODO COOLDOWN AFTER MAX OF 5 SECONDS HOLDING // TODO LAUNCH MULTIPLE WHILE HOLDING - ArmorStand armorStand = player.getWorld().spawn(player.getLocation(), ArmorStand.class); + ArmorStand armorStand = player.getWorld().spawn(player.getLocation().add(0, 1, 0), ArmorStand.class); armorStand.setItemInHand(new ItemStack(Material.STAINED_GLASS, 1, (byte) UtilMath.random.nextInt(15))); armorStand.setSmall(true); armorStand.setVisible(false); _armorStands.put(armorStand, player); - UtilAction.velocity(armorStand, player.getLocation().getDirection(), 1, false, 0, 0.25, 5, false); + double x = UtilMath.random(0.5, 1) - 1.25, z = UtilMath.random(0.5, 1) - 1.25; + double sub = UtilMath.random(0.5, 1); + if (sub > 0.75) + UtilAction.velocity(armorStand, player.getLocation().getDirection().add(new Vector(x, 0, z)), 0.25, false, 0, 0.5, 1, false); + else + UtilAction.velocity(armorStand, player.getLocation().getDirection().subtract(new Vector(x, 0, z)), 0.25, false, 0, 0.5, 1, false); } @EventHandler @@ -101,9 +111,10 @@ public class ItemBubbleBlaster extends ItemGadget Map.Entry entry = iterator.next(); ArmorStand armorStand = entry.getKey(); Player player = entry.getValue(); - UtilAction.velocity(armorStand, armorStand.getLocation().getDirection(), 1, false, 0, 0.25, 0, false); if (armorStand.getTicksLived() >= 20) { + ColoredParticle coloredParticle = new ColoredParticle(UtilParticle.ParticleType.RED_DUST, new DustSpellColor(Color.WHITE), armorStand.getLocation()); + coloredParticle.display(); armorStand.remove(); iterator.remove(); } From 9ee6960038129126633aa767acc6c0ff029e0594 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Sun, 26 Mar 2017 01:25:08 -0300 Subject: [PATCH 075/133] Added bee wings --- .../core/common/shape/ShapeWings.java | 18 ++++++ .../mineplex/core/gadget/GadgetManager.java | 6 +- .../gadgets/particle/ParticleWingsBee.java | 61 +++++++++++++++++++ .../core/gadget/types/ParticleGadget.java | 9 ++- .../powerplayclub/PowerPlayClubRewards.java | 1 + 5 files changed, 92 insertions(+), 3 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.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 3800260ed..ac437134b 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 @@ -71,6 +71,24 @@ public class ShapeWings extends ShapeGrid implements CosmeticShape "00000$$0000000$$00000" }; + public static final String[] BEE_WING_PATTERN = new String[] + { + "0$$000000000000000$$0", + "$##$0000000000000$##$", + "0$%%$00000000000$%%$0", + "00$##$000000000$##$00", + "00$%%%$0000000$%%%$00", + "000$###$$000$$###$000", + "0000$%%%%$$$%%%%$0000", + "0000$###########$0000", + "00000$%%%%%%%%%$00000", + "00000$#########$00000", + "00000$%%%$$$%%%$00000", + "0000$###$000$###$0000", + "0000$%%$00000$%%$0000", + "00000$$0000000$$00000" + }; + public static final String[] SMALL_BUTTERFLY_WING_PATTERN = new String[] { "0$$00000000$$0", diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java index 55968b074..afedd8807 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java @@ -98,7 +98,6 @@ import mineplex.core.gadget.gadgets.hat.HatItem; import mineplex.core.gadget.gadgets.hat.HatType; import mineplex.core.gadget.gadgets.item.ItemBatGun; import mineplex.core.gadget.gadgets.item.ItemBow; -import mineplex.core.gadget.gadgets.item.ItemBubbleBlaster; import mineplex.core.gadget.gadgets.item.ItemCoal; import mineplex.core.gadget.gadgets.item.ItemCoinBomb; import mineplex.core.gadget.gadgets.item.ItemDuelingSword; @@ -166,6 +165,7 @@ import mineplex.core.gadget.gadgets.particle.ParticleFairy; import mineplex.core.gadget.gadgets.particle.ParticleFireRings; import mineplex.core.gadget.gadgets.particle.ParticleLegend; import mineplex.core.gadget.gadgets.particle.ParticleWingsAngel; +import mineplex.core.gadget.gadgets.particle.ParticleWingsBee; import mineplex.core.gadget.gadgets.particle.ParticleWingsDemons; import mineplex.core.gadget.gadgets.particle.ParticleWingsInfernal; import mineplex.core.gadget.gadgets.particle.ParticleWingsLove; @@ -361,7 +361,8 @@ public class GadgetManager extends MiniPlugin addGadget(new ItemBow(this)); addGadget(new ItemLovePotion(this)); addGadget(new ItemFlowerGift(this)); - addGadget(new ItemBubbleBlaster(this)); + // NEXT MONTH'S PPC + //addGadget(new ItemBubbleBlaster(this)); // Costume addGadget(new OutfitRaveSuitHelmet(this)); @@ -449,6 +450,7 @@ public class GadgetManager extends MiniPlugin addGadget(new ParticleFreedom(this)); addGadget(new ParticleChristmasTree(this)); addGadget(new ParticleWingsLove(this)); + addGadget(new ParticleWingsBee(this)); // Arrow Trails addGadget(new ArrowTrailFrostLord(this)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java new file mode 100644 index 000000000..b7ac89638 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java @@ -0,0 +1,61 @@ +package mineplex.core.gadget.gadgets.particle; + +import java.awt.Color; +import java.time.Month; +import java.time.YearMonth; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.potion.PotionType; +import org.bukkit.util.Vector; + +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.gadget.GadgetManager; +import mineplex.core.gadget.types.ParticleGadget; +import mineplex.core.itemstack.ItemStackFactory; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; + +public class ParticleWingsBee extends ParticleGadget +{ + + private ShapeWings _wings = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '#', ShapeWings.DEFAULT_ROTATION, ShapeWings.BEE_WING_PATTERN); + private ShapeWings _wingsYellow = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '%', ShapeWings.DEFAULT_ROTATION, ShapeWings.BEE_WING_PATTERN); + private ShapeWings _wingsEdge = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, true, ShapeWings.DEFAULT_ROTATION, ShapeWings.BEE_WING_PATTERN); + + public ParticleWingsBee(GadgetManager manager) + { + super(manager, "Bee Wings", + UtilText.splitLineToArray(C.cGray + "Placeholder", LineFormat.LORE), + -14, Material.GLASS, (byte) 0, YearMonth.of(2017, Month.APRIL)); + setDisplayItem(ItemStackFactory.Instance.createCustomPotion(PotionType.INSTANT_HEAL)); + } + + @Override + public void playParticle(Player player, UpdateEvent event) + { + Location loc = player.getLocation().add(0, 1.2, 0).add(player.getLocation().getDirection().multiply(-0.2)); + if (_manager.isMoving(player)) + { + if (event.getType() == UpdateType.TICK) + { + _wings.displayColoredParticle(loc, Color.BLACK); + _wingsYellow.displayColoredParticle(loc, Color.YELLOW); + _wingsEdge.displayColoredParticle(loc, Color.BLACK); + } + return; + } + + if (event.getType() == UpdateType.FAST) + { + _wings.displayColored(loc, Color.BLACK); + _wingsYellow.displayColored(loc, Color.YELLOW); + _wingsEdge.displayColored(loc, Color.BLACK); + } + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ParticleGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ParticleGadget.java index 68e60f9b0..254b33003 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ParticleGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ParticleGadget.java @@ -1,5 +1,7 @@ package mineplex.core.gadget.types; +import java.time.YearMonth; + import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -28,7 +30,12 @@ public abstract class ParticleGadget extends Gadget public ParticleGadget(GadgetManager manager, String name, String[] desc, int cost, Material mat, byte data, String...altNames) { super(manager, GadgetType.PARTICLE, name, desc, cost, mat, data, 1, altNames); - } + } + + public ParticleGadget(GadgetManager manager, String name, String[] desc, int cost, Material mat, byte data, YearMonth yearMonth, String...altNames) + { + super(manager, GadgetType.PARTICLE, name, desc, cost, mat, data, yearMonth, 1, altNames); + } @Override public void enableCustom(Player player, boolean message) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PowerPlayClubRewards.java b/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PowerPlayClubRewards.java index 3d5f61a42..6090185ed 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PowerPlayClubRewards.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PowerPlayClubRewards.java @@ -36,6 +36,7 @@ public class PowerPlayClubRewards .put(YearMonth.of(2017, Month.JANUARY), new UnknownSalesPackageItem("Over Easy Morph")) .put(YearMonth.of(2017, Month.FEBRUARY), new PetItem(PetType.TRUE_LOVE_PET)) .put(YearMonth.of(2017, Month.MARCH), new UnknownSalesPackageItem("Gold Pot Morph")) + .put(YearMonth.of(2017, Month.APRIL), new UnknownSalesPackageItem("Bee Wings")) .build(); public interface PowerPlayClubItem From 1c1af8b81e4737b607cb024c8f7a5ef06a31feee Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Sun, 26 Mar 2017 08:09:58 -0300 Subject: [PATCH 076/133] Changed shape of bee wings --- .../core/common/shape/ShapeWings.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) 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 ac437134b..58ca18b9b 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 @@ -73,20 +73,23 @@ public class ShapeWings extends ShapeGrid implements CosmeticShape public static final String[] BEE_WING_PATTERN = new String[] { - "0$$000000000000000$$0", - "$##$0000000000000$##$", - "0$%%$00000000000$%%$0", - "00$##$000000000$##$00", - "00$%%%$0000000$%%%$00", - "000$###$$000$$###$000", - "0000$%%%%$$$%%%%$0000", - "0000$###########$0000", - "00000$%%%%%%%%%$00000", - "00000$#########$00000", - "00000$%%%$$$%%%$00000", - "0000$###$000$###$0000", - "0000$%%$00000$%%$0000", - "00000$$0000000$$00000" + "000$$0000000000$$000", + "00$%%$00000000$%%$00", + "0$####$000000$####$0", + "$%%%%%$000000$%%%%%$", + "$#####$000000$#####$", + "$%%%%%%$0000$%%%%%%$", + "$######$0000$######$", + "$%%%%%%$0000$%%%%%%$", + "$######$$$$$$######$", + "$%%%%%%%%%%%%%%%%%%$", + "0$################$0", + "00$%%%%$$$$$$%%%%$00", + "00$####$0000$####$00", + "0$%%%%%$0000$%%%%%$0", + "00$###$000000$###$00", + "000$%%$000000$%%$000", + "0000$$00000000$$0000" }; public static final String[] SMALL_BUTTERFLY_WING_PATTERN = new String[] From 235288af56feddb1c1f28e38d8f8c0294cf4c006 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Mon, 27 Mar 2017 17:35:05 -0300 Subject: [PATCH 077/133] Changed wing shape again --- .../core/common/shape/ShapeWings.java | 30 ++++++++----------- .../gadgets/particle/ParticleWingsBee.java | 17 +++++------ 2 files changed, 20 insertions(+), 27 deletions(-) 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 58ca18b9b..5e6621476 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 @@ -73,23 +73,19 @@ public class ShapeWings extends ShapeGrid implements CosmeticShape public static final String[] BEE_WING_PATTERN = new String[] { - "000$$0000000000$$000", - "00$%%$00000000$%%$00", - "0$####$000000$####$0", - "$%%%%%$000000$%%%%%$", - "$#####$000000$#####$", - "$%%%%%%$0000$%%%%%%$", - "$######$0000$######$", - "$%%%%%%$0000$%%%%%%$", - "$######$$$$$$######$", - "$%%%%%%%%%%%%%%%%%%$", - "0$################$0", - "00$%%%%$$$$$$%%%%$00", - "00$####$0000$####$00", - "0$%%%%%$0000$%%%%%$0", - "00$###$000000$###$00", - "000$%%$000000$%%$000", - "0000$$00000000$$0000" + "00$$$000$$$00", + "0$###$0$###$0", + "$$$$$$$$$$$$$", + "$#####$#####$", + "$$$$$$$$$$$$$", + "0$#########$0", + "00$$$$$$$$$00", + "0$#########$0", + "$$$$$$$$$$$$$", + "$#####$#####$", + "$$$$$$$$$$$$$", + "0$###$0$###$0", + "00$$$000$$$00" }; public static final String[] SMALL_BUTTERFLY_WING_PATTERN = new String[] diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java index b7ac89638..dbda72fa8 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java @@ -24,15 +24,14 @@ import mineplex.core.updater.event.UpdateEvent; public class ParticleWingsBee extends ParticleGadget { - private ShapeWings _wings = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '#', ShapeWings.DEFAULT_ROTATION, ShapeWings.BEE_WING_PATTERN); - private ShapeWings _wingsYellow = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '%', ShapeWings.DEFAULT_ROTATION, ShapeWings.BEE_WING_PATTERN); - private ShapeWings _wingsEdge = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, true, ShapeWings.DEFAULT_ROTATION, ShapeWings.BEE_WING_PATTERN); + private ShapeWings _wingsBlack = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '$', ShapeWings.DEFAULT_ROTATION, ShapeWings.BEE_WING_PATTERN); + private ShapeWings _wingsYellow = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '#', ShapeWings.DEFAULT_ROTATION, ShapeWings.BEE_WING_PATTERN); public ParticleWingsBee(GadgetManager manager) { - super(manager, "Bee Wings", - UtilText.splitLineToArray(C.cGray + "Placeholder", LineFormat.LORE), - -14, Material.GLASS, (byte) 0, YearMonth.of(2017, Month.APRIL)); + super(manager, "Bumblebee's Wings", + UtilText.splitLineToArray(C.cGray + "Float like a butterfly and sting like a bee with these new spring wings!", LineFormat.LORE), + -14, Material.WOOL, (byte) 4, YearMonth.of(2017, Month.APRIL)); setDisplayItem(ItemStackFactory.Instance.createCustomPotion(PotionType.INSTANT_HEAL)); } @@ -44,18 +43,16 @@ public class ParticleWingsBee extends ParticleGadget { if (event.getType() == UpdateType.TICK) { - _wings.displayColoredParticle(loc, Color.BLACK); + _wingsBlack.displayColoredParticle(loc, Color.BLACK); _wingsYellow.displayColoredParticle(loc, Color.YELLOW); - _wingsEdge.displayColoredParticle(loc, Color.BLACK); } return; } if (event.getType() == UpdateType.FAST) { - _wings.displayColored(loc, Color.BLACK); + _wingsBlack.displayColored(loc, Color.BLACK); _wingsYellow.displayColored(loc, Color.YELLOW); - _wingsEdge.displayColored(loc, Color.BLACK); } } } From 4f0110b94225c18dcd5c909994b8e6d8ae4017c0 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Mon, 27 Mar 2017 20:19:54 -0300 Subject: [PATCH 078/133] Updated offset of the wings --- .../core/gadget/gadgets/particle/ParticleWingsBee.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java index dbda72fa8..7d25d438e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java @@ -7,7 +7,6 @@ import java.time.YearMonth; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; -import org.bukkit.potion.PotionType; import org.bukkit.util.Vector; import mineplex.core.common.shape.ShapeWings; @@ -17,7 +16,6 @@ import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilText; import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.types.ParticleGadget; -import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; @@ -32,13 +30,12 @@ public class ParticleWingsBee extends ParticleGadget super(manager, "Bumblebee's Wings", UtilText.splitLineToArray(C.cGray + "Float like a butterfly and sting like a bee with these new spring wings!", LineFormat.LORE), -14, Material.WOOL, (byte) 4, YearMonth.of(2017, Month.APRIL)); - setDisplayItem(ItemStackFactory.Instance.createCustomPotion(PotionType.INSTANT_HEAL)); } @Override public void playParticle(Player player, UpdateEvent event) { - Location loc = player.getLocation().add(0, 1.2, 0).add(player.getLocation().getDirection().multiply(-0.2)); + Location loc = player.getLocation().add(0, 1, 0).add(player.getLocation().getDirection().multiply(-0.4)); if (_manager.isMoving(player)) { if (event.getType() == UpdateType.TICK) From cb5a63974eaed18cd4e879ab8acde549bf09d900 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Mon, 27 Mar 2017 20:21:46 -0300 Subject: [PATCH 079/133] Changed name of the item in PPC rewards --- .../src/mineplex/core/powerplayclub/PowerPlayClubRewards.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PowerPlayClubRewards.java b/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PowerPlayClubRewards.java index 6090185ed..60f365341 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PowerPlayClubRewards.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/powerplayclub/PowerPlayClubRewards.java @@ -36,7 +36,7 @@ public class PowerPlayClubRewards .put(YearMonth.of(2017, Month.JANUARY), new UnknownSalesPackageItem("Over Easy Morph")) .put(YearMonth.of(2017, Month.FEBRUARY), new PetItem(PetType.TRUE_LOVE_PET)) .put(YearMonth.of(2017, Month.MARCH), new UnknownSalesPackageItem("Gold Pot Morph")) - .put(YearMonth.of(2017, Month.APRIL), new UnknownSalesPackageItem("Bee Wings")) + .put(YearMonth.of(2017, Month.APRIL), new UnknownSalesPackageItem("Bumblebee's Wings")) .build(); public interface PowerPlayClubItem From e3eac8b3ec3f5ed708655898a5610bd9ccae5022 Mon Sep 17 00:00:00 2001 From: cnr Date: Mon, 27 Mar 2017 23:37:45 -0500 Subject: [PATCH 080/133] Enable 2FA for support --- .../src/mineplex/core/twofactor/TwoFactorAuth.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/twofactor/TwoFactorAuth.java b/Plugins/Mineplex.Core/src/mineplex/core/twofactor/TwoFactorAuth.java index 32107d3f6..3da03286e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/twofactor/TwoFactorAuth.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/twofactor/TwoFactorAuth.java @@ -192,7 +192,7 @@ public class TwoFactorAuth extends MiniClientPlugin TwoFactorData data = Get(player); - if ((data.getLastLoginIp().isPresent() && player.getAddress().getAddress().toString().substring(1).equals(data.getLastLoginIp().get())) || _clientManager.Get(player).GetRank(true) == Rank.SUPPORT) + if (data.getLastLoginIp().isPresent() && player.getAddress().getAddress().toString().substring(1).equals(data.getLastLoginIp().get())) { player.sendMessage(F.main("2FA", "Authenticated")); return; From ebb596cdf4d66e42d13e382a33c8c4accd3e1964 Mon Sep 17 00:00:00 2001 From: cnr Date: Mon, 27 Mar 2017 23:47:25 -0500 Subject: [PATCH 081/133] Re-enable whitelist for Gem Hunters --- .../src/mineplex/gemhunters/GemHunters.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java index 76c0c5c84..f8dcac176 100644 --- a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java +++ b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java @@ -14,6 +14,7 @@ import mineplex.core.TimingsFix; import mineplex.core.account.CoreClientManager; import mineplex.core.achievement.AchievementManager; import mineplex.core.antihack.AntiHack; +import mineplex.core.beta.BetaWhitelist; import mineplex.core.blockrestore.BlockRestore; import mineplex.core.boosters.BoosterManager; import mineplex.core.chat.Chat; @@ -51,6 +52,7 @@ import mineplex.core.party.PartyManager; import mineplex.core.pet.PetManager; import mineplex.core.portal.GenericServer; import mineplex.core.portal.Portal; +import mineplex.core.powerplayclub.PowerPlayClubRepository; import mineplex.core.preferences.PreferencesManager; import mineplex.core.projectile.ProjectileManager; import mineplex.core.punish.Punish; @@ -311,7 +313,7 @@ public class GemHunters extends JavaPlugin require(TwoFactorAuth.class); // beta whitelist - //new BetaWhitelist(clientManager, new PowerPlayClubRepository(this, clientManager, donationManager)); + new BetaWhitelist(clientManager, new PowerPlayClubRepository(this, clientManager, donationManager)); } @Override From 9fcfab1a232b553b342e23803ccc095c52287e69 Mon Sep 17 00:00:00 2001 From: cnr Date: Mon, 27 Mar 2017 23:50:49 -0500 Subject: [PATCH 082/133] Fix GameType for Speed Builders in MapParser --- Plugins/Mineplex.MapParser/src/mineplex/mapparser/GameType.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/GameType.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/GameType.java index 5bc34de18..8e3f16245 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/GameType.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/GameType.java @@ -58,7 +58,7 @@ public enum GameType SmashDomination("Super Smash Mobs Domination", "Super Smash Mobs"), Snake("Snake"), SneakyAssassins("Sneaky Assassins"), - SpeedBuilders("SpeedBuilders"), + SpeedBuilders("Speed Builders"), SnowFight("Snow Fight"), Spleef("Super Spleef"), SpleefTeams("Super Spleef Teams"), From a22467bc74d8612e1a57d14e46c0b89d8a782909 Mon Sep 17 00:00:00 2001 From: cnr Date: Mon, 27 Mar 2017 23:53:06 -0500 Subject: [PATCH 083/133] Add Skyfall map type to MapParser --- Plugins/Mineplex.MapParser/src/mineplex/mapparser/GameType.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/GameType.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/GameType.java index 8e3f16245..b3b28d303 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/GameType.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/GameType.java @@ -52,6 +52,7 @@ public enum GameType Runner("Runner"), SearchAndDestroy("Search and Destroy"), Sheep("Sheep Quest"), + Skyfall("Skyfall"), Skywars("Skywars"), Smash("Super Smash Mobs"), SmashTeams("Super Smash Mobs Teams", "Super Smash Mobs"), From 4f3cfaba43d9739ee3c532c6647c404014930626 Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 19:08:56 -0500 Subject: [PATCH 084/133] PC-163 PC-200 Reset a player's spectator target when they switch servers --- Plugins/Mineplex.Core/src/mineplex/core/portal/Portal.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/portal/Portal.java b/Plugins/Mineplex.Core/src/mineplex/core/portal/Portal.java index 5d0d5eb88..68a0c10c1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/portal/Portal.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/portal/Portal.java @@ -10,6 +10,7 @@ import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.GameMode; import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -195,6 +196,11 @@ public class Portal extends MiniPlugin */ public void sendPlayer(final Player player, String serverName) { + if (player.getGameMode() == GameMode.SPECTATOR) + { + player.setSpectatorTarget(null); + } + ByteArrayOutputStream b = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(b); From 953a87b3ea4ab05cc3d3f3dd98e07ae6efbba2cf Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 19:13:48 -0500 Subject: [PATCH 085/133] PC-207 --- .../Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java index f4ccf801a..33c41236a 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java @@ -115,7 +115,7 @@ public class ServerGameMenu extends ShopPageBase C.Reset + "", C.Reset + "One team must steal the other", C.Reset + "team's flag. Capture it", - C.Reset + "three times to win.", + C.Reset + "five times to win.", }, new String[] {"CTF"}, "CTF", new SelectCTFButton(this)); add(20, Material.BEACON, C.cYellowB + "Dominate " + C.cGray + "Team Game", new String[] From 26d3a777486473849ebb98644f2e496fceb38150 Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 19:21:00 -0500 Subject: [PATCH 086/133] PC-368 --- .../Mineplex.Core/src/mineplex/core/mount/DragonData.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/DragonData.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/DragonData.java index a1d664e60..3cc8682a9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/DragonData.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/DragonData.java @@ -11,6 +11,8 @@ import org.bukkit.entity.Chicken; import org.bukkit.entity.EnderDragon; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; import org.bukkit.util.Vector; import mineplex.core.common.util.UtilAlg; @@ -29,7 +31,7 @@ public class DragonData extends MountData public float Pitch = 0; public Vector Velocity = new Vector(0,0,0); - public Entity Chicken; + public Chicken Chicken; public DragonData(DragonMount dragonMount, Player rider) { @@ -50,6 +52,7 @@ public class DragonData extends MountData rider.getWorld().playSound(rider.getLocation(), Sound.ENDERDRAGON_GROWL, 20f, 1f); Chicken = rider.getWorld().spawn(rider.getLocation(), Chicken.class); + Chicken.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 99999999, 1)); Dragon.setPassenger(Chicken); Chicken.setPassenger(getOwner()); From 1ecd46f7eea1f3b8a82fe14ab77e8d7caffb7d2f Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 22:35:13 -0500 Subject: [PATCH 087/133] PC-372 --- .../game/arcade/managers/GameHostManager.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameHostManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameHostManager.java index 49e45ee5e..c7bfd17eb 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameHostManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameHostManager.java @@ -561,16 +561,23 @@ public class GameHostManager implements Listener @EventHandler public void whitelistCommand(PlayerCommandPreprocessEvent event) { - if (_host == null || !event.getPlayer().equals(_host)) + if (_host == null) return; - if (isCommunityServer()) - return; - + if (!event.getMessage().toLowerCase().startsWith("/whitelist")) return; - if (!isPrivateServer()) + if (!event.getPlayer().equals(_host)) + { + event.setCancelled(true); + UtilPlayer.message(event.getPlayer(), F.main("MPS", "You do not have permission to whitelist players. Ask the MPS host")); return; + } + if (isCommunityServer() || !isPrivateServer()) + { + event.setCancelled(true); + return; + } event.setCancelled(true); From 9256fe990344b539c790e3bf0e617a817a6d2cbf Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 19:22:17 -0500 Subject: [PATCH 088/133] PC-401 --- .../src/mineplex/core/achievement/AchievementCategory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java b/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java index 511e97086..22cfcc59d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java @@ -112,7 +112,7 @@ public enum AchievementCategory DRAW_MY_THING("Draw My Thing", null, new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.GEMS_EARNED }, - Material.BOOK_AND_QUILL, 0, GameCategory.CLASSICS, "Extra Tools Kit", false, GameDisplay.Draw.getGameId()), + Material.BOOK_AND_QUILL, 0, GameCategory.CLASSICS, "None", false, GameDisplay.Draw.getGameId()), CHAMPIONS("Champions", new String[] {"Champions Domination", "Champions TDM", "Champions CTF"}, new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED, new StatDisplay("Flags Captured", "Captures") }, From 66e3a7ad5c2453af537bf6d480d031e7524e644b Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 22:11:02 -0500 Subject: [PATCH 089/133] PC-587 --- .../nautilus/game/arcade/game/games/smash/SoloSuperSmash.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SoloSuperSmash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SoloSuperSmash.java index 1cb424597..e542c7549 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SoloSuperSmash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SoloSuperSmash.java @@ -65,7 +65,7 @@ public class SoloSuperSmash extends SuperSmash { super(manager, kits, type, new String[] { - "Each player has 3 respawns", + "Each player has 4 respawns", "Attack to restore hunger!", "Last player alive wins!" }); From 99534e19c550e00d6cab1c4e6a1d88eecbbe6064 Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 19:31:03 -0500 Subject: [PATCH 090/133] PC-599 --- .../mineplex/core/common/util/UtilEnt.java | 41 +++++-------------- .../mineplex/core/mount/types/MountSlime.java | 2 + 2 files changed, 13 insertions(+), 30 deletions(-) diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilEnt.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilEnt.java index 062823754..ccd084a5e 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilEnt.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilEnt.java @@ -312,38 +312,19 @@ public class UtilEnt public static void removeGoalSelectors(Entity entity) { - try + if (((CraftEntity)entity).getHandle() instanceof EntityInsentient) { - if (_goalSelector == null) - { - _goalSelector = EntityInsentient.class.getDeclaredField("goalSelector"); - _goalSelector.setAccessible(true); - } - - if (((CraftEntity)entity).getHandle() instanceof EntityInsentient) - { - EntityInsentient creature = (EntityInsentient)((CraftEntity)entity).getHandle(); - - PathfinderGoalSelector goalSelector = new PathfinderGoalSelector(((CraftWorld)entity.getWorld()).getHandle().methodProfiler); - - _goalSelector.set(creature, goalSelector); - } - } - catch (IllegalArgumentException e) + EntityInsentient creature = (EntityInsentient)((CraftEntity)entity).getHandle(); + creature.goalSelector = new PathfinderGoalSelector(((CraftWorld)entity.getWorld()).getHandle().methodProfiler); + } + } + + public static void removeTargetSelectors(Entity entity) + { + if (((CraftEntity)entity).getHandle() instanceof EntityInsentient) { - e.printStackTrace(); - } - catch (IllegalAccessException e) - { - e.printStackTrace(); - } - catch (NoSuchFieldException e) - { - e.printStackTrace(); - } - catch (SecurityException e) - { - e.printStackTrace(); + EntityInsentient creature = (EntityInsentient)((CraftEntity)entity).getHandle(); + creature.targetSelector = new PathfinderGoalSelector(((CraftWorld)entity.getWorld()).getHandle().methodProfiler); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountSlime.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountSlime.java index 265601406..9d916335c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountSlime.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountSlime.java @@ -50,6 +50,8 @@ public class MountSlime extends Mount> mount.getEntity().setCustomName(player.getName() + "'s " + getName()); + UtilEnt.removeTargetSelectors(mount.getEntity()); + //Inform UtilPlayer.message(player, F.main("Mount", "You spawned " + F.elem(getName()) + ".")); From e45e27ba340e3de5246a63e3a0433715302aebea Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 19:38:29 -0500 Subject: [PATCH 091/133] PC-629 --- .../game/games/gladiators/hotbar/HotbarEditor.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/hotbar/HotbarEditor.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/hotbar/HotbarEditor.java index 88b9411c9..364028b29 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/hotbar/HotbarEditor.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/hotbar/HotbarEditor.java @@ -14,6 +14,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.inventory.Inventory; @@ -127,11 +128,24 @@ public class HotbarEditor extends MiniPlugin if (UtilItem.isSimilar(item, _item, UtilItem.ItemAttribute.NAME)) { + event.setCancelled(true); HotbarInventory.open(event.getPlayer(), this); } } } + @EventHandler + public void onInteract(PlayerInteractEntityEvent event) + { + ItemStack item = event.getPlayer().getItemInHand(); + + if (UtilItem.isSimilar(item, _item, UtilItem.ItemAttribute.NAME)) + { + event.setCancelled(true); + HotbarInventory.open(event.getPlayer(), this); + } + } + public Gladiators getHost() { return _host; From 3b8bda9dbd7448bbb468bf0d14843ddcef1714e2 Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 19:52:58 -0500 Subject: [PATCH 092/133] PC-728 --- Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java b/Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java index 71f36d24d..fc0a27fb4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java @@ -369,7 +369,7 @@ public class Chat extends MiniPlugin msgContainsHack(event.getMessage())) { UtilPlayer.message(sender, F.main("Chat", - "Accusing players of cheating in-game is against the rules." + "Accusing players of cheating in-game is against the rules. " + "If you think someone is cheating, please gather evidence and report it at " + F.link("www.mineplex.com/reports"))); event.setCancelled(true); From 23c52eed2c9e648f8041be4690680bc43ffdc166 Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 19:55:31 -0500 Subject: [PATCH 093/133] PC-729 --- .../src/mineplex/core/chat/command/BroadcastCommand.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/chat/command/BroadcastCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/chat/command/BroadcastCommand.java index 5f2cdd1c2..ed97355c8 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/chat/command/BroadcastCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/chat/command/BroadcastCommand.java @@ -5,6 +5,8 @@ import org.bukkit.entity.Player; import mineplex.core.chat.Chat; import mineplex.core.command.CommandBase; import mineplex.core.common.Rank; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; public class BroadcastCommand extends CommandBase @@ -17,6 +19,12 @@ public class BroadcastCommand extends CommandBase @Override public void Execute(Player caller, String[] args) { + if (args.length == 0) + { + UtilPlayer.message(caller, F.main("Broadcast", "What are you broadcasting?")); + return; + } + String announcement = ""; for (String arg : args) From 4ad5cede14f044f4fba67f6d25d82dc76eb44b8f Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 19:56:07 -0500 Subject: [PATCH 094/133] PC-740 --- .../minecraft/game/classcombat/Skill/Ranger/RopedArrow.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/RopedArrow.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/RopedArrow.java index 8b6f4e2bc..a15cdc08a 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/RopedArrow.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/RopedArrow.java @@ -49,7 +49,7 @@ public class RopedArrow extends SkillActive { "Prepare a roped arrow;", "Your next arrow will pull you", - "pull you in after it hits.", + "in after it hits.", }); } From c95fea066c60d75fef3fa8086df1637c5d95e9ee Mon Sep 17 00:00:00 2001 From: samczsun Date: Sat, 11 Mar 2017 01:01:44 -0500 Subject: [PATCH 095/133] PC-778 --- .../game/classcombat/Skill/Mage/Inferno.java | 2 +- .../games/gladiators/modes/ChampionsGladiators.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Inferno.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Inferno.java index 2c07078cb..0745f87ee 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Inferno.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Inferno.java @@ -69,7 +69,7 @@ public class Inferno extends SkillActive } @Override - public void Skill(Player player, int level) + public void Skill(Player player, int level) { _active.add(player); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/ChampionsGladiators.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/ChampionsGladiators.java index dd740ef73..d7af66dea 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/ChampionsGladiators.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/ChampionsGladiators.java @@ -5,6 +5,8 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.entity.EntityRegainHealthEvent; +import mineplex.minecraft.game.classcombat.Skill.event.SkillTriggerEvent; + import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import nautilus.game.arcade.events.GameStateChangeEvent; @@ -17,6 +19,7 @@ import nautilus.game.arcade.game.games.champions.kits.KitRanger; import nautilus.game.arcade.game.games.gladiators.Arena; import nautilus.game.arcade.game.games.gladiators.ArenaType; import nautilus.game.arcade.game.games.gladiators.Gladiators; +import nautilus.game.arcade.game.games.gladiators.RoundState; import nautilus.game.arcade.kit.Kit; /** @@ -88,5 +91,11 @@ public class ChampionsGladiators extends Gladiators { return "Champions Gladiators"; } - + + @EventHandler + public void skill(SkillTriggerEvent event) + { + if (getRoundState() != RoundState.FIGHTING) + event.SetCancelled(true); + } } From 8521691cfb5988d2271b41352b4494c49c1ca5db Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 20:05:48 -0500 Subject: [PATCH 096/133] PC-817 --- .../game/arcade/game/games/minestrike/items/guns/Gun.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/minestrike/items/guns/Gun.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/minestrike/items/guns/Gun.java index cc694d4f9..34de2ce93 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/minestrike/items/guns/Gun.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/minestrike/items/guns/Gun.java @@ -559,7 +559,7 @@ public class Gun extends StrikeItem C.cYellow + C.Bold + "Damage per Bullet: " + ChatColor.RESET + UtilMath.trim(1, getDamage()), C.cYellow + C.Bold + "Armor Penetration: " + ChatColor.RESET + (int)(_gunStats.getArmorPen()*100) + "%", C.cYellow + C.Bold + "Damage Dropoff: " + ChatColor.RESET + (int)(_gunStats.getDropoff()*1000d) + "% per 10 Blocks", - C.cYellow + C.Bold + "Recoil per Shot: " + ChatColor.RESET + _gunStats.getConeIncreaseRate(), + C.cYellow + C.Bold + "Recoil per Shot: " + ChatColor.RESET + UtilMath.trim(2, _gunStats.getConeIncreaseRate()), C.cYellow + C.Bold + "Recoil Recovery: " + ChatColor.RESET + _gunStats.getConeReduceRate() + " per Second", }; } From 858b08e3c35bfc86a61429ae595ec6e22dd98611 Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 21:58:16 -0500 Subject: [PATCH 097/133] PC-825 --- .../gui/privateServer/page/SetGamePage.java | 23 +++++++++++++------ .../game/arcade/managers/GameHostManager.java | 2 +- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/privateServer/page/SetGamePage.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/privateServer/page/SetGamePage.java index ef38a29ed..4a24f5090 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/privateServer/page/SetGamePage.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/privateServer/page/SetGamePage.java @@ -1,6 +1,7 @@ package nautilus.game.arcade.gui.privateServer.page; import java.util.ArrayList; +import java.util.List; import mineplex.core.common.util.C; import mineplex.core.game.GameCategory; @@ -89,16 +90,24 @@ public class SetGamePage extends BasePage private void addGameButton(int slot, final GameType type) { - String infoString = ChatColor.RESET + C.cGray + "Make this next Game Type"; - String space = "§1"; - String left = ChatColor.YELLOW + "Left-Click " + C.cGray + "for a §fRandom Map§7."; - String right = ChatColor.YELLOW + "Right-Click " + C.cGray + "to §fChoose Map§7."; - String[] normLore = new String[]{infoString, space, left, right}; + List lore = new ArrayList<>(); + lore.add(ChatColor.RESET + C.cGray + "Make this next Game Type"); + lore.add("§1"); + if (type == GameType.UHC || type == GameType.UHCSolo || type == GameType.UHCSoloSpeed || type == GameType.UHCTeamsSpeed) + { + lore.add(ChatColor.YELLOW + "Left-Click " + C.cGray + "to select"); + } + else + { + lore.add(ChatColor.YELLOW + "Left-Click " + C.cGray + "for a §fRandom Map§7."); + lore.add(ChatColor.YELLOW + "Right-Click " + C.cGray + "to §fChoose Map§7."); + } if (_manager.hasWarning().contains(type)) { - normLore = new String[]{infoString, space, left, right, "§2", "§c§lWARNING: §fThis game was rejected!"}; + lore.add("§2"); + lore.add("§c§lWARNING: §fThis game was rejected!"); } - ShopItem shopItem = new ShopItem(type.GetMaterial(), type.GetMaterialData(), type.GetName(), normLore, 1, false, false); + ShopItem shopItem = new ShopItem(type.GetMaterial(), type.GetMaterialData(), type.GetName(), lore.toArray(new String[lore.size()]), 1, false, false); addButton(slot, shopItem, new IButton() { @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameHostManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameHostManager.java index c7bfd17eb..47ea01a43 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameHostManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameHostManager.java @@ -117,7 +117,7 @@ public class GameHostManager implements Listener legendGames.add(GameType.WitherAssault); legendGames.add(GameType.Wizards); legendGames.add(GameType.Build); - //legendGames.add(GameType.UHC); + legendGames.add(GameType.UHC); legendGames.add(GameType.MineStrike); legendGames.add(GameType.Skywars); legendGames.add(GameType.SpeedBuilders); From 8a78f1ce340f9368423cec02c92396571c05b0a0 Mon Sep 17 00:00:00 2001 From: samczsun Date: Sat, 11 Mar 2017 15:11:29 -0500 Subject: [PATCH 098/133] PC-1026 --- .../nautilus/game/arcade/game/games/turfforts/TurfForts.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java index e9b881916..746716226 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java @@ -380,7 +380,7 @@ public class TurfForts extends TeamGame while (block.getTypeId() == 0 && block.getY() > 0) block = block.getRelative(BlockFace.DOWN); - if (block.getData() != team.GetColorData()) + if (block.getType() != Material.STAINED_CLAY || block.getData() != team.GetColorData()) { UtilPlayer.message(event.getPlayer(), F.main("Game", "You can only build above " + F.elem(team.GetColor() + team.GetName()) + ".")); event.setCancelled(true); From 8226592caa465b0e05818ad45f429dccdc5d3d82 Mon Sep 17 00:00:00 2001 From: samczsun Date: Sat, 11 Mar 2017 15:21:26 -0500 Subject: [PATCH 099/133] PC-1026 --- .../nautilus/game/arcade/game/games/turfforts/TurfForts.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java index 746716226..93c2fb37c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java @@ -380,7 +380,7 @@ public class TurfForts extends TeamGame while (block.getTypeId() == 0 && block.getY() > 0) block = block.getRelative(BlockFace.DOWN); - if (block.getType() != Material.STAINED_CLAY || block.getData() != team.GetColorData()) + if ((block.getType() != Material.STAINED_CLAY && block.getType() != Material.WOOL) || block.getData() != team.GetColorData()) { UtilPlayer.message(event.getPlayer(), F.main("Game", "You can only build above " + F.elem(team.GetColor() + team.GetName()) + ".")); event.setCancelled(true); From 3ef8c6f5327a4f4defcc7a0039c617a346c31d6d Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 22:16:51 -0500 Subject: [PATCH 100/133] PC-1101 --- .../game/arcade/game/games/survivalgames/SurvivalGames.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SurvivalGames.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SurvivalGames.java index d1a7665ad..4dc2f850f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SurvivalGames.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SurvivalGames.java @@ -1986,7 +1986,7 @@ public abstract class SurvivalGames extends Game @EventHandler public void craftedItems(CraftItemEvent event) { - if (UtilItem.isWeapon(event.getCurrentItem()) || UtilItem.isArmor(event.getCurrentItem())) + if (UtilItem.isWeapon(event.getCurrentItem()) || UtilItem.isArmor(event.getCurrentItem()) || event.getCurrentItem().getType() == Material.FISHING_ROD) { UtilItem.makeUnbreakable(event.getCurrentItem()); } From ca452463db02fdd30265bc5240285ceafd901ee2 Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 20:08:19 -0500 Subject: [PATCH 101/133] PC-1106 --- .../src/nautilus/game/arcade/game/games/draw/Draw.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java index 483fdf15e..457fcb5ce 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java @@ -224,8 +224,8 @@ public class Draw extends SoloGame ); registerChatStats( - new ChatStatData("TotalGuess", "Total Guess'", true), - new ChatStatData("PureLuck", "Lucky Guess'", true) + new ChatStatData("TotalGuess", "Total Guesses", true), + new ChatStatData("PureLuck", "Lucky Guesses", true) ); new CompassModule() From 40648cf715916adb9a1f35f574de46dd04f78e9b Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 20:12:22 -0500 Subject: [PATCH 102/133] PC-1178 --- .../src/mineplex/core/chat/Chat.java | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java b/Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java index fc0a27fb4..63087f2f9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java @@ -205,22 +205,6 @@ public class Chat extends MiniPlugin return true; } - @EventHandler - public void removeChat(AsyncPlayerChatEvent event) - { - if (event.isCancelled()) - return; - - if (event.isAsynchronous()) - { - for (Iterator playerIterator = event.getRecipients().iterator(); playerIterator.hasNext();) - { - if (!_preferences.get(playerIterator.next()).isActive(Preference.SHOW_CHAT)) - playerIterator.remove(); - } - } - } - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onSignChange(SignChangeEvent event) { @@ -403,6 +387,11 @@ public class Chat extends MiniPlugin return; } } + + if (event.isAsynchronous()) + { + event.getRecipients().removeIf(player -> !_preferences.get(player).isActive(Preference.SHOW_CHAT)); + } } private boolean msgContainsHack(String msg) From fc686ea49744912d0a8014c48d5421bde7e021b0 Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 20:15:11 -0500 Subject: [PATCH 103/133] PC-1182 --- .../src/mineplex/core/treasure/TreasureLocation.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureLocation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureLocation.java index e0e9f13ce..264da1eae 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureLocation.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureLocation.java @@ -320,7 +320,7 @@ public class TreasureLocation implements Listener Location centerLocation = treasure.getCenterBlock().getLocation().add(0.5, 0.5, 0.5); if (event.getTo().distanceSquared(centerLocation) > 9) { - Location newTo = event.getFrom(); + Location newTo = centerLocation.clone(); newTo.setPitch(event.getTo().getPitch()); newTo.setYaw(event.getTo().getYaw()); event.setTo(newTo); @@ -340,8 +340,13 @@ public class TreasureLocation implements Listener double fromDistanceFromCenter = centerLocation.distanceSquared(fromLocation); if (toDistanceFromCenter < fromDistanceFromCenter) { - Location spawnLocation = new Location(player.getWorld(), 0, 64, 0); - UtilAction.velocity(player, UtilAlg.getTrajectory(player.getLocation(), spawnLocation).multiply(-1), 1.5, true, 0.8, 0, 1.0, true); + Entity target = player; + while (target.getVehicle() != null) + { + target = target.getVehicle(); + } + Location spawnLocation = new Location(target.getWorld(), 0, 64, 0); + UtilAction.velocity(target, UtilAlg.getTrajectory(target.getLocation(), spawnLocation).multiply(-1), 1.5, true, 0.8, 0, 1.0, true); } } } From cb33bc7bed179e80fcb01c47ba5e4c79d530e8d7 Mon Sep 17 00:00:00 2001 From: samczsun Date: Sat, 11 Mar 2017 15:56:58 -0500 Subject: [PATCH 104/133] PC-1187 --- .../src/mineplex/core/gadget/gadgets/morph/MorphSquid.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSquid.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSquid.java index 096f453fd..a78f515f9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSquid.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSquid.java @@ -63,6 +63,12 @@ public class MorphSquid extends MorphGadget implements IThrown { removeArmor(player); UtilMorph.undisguise(player, Manager.getDisguiseManager()); + + if (player.getInventory().getBoots() != null && player.getInventory().getBoots().getType() == Material.DIAMOND_BOOTS) + { + player.getInventory().setBoots(new ItemStack(Material.AIR)); + player.removePotionEffect(PotionEffectType.SPEED); + } } @EventHandler From 63eed1abcd0d455bd431b2fa8cce08a0869dd37f Mon Sep 17 00:00:00 2001 From: samczsun Date: Sat, 11 Mar 2017 16:19:08 -0500 Subject: [PATCH 105/133] PC-1210 --- .../src/mineplex/core/gadget/types/MorphGadget.java | 1 + 1 file changed, 1 insertion(+) 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 ff08e8152..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,6 +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); _active.add(player); From 53d9a5f977a8dc897a34b9cb4f40c144e8d83478 Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 22:45:24 -0500 Subject: [PATCH 106/133] PC-1222 --- .../game/arcade/game/games/micro/Micro.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/Micro.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/Micro.java index 09941ea19..6e70e0851 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/Micro.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/Micro.java @@ -9,6 +9,8 @@ import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockFromToEvent; +import org.bukkit.event.block.BlockGrowEvent; import org.bukkit.event.block.BlockPlaceEvent; import mineplex.core.common.util.MapUtil; @@ -107,12 +109,24 @@ public class Micro extends TeamGame { Block block = WorldData.World.getBlockAt(x, y, z); - if (block.getType() == Material.AIR || block.isLiquid()) + if (block.getType() == Material.AIR) continue; _blocks.add(block); } } + + @EventHandler + public void preventGrow(BlockGrowEvent event) + { + event.setCancelled(true); + } + + @EventHandler + public void preventFlow(BlockFromToEvent event) + { + event.setCancelled(true); + } @EventHandler public void BlockPlace(BlockPlaceEvent event) From 52f09655e8423b337ae45bcf2b21dd588262b4a6 Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 21:58:31 -0500 Subject: [PATCH 107/133] PC-1231 --- .../src/mineplex/core/achievement/Achievement.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/achievement/Achievement.java b/Plugins/Mineplex.Core/src/mineplex/core/achievement/Achievement.java index db2e4d154..745df2fee 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/achievement/Achievement.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/achievement/Achievement.java @@ -449,7 +449,7 @@ public enum Achievement CHAMPIONS_SPECIAL_WIN("Champion of Champions", 3000, new String[]{"Champions CTF.SpecialWin"}, - new String[]{"Win the game with 5 more captures than the other team"}, + new String[]{"Win the game with 5 more flag captures than the other team"}, new int[]{1}, AchievementCategory.CHAMPIONS), From 53e8fa9c47069a8635e724108b1d715075f2b287 Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 22:35:41 -0500 Subject: [PATCH 108/133] PC-1235 --- .../minecraft/game/classcombat/Skill/Assassin/Blink.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Blink.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Blink.java index bd50cddd3..c74556fae 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Blink.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Blink.java @@ -56,7 +56,7 @@ public class Blink extends SkillActive "", "Using again within 5 seconds De-Blinks,", "returning you to your original location.", - "Can be used while Slowed." + "Cannot be used while Slowed." }); } From 017d737e5962e6fe4df1316d4a2e65ed160d1a9e Mon Sep 17 00:00:00 2001 From: samczsun Date: Sat, 11 Mar 2017 15:50:38 -0500 Subject: [PATCH 109/133] PC-1248 PC-1249 --- .../gadgets/morph/MorphPumpkinKing.java | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPumpkinKing.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPumpkinKing.java index cb13b4ff5..c309fb7a4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPumpkinKing.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPumpkinKing.java @@ -4,6 +4,8 @@ import java.util.List; import java.util.Map; import java.util.Random; +import net.minecraft.server.v1_8_R3.PacketPlayInUseEntity; + import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Item; @@ -32,12 +34,14 @@ import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.gadgets.morph.managers.UtilMorph; import mineplex.core.gadget.types.MorphGadget; import mineplex.core.itemstack.ItemBuilder; +import mineplex.core.packethandler.IPacketHandler; +import mineplex.core.packethandler.PacketInfo; import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.core.visibility.VisibilityManager; -public class MorphPumpkinKing extends MorphGadget +public class MorphPumpkinKing extends MorphGadget implements IPacketHandler { private static final int CROWN_POINTS = 12; @@ -57,6 +61,7 @@ public class MorphPumpkinKing extends MorphGadget -1, Material.PUMPKIN, (byte)0); + manager.getPacketManager().addPacketHandler(this, true, PacketPlayInUseEntity.class); } @Override @@ -123,7 +128,20 @@ public class MorphPumpkinKing extends MorphGadget _bombs.removeIf(bomb -> bomb.update()); } } - + + @Override + public void handle(PacketInfo packetInfo) + { + if (packetInfo.getPacket() instanceof PacketPlayInUseEntity) + { + PacketPlayInUseEntity packetPlayInUseEntity = (PacketPlayInUseEntity) packetInfo.getPacket(); + if (packetPlayInUseEntity.action == PacketPlayInUseEntity.EnumEntityUseAction.ATTACK) + for (JackOBomb bomb : _bombs) + if (bomb._ent.getEntityId() == packetPlayInUseEntity.a) + packetInfo.setCancelled(true); + } + } + private class JackOBomb { private Player _user; @@ -151,6 +169,12 @@ public class MorphPumpkinKing extends MorphGadget { return true; } + if (!_user.isOnline()) + { + Manager.getDisguiseManager().undisguise(_disguise); + _ent.remove(); + _done = true; + } if (System.currentTimeMillis() >= _detonation) { UtilParticle.PlayParticleToAll(ParticleType.HUGE_EXPLOSION, _ent.getLocation(), null, 0, 1, ViewDist.NORMAL); From affb2cb91f82d345ef89fde31bb37431d9732647 Mon Sep 17 00:00:00 2001 From: samczsun Date: Fri, 10 Mar 2017 14:06:52 -0500 Subject: [PATCH 110/133] PC-1395 Don't disable self otherwise a message is shown --- .../gamemodifiers/minestrike/GameModifierMineStrikeSkin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/minestrike/GameModifierMineStrikeSkin.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/minestrike/GameModifierMineStrikeSkin.java index df1cf150f..982e97411 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/minestrike/GameModifierMineStrikeSkin.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/minestrike/GameModifierMineStrikeSkin.java @@ -86,7 +86,7 @@ public class GameModifierMineStrikeSkin extends GameModifierGadget @Override public void enableCustom(Player player, boolean message) { - Manager.getGameModifiers(getGameType()).stream().filter(getWeaponFilter(_weapon)).forEach(g -> g.disable(player)); + Manager.getGameModifiers(getGameType()).stream().filter(getWeaponFilter(_weapon).and(weapon -> weapon != this)).forEach(g -> g.disable(player)); super.enableCustom(player, message); } From c82697a4e3cc5ee24d7107ed7d1cfc8df5ed2973 Mon Sep 17 00:00:00 2001 From: samczsun Date: Mon, 13 Mar 2017 13:47:03 -0400 Subject: [PATCH 111/133] PC-1396 --- .../src/nautilus/game/arcade/managers/NextBestGameManager.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/NextBestGameManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/NextBestGameManager.java index 80e803d08..b74132e1c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/NextBestGameManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/NextBestGameManager.java @@ -409,6 +409,9 @@ public class NextBestGameManager implements Listener private void handle(Player player) { + if (getGame().IsAlive(player)) + return; + Party party = _partyManager.getPartyByPlayer(player); if (party != null) From c8eab2596f1405ec12c8fcaed7f4364364c145d3 Mon Sep 17 00:00:00 2001 From: samczsun Date: Thu, 9 Mar 2017 19:10:37 -0500 Subject: [PATCH 112/133] Move package because intellij is complaining --- .../mineplex/core/portal/{Commands => commands}/SendCommand.java | 0 .../core/portal/{Commands => commands}/ServerCommand.java | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename Plugins/Mineplex.Core/src/mineplex/core/portal/{Commands => commands}/SendCommand.java (100%) rename Plugins/Mineplex.Core/src/mineplex/core/portal/{Commands => commands}/ServerCommand.java (100%) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/portal/Commands/SendCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/portal/commands/SendCommand.java similarity index 100% rename from Plugins/Mineplex.Core/src/mineplex/core/portal/Commands/SendCommand.java rename to Plugins/Mineplex.Core/src/mineplex/core/portal/commands/SendCommand.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/portal/Commands/ServerCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/portal/commands/ServerCommand.java similarity index 100% rename from Plugins/Mineplex.Core/src/mineplex/core/portal/Commands/ServerCommand.java rename to Plugins/Mineplex.Core/src/mineplex/core/portal/commands/ServerCommand.java From 4d32efe7797a732016b5c5945d9bd8332178276e Mon Sep 17 00:00:00 2001 From: samczsun Date: Mon, 27 Mar 2017 19:25:56 -0400 Subject: [PATCH 113/133] Not even disguises are safe from the NSA --- .../playerdisguise/DisguiseCommand.java | 9 +++ .../playerdisguise/PlayerDisguiseManager.java | 6 ++ .../PlayerDisguiseNotification.java | 57 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseNotification.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/DisguiseCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/DisguiseCommand.java index dfe3d6fb2..ac7443d69 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/DisguiseCommand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/DisguiseCommand.java @@ -19,6 +19,10 @@ public class DisguiseCommand extends CommandBase implemen { if (args == null || args.length == 0) { + Plugin.runAsync(() -> + { + new PlayerDisguiseNotification(Plugin.getRealName(caller), caller.getUniqueId(), caller.getName()).publish(); + }); Plugin.undisguise(caller); return; } @@ -28,6 +32,11 @@ public class DisguiseCommand extends CommandBase implemen return; } + Plugin.runAsync(() -> + { + new PlayerDisguiseNotification(Plugin.getRealName(caller), caller.getUniqueId(), args[0], args.length > 1 ? args[1] : args[0]).publish(); + }); + Plugin.disguise(caller, args[0], args.length > 1 ? args[1] : args[0]); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseManager.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseManager.java index 60729ef22..caf2b5b1d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseManager.java @@ -331,6 +331,12 @@ public class PlayerDisguiseManager extends MiniPlugin implements IPacketHandler } } + public String getRealName(Player caller) + { + CoreClient coreClient = _clients.Get(caller); + return coreClient == null ? caller.getName() : coreClient.getName(); + } + public void undisguise(Player caller) { if (!isDisguised(caller)) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseNotification.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseNotification.java new file mode 100644 index 000000000..e63c0ff87 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/playerdisguise/PlayerDisguiseNotification.java @@ -0,0 +1,57 @@ +package mineplex.core.disguise.playerdisguise; + +import java.util.UUID; + +import mineplex.serverdata.commands.ServerCommand; + +public class PlayerDisguiseNotification extends ServerCommand +{ + private String _realPlayerName; + private UUID _playerUUID; + private boolean _disguising; + private String _disguisedName; + private String _disguisedSkin; + + public PlayerDisguiseNotification(String realPlayerName, UUID playerUUID, String disguisedName, String disguisedSkin) + { + _realPlayerName = realPlayerName; + _playerUUID = playerUUID; + _disguising = true; + _disguisedName = disguisedName; + _disguisedSkin = disguisedSkin; + } + + public PlayerDisguiseNotification(String realPlayerName, UUID playerUUID, String disguisedName) + { + _realPlayerName = realPlayerName; + _playerUUID = playerUUID; + _disguising = false; + _disguisedName = disguisedName; + _disguisedSkin = null; + } + + public String getRealPlayerName() + { + return _realPlayerName; + } + + public UUID getPlayerUUID() + { + return _playerUUID; + } + + public boolean isDisguising() + { + return _disguising; + } + + public String getDisguisedName() + { + return _disguisedName; + } + + public String getDisguisedSkin() + { + return _disguisedSkin; + } +} From 911d5d20d23f847aa050fab855405a46d620a5b0 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Fri, 31 Mar 2017 01:07:00 -0300 Subject: [PATCH 114/133] Reverted rename --- .../fountain/GemFountainSalesPackage.java | 6 +- .../mineplex/core/gadget/gadgets/Ammo.java | 10 ++- .../arrowtrail/freedom/ArrowTrailFreedom.java | 2 +- .../arrowtrail/titan/ArrowTrailTitan.java | 4 +- .../gadgets/death/titan/DeathTitan.java | 4 +- .../doublejump/titan/DoubleJumpTitan.java | 4 +- .../gamemodifiers/kits/KitGameModifier.java | 2 +- .../GameModifierMineStrikeSkin.java | 2 +- .../core/gadget/gadgets/item/ItemBatGun.java | 25 ++++---- .../core/gadget/gadgets/item/ItemBow.java | 4 +- .../core/gadget/gadgets/item/ItemCoal.java | 47 +++++++------- .../gadget/gadgets/item/ItemCoinBomb.java | 2 +- .../gadget/gadgets/item/ItemDuelingSword.java | 4 +- .../gadget/gadgets/item/ItemFleshHook.java | 4 +- .../gadget/gadgets/item/ItemFreezeCannon.java | 8 +-- .../gadget/gadgets/item/ItemLovePotion.java | 14 ++--- .../gadgets/item/ItemMelonLauncher.java | 2 +- .../gadget/gadgets/item/ItemPaintbrush.java | 8 +-- .../gadget/gadgets/item/ItemSnowball.java | 2 +- .../core/gadget/gadgets/item/ItemTNT.java | 2 +- .../core/gadget/gadgets/morph/BlockForm.java | 12 ++-- .../core/gadget/gadgets/morph/MorphBat.java | 6 +- .../core/gadget/gadgets/morph/MorphBlaze.java | 8 +-- .../core/gadget/gadgets/morph/MorphBunny.java | 10 +-- .../gadget/gadgets/morph/MorphChicken.java | 4 +- .../gadgets/morph/MorphChristmasKing.java | 8 +-- .../core/gadget/gadgets/morph/MorphCow.java | 4 +- .../gadget/gadgets/morph/MorphCreeper.java | 16 ++--- .../gadget/gadgets/morph/MorphDinnerbone.java | 8 ++- .../gadget/gadgets/morph/MorphEnderman.java | 4 +- .../gadget/gadgets/morph/MorphGoldPot.java | 6 +- .../gadget/gadgets/morph/MorphGrimReaper.java | 4 +- .../gadget/gadgets/morph/MorphLoveDoctor.java | 4 +- .../gadget/gadgets/morph/MorphMetalMan.java | 4 +- .../core/gadget/gadgets/morph/MorphPig.java | 10 +-- .../gadgets/morph/MorphPumpkinKing.java | 12 ++-- .../core/gadget/gadgets/morph/MorphSanta.java | 12 ++-- .../core/gadget/gadgets/morph/MorphSlime.java | 4 +- .../gadget/gadgets/morph/MorphSnowman.java | 6 +- .../core/gadget/gadgets/morph/MorphSquid.java | 8 +-- .../core/gadget/gadgets/morph/MorphStray.java | 6 +- .../core/gadget/gadgets/morph/MorphTitan.java | 18 +++--- .../gadget/gadgets/morph/MorphTurkey.java | 4 +- .../gadget/gadgets/morph/MorphUncleSam.java | 4 +- .../gadget/gadgets/morph/MorphVillager.java | 14 ++--- .../core/gadget/gadgets/morph/MorphWitch.java | 10 +-- .../gadget/gadgets/morph/MorphWither.java | 14 ++--- .../gadget/gadgets/outfit/OutfitTeam.java | 6 +- .../outfit/freezesuit/OutfitFreezeSuit.java | 10 +-- .../particle/ParticleChristmasTree.java | 2 +- .../gadgets/particle/ParticleCoalFumes.java | 2 +- .../gadgets/particle/ParticleFireRings.java | 2 +- .../gadgets/particle/ParticleKronos.java | 6 +- .../gadgets/particle/ParticleLegend.java | 4 +- .../gadgets/particle/ParticleWingsAngel.java | 2 +- .../gadgets/particle/ParticleWingsDemons.java | 2 +- .../particle/ParticleWingsInfernal.java | 2 +- .../gadgets/particle/ParticleWingsLove.java | 2 +- .../gadgets/particle/ParticleWingsPixie.java | 2 +- .../gadgets/particle/ParticleYinYang.java | 2 +- .../particle/candycane/ParticleCandyCane.java | 2 +- .../particle/cupidslove/ParticleHeart.java | 2 +- .../particle/emerald/ParticleEmerald.java | 2 +- .../particle/freedom/ParticleFreedom.java | 2 +- .../particle/frostlord/ParticleFrostLord.java | 2 +- .../particle/howlingwinds/ParticleRain.java | 2 +- .../gadgets/particle/music/ParticleMusic.java | 4 +- .../particle/party/ParticlePartyTime.java | 4 +- .../gadgets/particle/shadow/ParticleFoot.java | 4 +- .../gadgets/particle/titan/ParticleTitan.java | 6 +- .../particle/vampire/ParticleBlood.java | 2 +- .../particle/wisdom/ParticleEnchant.java | 2 +- .../gadget/gadgets/taunts/EternalTaunt.java | 8 +-- .../gadget/gadgets/taunts/RainbowTaunt.java | 2 +- .../wineffect/WinEffectBabyChicken.java | 2 +- .../gadgets/wineffect/WinEffectFireworks.java | 2 +- .../gadgets/wineffect/WinEffectFlames.java | 2 +- .../gadgets/wineffect/WinEffectHalloween.java | 4 +- .../wineffect/WinEffectLightningStrike.java | 2 +- .../WinEffectLoveIsABattlefield.java | 4 +- .../gadgets/wineffect/WinEffectPodium.java | 4 +- .../WinEffectRiseOfTheElderGuardian.java | 10 +-- .../wineffect/WinEffectSnowTrails.java | 2 +- .../wineffect/WinEffectWinterWarfare.java | 2 +- .../core/gadget/types/ArrowEffectGadget.java | 4 +- .../core/gadget/types/BalloonGadget.java | 4 +- .../core/gadget/types/DeathEffectGadget.java | 2 +- .../gadget/types/DoubleJumpEffectGadget.java | 2 +- .../mineplex/core/gadget/types/Gadget.java | 50 ++++++++------- .../mineplex/core/gadget/types/HatGadget.java | 4 +- .../core/gadget/types/ItemGadget.java | 34 ++++------ .../core/gadget/types/MorphGadget.java | 2 +- .../core/gadget/types/MusicGadget.java | 2 +- .../core/gadget/types/OutfitGadget.java | 4 +- .../core/gadget/types/ParticleGadget.java | 4 +- .../core/gadget/types/WinEffectGadget.java | 8 +-- .../src/mineplex/core/mount/DragonMount.java | 2 +- .../src/mineplex/core/mount/HorseMount.java | 4 +- .../mineplex/core/mount/types/MountCart.java | 2 +- .../mineplex/core/mount/types/MountSlime.java | 2 +- .../core/particleeffects/BlowAKissEffect.java | 2 +- .../particleeffects/LoveDoctorEffect.java | 4 +- .../core/particleeffects/MetalManEffect.java | 4 +- .../core/pet/sales/PetExtraSalesPackage.java | 6 +- .../core/pet/sales/PetSalesPackage.java | 4 +- .../core/shop/item/SalesPackageBase.java | 63 +++++++++---------- .../mineplex/core/treasure/ChestPackage.java | 4 +- .../mineplex/core/treasure/TreasureKey.java | 4 +- .../goals/classes/SelectBullsChargeGoal.java | 2 +- .../src/mineplex/hub/modules/TextManager.java | 14 ++--- .../shop/salespackage/ItemSalesPackage.java | 6 +- .../shop/salespackage/SkillSalesPackage.java | 6 +- .../game/core/condition/ConditionFactory.java | 2 +- .../arcade/game/games/event/EventGame.java | 2 +- .../games/evolution/mobs/KitSkeleton.java | 2 +- .../game/games/evolution/mobs/KitSnowman.java | 2 +- .../game/arcade/kit/perks/PerkDestructor.java | 2 +- .../game/arcade/kit/perks/PerkSquidRifle.java | 2 +- .../arcade/kit/perks/PerkSquidShotgun.java | 2 +- .../arcade/kit/perks/PerkSquidSniper.java | 2 +- .../nautilus/game/arcade/shop/KitPackage.java | 4 +- 121 files changed, 380 insertions(+), 387 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/brawl/fountain/GemFountainSalesPackage.java b/Plugins/Mineplex.Core/src/mineplex/core/brawl/fountain/GemFountainSalesPackage.java index e34c8bac1..d0ba3e882 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/brawl/fountain/GemFountainSalesPackage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/brawl/fountain/GemFountainSalesPackage.java @@ -13,8 +13,8 @@ public class GemFountainSalesPackage extends SalesPackageBase { super("Add " + gems + " Gems", Material.EMERALD, (byte) 0, new String[] {}, gems, 1); - _currencyCostMap.put(GlobalCurrency.GEM, gems); - _knownPackage = false; - _oneTimePurchaseOnly = false; + CurrencyCostMap.put(GlobalCurrency.GEM, gems); + KnownPackage = false; + OneTimePurchaseOnly = false; } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/Ammo.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/Ammo.java index 366f34d4d..4f6f3b421 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/Ammo.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/Ammo.java @@ -1,8 +1,7 @@ package mineplex.core.gadget.gadgets; -import org.bukkit.Material; - import mineplex.core.shop.item.SalesPackageBase; +import org.bukkit.Material; public class Ammo extends SalesPackageBase { @@ -10,9 +9,8 @@ public class Ammo extends SalesPackageBase { super(name, material, displayData, description, coins, quantity); - _displayName = displayName; - _knownPackage = false; - _oneTimePurchaseOnly = false; - _free = coins == -5; + DisplayName = displayName; + KnownPackage = false; + OneTimePurchaseOnly = false; } } 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/freedom/ArrowTrailFreedom.java index 9641ef4e2..8921b26cc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/freedom/ArrowTrailFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/freedom/ArrowTrailFreedom.java @@ -58,7 +58,7 @@ public class ArrowTrailFreedom extends ArrowEffectGadget @Override public void doHitEffect(Arrow arrow) { - BabyFireworkEffect babyFireworkEffect = new BabyFireworkEffect(arrow.getLocation(), _manager.getPlugin(), _color); + BabyFireworkEffect babyFireworkEffect = new BabyFireworkEffect(arrow.getLocation(), Manager.getPlugin(), _color); babyFireworkEffect.start(); } 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/titan/ArrowTrailTitan.java index ed3c9b54f..956055929 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/titan/ArrowTrailTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/arrowtrail/titan/ArrowTrailTitan.java @@ -43,9 +43,9 @@ public class ArrowTrailTitan extends ArrowEffectGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) + if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) { - _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } } 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/titan/DeathTitan.java index f116b5d65..00b64eace 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/titan/DeathTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/death/titan/DeathTitan.java @@ -32,9 +32,9 @@ public class DeathTitan extends DeathEffectGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) + if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) { - _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } 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/titan/DoubleJumpTitan.java index f24d33720..336aaa5bc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/titan/DoubleJumpTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/doublejump/titan/DoubleJumpTitan.java @@ -37,9 +37,9 @@ public class DoubleJumpTitan extends DoubleJumpEffectGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) + if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) { - _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/kits/KitGameModifier.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/kits/KitGameModifier.java index 28bf3f45d..d06bffbe8 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/kits/KitGameModifier.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/kits/KitGameModifier.java @@ -39,7 +39,7 @@ public class KitGameModifier extends GameModifierGadget @Override public void enableCustom(Player player, boolean message) { - _manager.getGameModifiers(getGameType()).stream().filter(getKitFilter(_kitType)).forEach(g -> g.disable(player)); + Manager.getGameModifiers(getGameType()).stream().filter(getKitFilter(_kitType)).forEach(g -> g.disable(player)); super.enableCustom(player, message); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/minestrike/GameModifierMineStrikeSkin.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/minestrike/GameModifierMineStrikeSkin.java index fb83978b9..df1cf150f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/minestrike/GameModifierMineStrikeSkin.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/gamemodifiers/minestrike/GameModifierMineStrikeSkin.java @@ -86,7 +86,7 @@ public class GameModifierMineStrikeSkin extends GameModifierGadget @Override public void enableCustom(Player player, boolean message) { - _manager.getGameModifiers(getGameType()).stream().filter(getWeaponFilter(_weapon)).forEach(g -> g.disable(player)); + Manager.getGameModifiers(getGameType()).stream().filter(getWeaponFilter(_weapon)).forEach(g -> g.disable(player)); super.enableCustom(player, message); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBatGun.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBatGun.java index 8c90a821a..67aa5cc1e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBatGun.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBatGun.java @@ -1,16 +1,5 @@ package mineplex.core.gadget.gadgets.item; -import java.util.ArrayList; -import java.util.HashMap; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.entity.Bat; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.util.Vector; - import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.LineFormat; @@ -31,6 +20,16 @@ import mineplex.core.preferences.Preference; import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Bat; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.util.Vector; + +import java.util.ArrayList; +import java.util.HashMap; public class ItemBatGun extends ItemGadget { @@ -103,7 +102,7 @@ public class ItemBatGun extends ItemGadget if (other.equals(cur)) continue; - if (!_manager.getPreferencesManager().get(other).isActive(Preference.HUB_GAMES) || !_manager.getPreferencesManager().get(other).isActive(Preference.SHOW_PLAYERS)) + if (!Manager.getPreferencesManager().get(other).isActive(Preference.HUB_GAMES) || !Manager.getPreferencesManager().get(other).isActive(Preference.SHOW_PLAYERS)) continue; if (!Recharge.Instance.usable(other, "Hit by Bat")) @@ -111,7 +110,7 @@ public class ItemBatGun extends ItemGadget if (UtilEnt.hitBox(bat.getLocation(), other, 2, null)) { - if (_manager.collideEvent(cur, this, other)) + if (Manager.collideEvent(cur, this, other)) continue; //Damage Event diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBow.java index c909c74fb..16e78ec14 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBow.java @@ -92,7 +92,7 @@ public class ItemBow extends ItemGadget UtilText.splitLineToArray(C.cGray + "This symbol of love will live on with you forever! Mainly because we couldn't attach the cupid wings to it. I guess duct tape can't fix everything!", LineFormat.LORE), -6, Material.BOW, (byte) 0, 1000, new Ammo("Cupid Arrow", "Cupid's Arrows", Material.ARROW, (byte) 0, UtilText.splitLineToArray(C.cGray + "Use these arrows to shoot love into people's hearts!", LineFormat.LORE), -6, 15)); - _manager.getPacketManager().addPacketHandler(_packetHandler, PacketPlayOutSpawnEntity.class); + Manager.getPacketManager().addPacketHandler(_packetHandler, PacketPlayOutSpawnEntity.class); } @Override @@ -134,7 +134,7 @@ public class ItemBow extends ItemGadget if (!_arrows.contains(arrow)) return; - Bukkit.getScheduler().runTaskLater(_manager.getPlugin(), new Runnable() + Bukkit.getScheduler().runTaskLater(Manager.getPlugin(), new Runnable() { @Override public void run() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoal.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoal.java index 8b1b2cf60..118f1b8b9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoal.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoal.java @@ -3,6 +3,7 @@ package mineplex.core.gadget.gadgets.item; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.Sound; +import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; @@ -82,16 +83,16 @@ public class ItemCoal extends ItemGadget int goal = -1; //Coal Hat - if (!_manager.getHatGadget(HatType.COAL).ownsGadget(player)) + if (!Manager.getHatGadget(HatType.COAL).ownsGadget(player)) { goal = _hat; - if(_manager.getInventoryManager().Get(player).getItemCount(getName()) >= _hat) + if(Manager.getInventoryManager().Get(player).getItemCount(getName()) >= _hat) { Recharge.Instance.recharge(player, getName()); Recharge.Instance.use(player, getName(), 30000, true, true); - _manager.getInventoryManager().addItemToInventory(new Callback() + Manager.getInventoryManager().addItemToInventory(new Callback() { @Override public void run(Boolean data) @@ -103,10 +104,10 @@ public class ItemCoal extends ItemGadget UtilParticle.PlayParticleToAll(ParticleType.LARGE_SMOKE, player.getLocation(), 0.5f, 0.0f, 0.5f, 0, 100, ViewDist.LONG); player.getWorld().playSound(player.getLocation(), Sound.WITHER_DEATH, 0.8f, 0); - _manager.getInventoryManager().addItemToInventory(player, getName(), -_hat); - player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + Manager.getInventoryManager().addItemToInventory(player, getName(), -_hat); + player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); - _manager.getDonationManager().Get(player).addOwnedUnknownSalesPackage("Lump of Coal Hat"); + Manager.getDonationManager().Get(player).addOwnedUnknownSalesPackage("Lump of Coal Hat"); UtilServer.CallEvent(new PlayerUseCoalEvent(player, PlayerUseCoalEvent.CoalReward.HAT, _particle)); } @@ -121,19 +122,19 @@ public class ItemCoal extends ItemGadget } //Coal Apparition - if (!_manager.getPetManager().Get(player).getPets().containsKey(PetType.PIG_ZOMBIE)) + if (!Manager.getPetManager().Get(player).getPets().containsKey(PetType.PIG_ZOMBIE)) { goal = _pet; - if(_manager.getInventoryManager().Get(player).getItemCount(getName()) >= _pet) + if(Manager.getInventoryManager().Get(player).getItemCount(getName()) >= _pet) { Recharge.Instance.recharge(player, getName()); Recharge.Instance.use(player, getName(), 30000, true, true); PetReward reward = new PetReward( - _manager.getPetManager(), - _manager.getInventoryManager(), - _manager.getDonationManager(), + Manager.getPetManager(), + Manager.getInventoryManager(), + Manager.getDonationManager(), "Coal Apparition", "Coal Apparition", PetType.PIG_ZOMBIE, RewardRarity.OTHER, 0, 0); if (reward.canGiveReward(player)) @@ -147,10 +148,10 @@ public class ItemCoal extends ItemGadget UtilParticle.PlayParticleToAll(ParticleType.LARGE_SMOKE, player.getLocation(), 1f, 0.0f, 1f, 0, 250, ViewDist.LONG); player.getWorld().playSound(player.getLocation(), Sound.WITHER_DEATH, 0.8f, 0); - _manager.getInventoryManager().addItemToInventory(player, getName(), -_pet); - player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + Manager.getInventoryManager().addItemToInventory(player, getName(), -_pet); + player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); - _manager.getDonationManager().Get(player).addOwnedUnknownSalesPackage("Coal Apparition"); + Manager.getDonationManager().Get(player).addOwnedUnknownSalesPackage("Coal Apparition"); UtilServer.CallEvent(new PlayerUseCoalEvent(player, PlayerUseCoalEvent.CoalReward.PET, _particle)); } @@ -161,16 +162,16 @@ public class ItemCoal extends ItemGadget } //Coal Particle - if (!_manager.getGadget(ParticleCoalFumes.class).ownsGadget(player)) + if (!Manager.getGadget(ParticleCoalFumes.class).ownsGadget(player)) { goal = _particle; - if(_manager.getInventoryManager().Get(player).getItemCount(getName()) >= _particle) + if(Manager.getInventoryManager().Get(player).getItemCount(getName()) >= _particle) { Recharge.Instance.recharge(player, getName()); Recharge.Instance.use(player, getName(), 30000, true, true); - _manager.getInventoryManager().addItemToInventory(new Callback() + Manager.getInventoryManager().addItemToInventory(new Callback() { @Override public void run(Boolean data) @@ -182,10 +183,10 @@ public class ItemCoal extends ItemGadget UtilParticle.PlayParticleToAll(ParticleType.LARGE_SMOKE, player.getLocation(), 1.5f, 0.0f, 1.5f, 0, 500, ViewDist.LONG); player.getWorld().playSound(player.getLocation(), Sound.WITHER_DEATH, 0.8f, 0); - _manager.getInventoryManager().addItemToInventory(player, getName(), -_particle); - player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + Manager.getInventoryManager().addItemToInventory(player, getName(), -_particle); + player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); - _manager.getDonationManager().Get(player).addOwnedUnknownSalesPackage("Coal Fumes"); + Manager.getDonationManager().Get(player).addOwnedUnknownSalesPackage("Coal Fumes"); UtilServer.CallEvent(new PlayerUseCoalEvent(player, PlayerUseCoalEvent.CoalReward.PARTICLE, _particle)); } @@ -199,7 +200,7 @@ public class ItemCoal extends ItemGadget } } - goal -= _manager.getInventoryManager().Get(player).getItemCount(getName()); + goal -= Manager.getInventoryManager().Get(player).getItemCount(getName()); if (goal > 0 && Math.random() > 0.95) { @@ -238,7 +239,7 @@ public class ItemCoal extends ItemGadget event.setCancelled(true); //Stock - if (_manager.getInventoryManager().Get(player).getItemCount(getName()) <= 0) + if (Manager.getInventoryManager().Get(player).getItemCount(getName()) <= 0) { UtilPlayer.message(player, F.main("Gadget", "You do not have any " + getName() + " left.")); @@ -256,7 +257,7 @@ public class ItemCoal extends ItemGadget return; } - player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); ActivateCustom(event.getPlayer()); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoinBomb.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoinBomb.java index 6d63dacd4..7334375b3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoinBomb.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemCoinBomb.java @@ -110,7 +110,7 @@ public class ItemCoinBomb extends ItemGadget event.setCancelled(true); event.getItem().remove(); - _manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, event.getPlayer(), getName() + " Pickup", 4); + Manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, event.getPlayer(), getName() + " Pickup", 4); event.getPlayer().getWorld().playSound(event.getPlayer().getLocation(), Sound.ORB_PICKUP, 1f, 2f); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemDuelingSword.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemDuelingSword.java index 62a2fa0a1..09d4499ae 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemDuelingSword.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemDuelingSword.java @@ -28,11 +28,11 @@ public class ItemDuelingSword extends ItemGadget @Override public void ApplyItem(Player player, boolean inform) { - _manager.removeGadgetType(player, GadgetType.ITEM); + Manager.removeGadgetType(player, GadgetType.ITEM); _active.add(player); - player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(Material.GOLD_SWORD, (byte)0, 1, "PvP Sword")); + player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(Material.GOLD_SWORD, (byte)0, 1, "PvP Sword")); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFleshHook.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFleshHook.java index ee030a9f6..6c454ebff 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFleshHook.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFleshHook.java @@ -44,7 +44,7 @@ public class ItemFleshHook extends ItemGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 1.6, false, 0, 0.2, 10, false); - _manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, + Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, Sound.FIRE_IGNITE, 1.4f, 0.8f, ParticleType.CRIT, null, 0, UpdateType.TICK, 0.5f); //Inform @@ -67,7 +67,7 @@ public class ItemFleshHook extends ItemGadget implements IThrown if (target == null) return; - if (_manager.collideEvent(player, this, target)) + if (Manager.collideEvent(player, this, target)) return; if (target instanceof ArmorStand) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFreezeCannon.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFreezeCannon.java index a08e19136..ce3e899d1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFreezeCannon.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemFreezeCannon.java @@ -61,7 +61,7 @@ public class ItemFreezeCannon extends ItemGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 1, false, 0, 0.2, 10, false); - _manager.getProjectileManager().AddThrow(item, player, this, 5000, true, true, true, true, + Manager.getProjectileManager().AddThrow(item, player, this, 5000, true, true, true, true, null, 1f, 1f, null, null, 0, UpdateType.TICK, 0.5f); //Inform @@ -81,11 +81,11 @@ public class ItemFreezeCannon extends ItemGadget implements IThrown int ticks = 4 * 20; if(isClear(p.getLocation())) { - _manager.getBlockRestore().add(p.getLocation().getBlock(), Material.STAINED_GLASS.getId(), (byte)5, 0, (byte)0, ticks*50); - _manager.getBlockRestore().add(p.getLocation().getBlock().getRelative(BlockFace.UP), Material.STAINED_GLASS.getId(), (byte)5, 0, (byte)0, ticks*50); + Manager.getBlockRestore().add(p.getLocation().getBlock(), Material.STAINED_GLASS.getId(), (byte)5, 0, (byte)0, ticks*50); + Manager.getBlockRestore().add(p.getLocation().getBlock().getRelative(BlockFace.UP), Material.STAINED_GLASS.getId(), (byte)5, 0, (byte)0, ticks*50); if(p.getLocation().getBlock().getRelative(BlockFace.DOWN).getType() == Material.AIR) { - _manager.getBlockRestore().add(p.getLocation().getBlock().getRelative(BlockFace.DOWN), Material.STAINED_GLASS.getId(), (byte)5, 0, (byte)0, ticks*50); + Manager.getBlockRestore().add(p.getLocation().getBlock().getRelative(BlockFace.DOWN), Material.STAINED_GLASS.getId(), (byte)5, 0, (byte)0, ticks*50); } p.setWalkSpeed(0); _playerMap.put(p, System.currentTimeMillis() + (ticks * 50)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemLovePotion.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemLovePotion.java index 22eda4fd1..f2246773c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemLovePotion.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemLovePotion.java @@ -72,16 +72,16 @@ public class ItemLovePotion extends ItemGadget @Override public void ApplyItem(Player player, boolean inform) { - _manager.removeGadgetType(player, GadgetType.ITEM); + Manager.removeGadgetType(player, GadgetType.ITEM); _active.add(player); List itemLore = new ArrayList(); itemLore.addAll(Arrays.asList(getDescription())); itemLore.add(C.cBlack); - itemLore.add(C.cWhite + "Your Ammo : " + _manager.getInventoryManager().Get(player).getItemCount(getName())); + itemLore.add(C.cWhite + "Your Ammo : " + Manager.getInventoryManager().Get(player).getItemCount(getName())); - player.getInventory().setItem(_manager.getActiveItemSlot(), new ItemBuilder(getDisplayMaterial(), getDisplayData()).setTitle(F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName())).setHideInfo(true).build()); + player.getInventory().setItem(Manager.getActiveItemSlot(), new ItemBuilder(getDisplayMaterial(), getDisplayData()).setTitle(F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName())).setHideInfo(true).build()); if (inform) UtilPlayer.message(player, F.main("Gadget", "You equipped " + F.elem(getName()) + ".")); @@ -130,12 +130,12 @@ public class ItemLovePotion extends ItemGadget Recharge.Instance.use(player, getName(), getName(), _recharge, _recharge > 1000, true, false, true, "Cosmetics"); // Cooldown - _manager.getInventoryManager().addItemToInventory(player, getName(), -1); + Manager.getInventoryManager().addItemToInventory(player, getName(), -1); ItemGadgetUseEvent itemGadgetUseEvent = new ItemGadgetUseEvent(player, this, 1); UtilServer.CallEvent(itemGadgetUseEvent); - player.getInventory().setItem(_manager.getActiveItemSlot(), new ItemBuilder(getDisplayMaterial(), getDisplayData()).setTitle(F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName())).setHideInfo(true).build()); + player.getInventory().setItem(Manager.getActiveItemSlot(), new ItemBuilder(getDisplayMaterial(), getDisplayData()).setTitle(F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName())).setHideInfo(true).build()); } @EventHandler @@ -181,9 +181,9 @@ public class ItemLovePotion extends ItemGadget String message = UtilMath.randomElement(DRINK_MESSAGES); UtilPlayer.message(player, F.main("Potion", message)); - _manager.getInventoryManager().addItemToInventory(player, getName(), -1); + Manager.getInventoryManager().addItemToInventory(player, getName(), -1); - player.getInventory().setItem(_manager.getActiveItemSlot(), new ItemBuilder(getDisplayMaterial(), getDisplayData()).setTitle(F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName())).setHideInfo(true).build()); + player.getInventory().setItem(Manager.getActiveItemSlot(), new ItemBuilder(getDisplayMaterial(), getDisplayData()).setTitle(F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName())).setHideInfo(true).build()); ItemGadgetUseEvent itemGadgetUseEvent = new ItemGadgetUseEvent(player, this, 1); UtilServer.CallEvent(itemGadgetUseEvent); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemMelonLauncher.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemMelonLauncher.java index b85871689..264118b41 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemMelonLauncher.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemMelonLauncher.java @@ -59,7 +59,7 @@ public class ItemMelonLauncher extends ItemGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 1, false, 0, 0.2, 10, false); - _manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, + Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, null, 1f, 1f, null, null, 0, UpdateType.TICK, 0.5f); //Inform diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemPaintbrush.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemPaintbrush.java index 4ff638648..98171d0c3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemPaintbrush.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemPaintbrush.java @@ -52,14 +52,14 @@ public class ItemPaintbrush extends ItemGadget @Override public void ApplyItem(Player player, boolean inform) { - _manager.removeGadgetType(player, GadgetType.ITEM); + Manager.removeGadgetType(player, GadgetType.ITEM); _active.add(player); List itemLore = new ArrayList(); itemLore.addAll(Arrays.asList(getDescription())); - player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, getName())); + player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, getName())); if (inform) UtilPlayer.message(player, F.main("Gadget", "You equipped " + F.elem(getName()) + ".")); @@ -161,7 +161,7 @@ public class ItemPaintbrush extends ItemGadget continue; //Color - _manager.getBlockRestore().add(block, 35, _brushColor.get(player.getName()), 30000); + Manager.getBlockRestore().add(block, 35, _brushColor.get(player.getName()), 30000); //Join Dots if (_brushPrevious.containsKey(player.getName())) @@ -175,7 +175,7 @@ public class ItemPaintbrush extends ItemGadget if (fixBlock.getType() != Material.WOOL) continue; - _manager.getBlockRestore().add(fixBlock, 35, _brushColor.get(player.getName()), 30000); + Manager.getBlockRestore().add(fixBlock, 35, _brushColor.get(player.getName()), 30000); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemSnowball.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemSnowball.java index 7d6677593..ebca74d1f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemSnowball.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemSnowball.java @@ -55,7 +55,7 @@ public class ItemSnowball extends ItemGadget if(!_snowballs.containsKey(ball)) return; - if(_manager.collideEvent(_snowballs.remove(ball), this, event.getEntity())) return; + if(Manager.collideEvent(_snowballs.remove(ball), this, event.getEntity())) return; if (event.getEntity() instanceof ArmorStand) return; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemTNT.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemTNT.java index 6cfdf587d..eecba68e1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemTNT.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemTNT.java @@ -65,7 +65,7 @@ public class ItemTNT extends ItemGadget HashMap players = UtilPlayer.getInRadius(event.getLocation(), 8); for (Player player : players.keySet()) { - if (_manager.collideEvent(killer, this, player)) + if (Manager.collideEvent(killer, this, player)) continue; double mult = players.get(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/BlockForm.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/BlockForm.java index adc6cea4c..2b1c13ea3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/BlockForm.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/BlockForm.java @@ -69,7 +69,7 @@ public class BlockForm _hiddenDisguise = new DisguiseSlime(player); _hiddenDisguise.setInvisible(true); - _host._manager.getDisguiseManager().disguise(_hiddenDisguise); + _host.Manager.getDisguiseManager().disguise(_hiddenDisguise); this._fallingBlock = _loc.getWorld().spawn(_loc, Slime.class); this._fallingBlock.setSize(0); @@ -92,7 +92,7 @@ public class BlockForm _disguiseBlockBase = new DisguiseSlime(_fallingBlockBase); _disguiseBlockBase.SetSize(0); _disguiseBlockBase.setInvisible(true); - _host._manager.getDisguiseManager().disguise(_disguiseBlockBase); + _host.Manager.getDisguiseManager().disguise(_disguiseBlockBase); reset(); } @@ -103,7 +103,7 @@ public class BlockForm _disguiseBlock = new DisguiseBlock(_fallingBlock, _blockMat.getId(), _blockData); _disguiseBlock.setHideIfNotDisguised(true); - _host._manager.getDisguiseManager().disguise(_disguiseBlock); + _host.Manager.getDisguiseManager().disguise(_disguiseBlock); _fallingBlockBase.setPassenger(_fallingBlock); } @@ -112,7 +112,7 @@ public class BlockForm { if (_disguiseBlock != null) { - _host._manager.getDisguiseManager().undisguise(_disguiseBlock); + _host.Manager.getDisguiseManager().undisguise(_disguiseBlock); _disguiseBlock = null; _fallingBlockBase.setPassenger(null); } @@ -142,8 +142,8 @@ public class BlockForm removeSolidBlock(); removeFallingBlock(); - _host._manager.getDisguiseManager().undisguise(_hiddenDisguise); - _host._manager.getDisguiseManager().undisguise(_disguiseBlockBase); + _host.Manager.getDisguiseManager().undisguise(_hiddenDisguise); + _host.Manager.getDisguiseManager().undisguise(_disguiseBlockBase); _fallingBlockBase.remove(); _fallingBlockBase = null; _fallingBlock.remove(); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBat.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBat.java index ada824454..4225b2c6b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBat.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBat.java @@ -60,14 +60,14 @@ public class MorphBat extends MorphGadget implements IThrown this.applyArmor(player, message); DisguiseBat disguise = new DisguiseBat(player); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); player.setAllowFlight(false); player.setFlying(false); @@ -113,7 +113,7 @@ public class MorphBat extends MorphGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 0.01, true, -0.3, 0, 10, false); - _manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, + Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, null, 1f, 1f, null, null, 0, UpdateType.TICK, 0.5f); //Inform diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBlaze.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBlaze.java index 592ad0b5f..abd40e459 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBlaze.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBlaze.java @@ -43,14 +43,14 @@ public class MorphBlaze extends MorphGadget this.applyArmor(player, message); DisguiseBlaze disguise = new DisguiseBlaze(player); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler @@ -81,9 +81,9 @@ public class MorphBlaze extends MorphGadget @EventHandler public void HeroOwner(PlayerJoinEvent event) { - if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.HERO)) + if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.HERO)) { - _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBunny.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBunny.java index 91fb1f916..ef51b27f4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBunny.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphBunny.java @@ -71,7 +71,7 @@ public class MorphBunny extends MorphGadget this.applyArmor(player, message); DisguiseRabbit disguise = new DisguiseRabbit(player); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 999999999, 1)); player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 999999999, 1)); @@ -82,7 +82,7 @@ public class MorphBunny extends MorphGadget { _jumpCharge.remove(player); this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); player.removePotionEffect(PotionEffectType.SPEED); player.removePotionEffect(PotionEffectType.JUMP); @@ -150,7 +150,7 @@ public class MorphBunny extends MorphGadget if (!UtilEvent.isAction(event, ActionType.L)) return; - if (_manager.getDonationManager().Get(player).getBalance(GlobalCurrency.TREASURE_SHARD) < 500) + if (Manager.getDonationManager().Get(player).getBalance(GlobalCurrency.TREASURE_SHARD) < 500) { UtilPlayer.message(player, F.main("Gadget", "You do not have enough Shards.")); return; @@ -170,7 +170,7 @@ public class MorphBunny extends MorphGadget UtilAction.velocity(egg, player.getLocation().getDirection(), 0.2, false, 0, 0.2, 1, false); - _manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, player, this.getName() + " Egg Hide", -500); + Manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, player, this.getName() + " Egg Hide", -500); egg.setPickupDelay(40); @@ -197,7 +197,7 @@ public class MorphBunny extends MorphGadget event.setCancelled(true); event.getItem().remove(); - _manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, event.getPlayer(), getName() + " Egg Pickup", 450); + Manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, event.getPlayer(), getName() + " Egg Pickup", 450); event.getPlayer().getWorld().playSound(event.getPlayer().getLocation(), Sound.ORB_PICKUP, 1.5f, 0.75f); event.getPlayer().getWorld().playSound(event.getPlayer().getLocation(), Sound.ORB_PICKUP, 1.5f, 1.25f); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChicken.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChicken.java index 56da39934..ce37ddde3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChicken.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChicken.java @@ -49,14 +49,14 @@ public class MorphChicken extends MorphGadget this.applyArmor(player, message); DisguiseChicken disguise = new DisguiseChicken(player); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); player.setAllowFlight(false); player.setFlying(false); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChristmasKing.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChristmasKing.java index 398c547b6..24803972f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChristmasKing.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphChristmasKing.java @@ -66,7 +66,7 @@ public class MorphChristmasKing extends MorphGadget DisguiseSkeleton disguise = new DisguiseSkeleton(player); disguise.showArmor(); disguise.SetSkeletonType(SkeletonType.WITHER); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); player.getInventory().setHelmet(new ItemStack(Material.JACK_O_LANTERN)); @@ -78,7 +78,7 @@ public class MorphChristmasKing extends MorphGadget public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); player.getInventory().setHelmet(null); } @@ -119,7 +119,7 @@ public class MorphChristmasKing extends MorphGadget { for (Player player : getActive()) { - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { continue; } @@ -163,7 +163,7 @@ public class MorphChristmasKing extends MorphGadget if (!_snowball.containsKey(proj)) return; - if (_manager.collideEvent(_snowball.remove(proj), this, event.getEntity())) + if (Manager.collideEvent(_snowball.remove(proj), this, event.getEntity())) return; UtilAction.velocity(event.getEntity(), proj.getVelocity().multiply(0.15).add(new Vector(0, 0.15, 0))); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCow.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCow.java index cf7258be7..f8d334a12 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCow.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCow.java @@ -37,14 +37,14 @@ public class MorphCow extends MorphGadget this.applyArmor(player, message); DisguiseCow disguise = new DisguiseCow(player); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCreeper.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCreeper.java index 54396a316..bcce06361 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCreeper.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphCreeper.java @@ -51,14 +51,14 @@ public class MorphCreeper extends MorphGadget this.applyArmor(player, message); DisguiseCreeper disguise = new DisguiseCreeper(player); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler @@ -111,7 +111,7 @@ public class MorphCreeper extends MorphGadget if (other.equals(player)) continue; - if (_manager.collideEvent(player, this, other)) + if (Manager.collideEvent(player, this, other)) continue; double mult = players.get(other); @@ -127,7 +127,7 @@ public class MorphCreeper extends MorphGadget public DisguiseCreeper GetDisguise(Player player) { - DisguiseBase disguise = _manager.getDisguiseManager().getDisguise(player); + DisguiseBase disguise = Manager.getDisguiseManager().getDisguise(player); if (disguise == null) return null; @@ -152,7 +152,7 @@ public class MorphCreeper extends MorphGadget creeper.a(-1); - _manager.getDisguiseManager().updateDisguise(creeper); + Manager.getDisguiseManager().updateDisguise(creeper); } public void IncreaseSize(Player player) @@ -162,15 +162,15 @@ public class MorphCreeper extends MorphGadget creeper.a(1); - _manager.getDisguiseManager().updateDisguise(creeper); + Manager.getDisguiseManager().updateDisguise(creeper); } @EventHandler public void HeroOwner(PlayerJoinEvent event) { - if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.HERO)) + if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.HERO)) { - _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphDinnerbone.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphDinnerbone.java index 0f2907d90..ba67af21c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphDinnerbone.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphDinnerbone.java @@ -10,6 +10,7 @@ import java.util.UUID; import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.EntityArmorStand; +import net.minecraft.server.v1_8_R3.EntitySlime; import net.minecraft.server.v1_8_R3.MathHelper; import net.minecraft.server.v1_8_R3.PacketPlayOutAttachEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; @@ -32,6 +33,7 @@ import mineplex.core.Managers; import mineplex.core.account.CoreClientManager; import mineplex.core.common.DummyEntity; import mineplex.core.common.Rank; +import mineplex.core.common.skin.SkinData; import mineplex.core.common.util.C; import mineplex.core.common.util.LineFormat; import mineplex.core.common.util.UtilEnt; @@ -90,7 +92,7 @@ public class MorphDinnerbone extends MorphGadget implements IPacketHandler disguisePlayer.setSendSkinDataToSelf(false); disguisePlayer.setReplaceOriginalName(false, 10); disguisePlayer.showInTabList(true, 0); - UtilMorph.disguise(player, disguisePlayer, _manager); + UtilMorph.disguise(player, disguisePlayer, Manager); } @Override @@ -98,7 +100,7 @@ public class MorphDinnerbone extends MorphGadget implements IPacketHandler { removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @Override @@ -118,7 +120,7 @@ public class MorphDinnerbone extends MorphGadget implements IPacketHandler } Player owner = (Player) entity; - if (_manager.getActive(owner, GadgetType.MORPH) == this) + if (Manager.getActive(owner, GadgetType.MORPH) == this) { summonForEntity(packetInfo.getPlayer(), owner); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphEnderman.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphEnderman.java index 1ee120535..761003e4d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphEnderman.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphEnderman.java @@ -48,14 +48,14 @@ public class MorphEnderman extends MorphGadget this.applyArmor(player, message); DisguiseEnderman disguise = new DisguiseEnderman(player); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); player.setAllowFlight(false); player.setFlying(false); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGoldPot.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGoldPot.java index bf2ce7239..017c3642f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGoldPot.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGoldPot.java @@ -47,10 +47,10 @@ public class MorphGoldPot extends MorphGadget { applyArmor(player, message); - _helpers.put(player, new GoldPotHelper(player, _manager, this)); + _helpers.put(player, new GoldPotHelper(player, Manager, this)); DisguiseBlock disguiseBlock = new DisguiseBlock(player, Material.CAULDRON, (byte) 0); - UtilMorph.disguise(player, disguiseBlock, _manager); + UtilMorph.disguise(player, disguiseBlock, Manager); } @Override @@ -65,7 +65,7 @@ public class MorphGoldPot extends MorphGadget _helpers.remove(player); } - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGrimReaper.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGrimReaper.java index 5fbabe83e..44c761772 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGrimReaper.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphGrimReaper.java @@ -98,7 +98,7 @@ public class MorphGrimReaper extends MorphGadget skeleton.setChestplate(blackChest); skeleton.setLeggings(blackPants); skeleton.setBoots(blackBoots); - UtilMorph.disguise(player, skeleton, _manager.getDisguiseManager()); + UtilMorph.disguise(player, skeleton, Manager.getDisguiseManager()); } @Override @@ -110,7 +110,7 @@ public class MorphGrimReaper extends MorphGadget _flying.remove(player); _flyReady.remove(player); _soulManager.resetSouls(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); player.getInventory().setItem(2, new ItemStack(Material.AIR)); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphLoveDoctor.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphLoveDoctor.java index 0f277d2c5..1a96f75d1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphLoveDoctor.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphLoveDoctor.java @@ -47,7 +47,7 @@ public class MorphLoveDoctor extends MorphGadget DisguisePlayer disguisePlayer = new DisguisePlayer(player, gameProfile); disguisePlayer.showInTabList(true, 0); - UtilMorph.disguise(player, disguisePlayer, _manager); + UtilMorph.disguise(player, disguisePlayer, Manager); } @Override @@ -55,7 +55,7 @@ public class MorphLoveDoctor extends MorphGadget { removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphMetalMan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphMetalMan.java index 729f4e534..06838168e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphMetalMan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphMetalMan.java @@ -72,7 +72,7 @@ public class MorphMetalMan extends MorphGadget DisguisePlayer disguisePlayer = new DisguisePlayer(player, gameProfile); disguisePlayer.showInTabList(true, 0); - UtilMorph.disguise(player, disguisePlayer, _manager); + UtilMorph.disguise(player, disguisePlayer, Manager); player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, Integer.MAX_VALUE, 1, true, false)); } @@ -82,7 +82,7 @@ public class MorphMetalMan extends MorphGadget { removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); if (_playerColors.containsKey(player.getUniqueId())) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPig.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPig.java index 974e068cc..d45504531 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPig.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPig.java @@ -53,14 +53,14 @@ public class MorphPig extends MorphGadget this.applyArmor(player, message); DisguisePig disguise = new DisguisePig(player); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler @@ -84,9 +84,9 @@ public class MorphPig extends MorphGadget @EventHandler public void HeroOwner(PlayerJoinEvent event) { - if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.ULTRA)) + if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.ULTRA)) { - _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } @@ -136,7 +136,7 @@ public class MorphPig extends MorphGadget if (UtilMath.offset(player, other) > range) continue; - if (_manager.collideEvent(player, this, other)) + if (Manager.collideEvent(player, this, other)) continue; //Cooldown diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPumpkinKing.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPumpkinKing.java index 96e89e3f2..cb13b4ff5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPumpkinKing.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphPumpkinKing.java @@ -67,7 +67,7 @@ public class MorphPumpkinKing extends MorphGadget DisguiseSkeleton disguise = new DisguiseSkeleton(player); disguise.showArmor(); disguise.SetSkeletonType(SkeletonType.WITHER); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); player.getInventory().setHelmet(new ItemStack(Material.JACK_O_LANTERN)); @@ -79,7 +79,7 @@ public class MorphPumpkinKing extends MorphGadget public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); player.getInventory().setHelmet(null); } @@ -106,7 +106,7 @@ public class MorphPumpkinKing extends MorphGadget { for (Player player : getActive()) { - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { continue; } @@ -140,7 +140,7 @@ public class MorphPumpkinKing extends MorphGadget _ent = spawnLocation.getWorld().dropItem(spawnLocation, new ItemBuilder(Material.APPLE).setTitle(new Random().nextDouble() + "").build()); _ent.setPickupDelay(Integer.MAX_VALUE); _disguise = new DisguiseBlock(_ent, Material.JACK_O_LANTERN.getId(), 0); - _manager.getDisguiseManager().disguise(_disguise); + Manager.getDisguiseManager().disguise(_disguise); _detonation = System.currentTimeMillis() + 7000; _done = false; } @@ -157,7 +157,7 @@ public class MorphPumpkinKing extends MorphGadget Map players = UtilPlayer.getInRadius(_ent.getLocation(), 8); for (Player player : players.keySet()) { - if (_manager.collideEvent(_user, MorphPumpkinKing.this, player)) + if (Manager.collideEvent(_user, MorphPumpkinKing.this, player)) continue; double mult = players.get(player); @@ -165,7 +165,7 @@ public class MorphPumpkinKing extends MorphGadget //Knockback UtilAction.velocity(player, UtilAlg.getTrajectory(_ent.getLocation(), player.getLocation()), 1 * mult, false, 0, 0.5 + 0.5 * mult, 10, true); } - _manager.getDisguiseManager().undisguise(_disguise); + Manager.getDisguiseManager().undisguise(_disguise); _ent.remove(); _done = true; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSanta.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSanta.java index 36d6eafe3..7c857694b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSanta.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSanta.java @@ -67,7 +67,7 @@ public class MorphSanta extends MorphGadget DisguisePlayer disguisePlayer = new DisguisePlayer(player, profile); disguisePlayer.showInTabList(true, 0); - UtilMorph.disguise(player, disguisePlayer, _manager); + UtilMorph.disguise(player, disguisePlayer, Manager); } @Override @@ -75,7 +75,7 @@ public class MorphSanta extends MorphGadget { removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler @@ -103,7 +103,7 @@ public class MorphSanta extends MorphGadget { int shards = UtilMath.rRange(250, 500); - if (_manager.getDonationManager().Get(player).getBalance(GlobalCurrency.TREASURE_SHARD) < shards + SHARD_CHARGE) + if (Manager.getDonationManager().Get(player).getBalance(GlobalCurrency.TREASURE_SHARD) < shards + SHARD_CHARGE) { UtilPlayer.message(player, F.main("Gadget", "You do not have enough Shards.")); return; @@ -116,7 +116,7 @@ public class MorphSanta extends MorphGadget SkinData.PRESENT.getSkull("Hidden Present " + System.currentTimeMillis(), new ArrayList<>())); UtilAction.velocity(present, player.getLocation().getDirection(), 0.2, false, 0, 0.2, 1, false); - _manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, player, this.getName() + " Present Hide", -(shards + SHARD_CHARGE)); + Manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, player, this.getName() + " Present Hide", -(shards + SHARD_CHARGE)); present.setPickupDelay(40); @@ -189,7 +189,7 @@ public class MorphSanta extends MorphGadget if (santaPresent.getPresentType().equals(SantaPresent.PresentType.PRESENT)) { - _manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, event.getPlayer(), getName() + " Present Pickup", santaPresent.getAmmo()); + Manager.getDonationManager().rewardCurrency(GlobalCurrency.TREASURE_SHARD, event.getPlayer(), getName() + " Present Pickup", santaPresent.getAmmo()); //Announce Bukkit.broadcastMessage(C.cGold + C.Bold + event.getPlayer().getName() + @@ -200,7 +200,7 @@ public class MorphSanta extends MorphGadget else if (santaPresent.getPresentType().equals(SantaPresent.PresentType.COAL)) { // Gives coals - _manager.getInventoryManager().addItemToInventory(event.getPlayer(), "Coal", santaPresent.getAmmo()); + Manager.getInventoryManager().addItemToInventory(event.getPlayer(), "Coal", santaPresent.getAmmo()); //Announce Bukkit.broadcastMessage(C.cGold + C.Bold + event.getPlayer().getName() + diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSlime.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSlime.java index 492b89837..925934a72 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSlime.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSlime.java @@ -60,14 +60,14 @@ public class MorphSlime extends MorphGadget disguise.SetSize(size); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSnowman.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSnowman.java index 2f429b00b..25326feff 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSnowman.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSnowman.java @@ -60,14 +60,14 @@ public class MorphSnowman extends MorphGadget this.applyArmor(player, message); DisguiseSnowman disguise = new DisguiseSnowman(player); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler @@ -141,7 +141,7 @@ public class MorphSnowman extends MorphGadget if (!_snowball.containsKey(proj)) return; - if(_manager.collideEvent(_snowball.remove(proj), this, event.getEntity())) return; + if(Manager.collideEvent(_snowball.remove(proj), this, event.getEntity())) return; UtilAction.velocity(event.getEntity(), proj.getVelocity().multiply(0.15).add(new Vector(0, 0.15, 0))); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSquid.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSquid.java index 6e16287d2..096f453fd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSquid.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphSquid.java @@ -54,7 +54,7 @@ public class MorphSquid extends MorphGadget implements IThrown { applyArmor(player, message); DisguiseSquid disguiseSquid = new DisguiseSquid(player); - UtilMorph.disguise(player, disguiseSquid, _manager); + UtilMorph.disguise(player, disguiseSquid, Manager); onToggleSwim(new PlayerToggleSwimEvent(player, SwimManager.isSwimming(player.getUniqueId()), SwimManager.isInLava(player.getUniqueId()))); } @@ -62,7 +62,7 @@ public class MorphSquid extends MorphGadget implements IThrown public void disableCustom(Player player, boolean message) { removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler @@ -89,7 +89,7 @@ public class MorphSquid extends MorphGadget implements IThrown if (event.isSwimming()) { // Removes any costume player could be wearing - _manager.removeOutfit(event.getPlayer(), OutfitGadget.ArmorSlot.BOOTS); + Manager.removeOutfit(event.getPlayer(), OutfitGadget.ArmorSlot.BOOTS); // Adds enchanted boot ItemStack enchantedBoot = new ItemStack(Material.DIAMOND_BOOTS, 1); @@ -126,7 +126,7 @@ public class MorphSquid extends MorphGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 0.01, true, -0.3, 1.5, 10, false); - _manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, + Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, null, 1f, 1f, null, null, 0, UpdateType.TICK, 0.5f); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphStray.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphStray.java index 457f864d8..8a6571d36 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphStray.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphStray.java @@ -49,7 +49,7 @@ public class MorphStray extends MorphGadget // TODO CHECK IF LOBBY IS 1.9+ applyArmor(player, message); DisguiseSquid disguiseSquid = new DisguiseSquid(player); - UtilMorph.disguise(player, disguiseSquid, _manager); + UtilMorph.disguise(player, disguiseSquid, Manager); // Gives bow and arrow ItemStack bow = ItemStackFactory.Instance.CreateStack(Material.BOW, (byte) 0, 1, C.cGreen + "Stray Bow", UtilText.splitLinesToArray(new String[]{"Placeholder"}, LineFormat.LORE)); @@ -61,7 +61,7 @@ public class MorphStray extends MorphGadget public void disableCustom(Player player, boolean message) { removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); // Removes bow and arrow player.getInventory().setItem(2, new ItemStack(Material.AIR)); @@ -84,7 +84,7 @@ public class MorphStray extends MorphGadget _strayArrows.add((Arrow) event.getProjectile()); - Bukkit.getScheduler().scheduleSyncDelayedTask(_manager.getPlugin(), new Runnable() + Bukkit.getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() { @Override public void run() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTitan.java index 31dd8d69b..24cd35247 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTitan.java @@ -65,14 +65,14 @@ public class MorphTitan extends MorphGadget DisguiseGuardian disguise = new DisguiseGuardian(player); disguise.setElder(true); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); player.setAllowFlight(false); player.setFlying(false); @@ -96,7 +96,7 @@ public class MorphTitan extends MorphGadget if (!Recharge.Instance.use(player, "Guardians Laser", 6000, true, false, "Cosmetics")) return; - DisguiseBase base = _manager.getDisguiseManager().getDisguise(player); + DisguiseBase base = Manager.getDisguiseManager().getDisguise(player); if (base == null || !(base instanceof DisguiseGuardian)) return; @@ -130,7 +130,7 @@ public class MorphTitan extends MorphGadget disguise.setTarget(stand.getEntityId()); - _manager.getDisguiseManager().updateDisguise(disguise); + Manager.getDisguiseManager().updateDisguise(disguise); //Fake Head UtilEnt.setFakeHead(player, true); @@ -154,7 +154,7 @@ public class MorphTitan extends MorphGadget for (Player ent : players.keySet()) { if (ent instanceof Player) - if (_manager.collideEvent(event.GetPlayer(), this, (Player)ent)) + if (Manager.collideEvent(event.GetPlayer(), this, (Player)ent)) continue; double mult = players.get(ent); @@ -170,14 +170,14 @@ public class MorphTitan extends MorphGadget } //Disguise - DisguiseBase base = _manager.getDisguiseManager().getDisguise(event.GetPlayer()); + DisguiseBase base = Manager.getDisguiseManager().getDisguise(event.GetPlayer()); if (base == null || !(base instanceof DisguiseGuardian)) return; DisguiseGuardian disguise = (DisguiseGuardian)base; disguise.setTarget(0); - _manager.getDisguiseManager().updateDisguise(disguise); + Manager.getDisguiseManager().updateDisguise(disguise); } } @@ -225,9 +225,9 @@ public class MorphTitan extends MorphGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) + if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) { - _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTurkey.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTurkey.java index 0f628fca6..6fc6a2f90 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTurkey.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphTurkey.java @@ -46,14 +46,14 @@ public class MorphTurkey extends MorphGadget DisguisePlayer disguisePlayer = new DisguisePlayer(player, profile); disguisePlayer.showInTabList(true, 0); - UtilMorph.disguise(player, disguisePlayer, _manager); + UtilMorph.disguise(player, disguisePlayer, Manager); } @Override public void disableCustom(Player player, boolean message) { removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphUncleSam.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphUncleSam.java index 99e6d0eee..55ea3a9ba 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphUncleSam.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphUncleSam.java @@ -49,7 +49,7 @@ public class MorphUncleSam extends MorphGadget DisguisePlayer disguisePlayer = new DisguisePlayer(player, profile); disguisePlayer.showInTabList(true, 0); - UtilMorph.disguise(player, disguisePlayer, _manager); + UtilMorph.disguise(player, disguisePlayer, Manager); } @Override @@ -57,7 +57,7 @@ public class MorphUncleSam extends MorphGadget { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphVillager.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphVillager.java index 2e1fac522..729c115b0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphVillager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphVillager.java @@ -60,14 +60,14 @@ public class MorphVillager extends MorphGadget implements IThrown this.applyArmor(player, message); DisguiseVillager disguise = new DisguiseVillager(player); - UtilMorph.disguise(player, disguise, _manager); + UtilMorph.disguise(player, disguise, Manager); } @Override public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } @EventHandler @@ -81,7 +81,7 @@ public class MorphVillager extends MorphGadget implements IThrown if (!UtilEvent.isAction(event, ActionType.L)) return; - if (_manager.getDonationManager().Get(player).getBalance(GlobalCurrency.GEM) < 20) + if (Manager.getDonationManager().Get(player).getBalance(GlobalCurrency.GEM) < 20) { UtilPlayer.message(player, F.main("Gadget", "You do not have enough Gems.")); return; @@ -97,10 +97,10 @@ public class MorphVillager extends MorphGadget implements IThrown UtilAction.velocity(gem, player.getLocation().getDirection(), 1, false, 0, 0.2, 1, false); //Throw - _manager.getProjectileManager().AddThrow(gem, player, this, -1, true, true, true, true, + Manager.getProjectileManager().AddThrow(gem, player, this, -1, true, true, true, true, null, 1.4f, 0.8f, null, null, 0, UpdateType.TICK, 0.5f); - _manager.getDonationManager().rewardCurrency(GlobalCurrency.GEM, player, this.getName() + " Throw", -20); + Manager.getDonationManager().rewardCurrency(GlobalCurrency.GEM, player, this.getName() + " Throw", -20); gem.setPickupDelay(40); @@ -114,7 +114,7 @@ public class MorphVillager extends MorphGadget implements IThrown return; if (target instanceof Player) - if (_manager.collideEvent((Player) data.getThrower(), this, (Player) target)) + if (Manager.collideEvent((Player) data.getThrower(), this, (Player) target)) return; //Pull @@ -150,7 +150,7 @@ public class MorphVillager extends MorphGadget implements IThrown event.setCancelled(true); event.getItem().remove(); - _manager.getDonationManager().rewardCurrency(GlobalCurrency.GEM, event.getPlayer(), getName() + " Pickup", 16); + Manager.getDonationManager().rewardCurrency(GlobalCurrency.GEM, event.getPlayer(), getName() + " Pickup", 16); event.getPlayer().getWorld().playSound(event.getPlayer().getLocation(), Sound.ORB_PICKUP, 1f, 2f); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWitch.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWitch.java index 0ff6b9b7a..d394b3e87 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWitch.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWitch.java @@ -42,7 +42,7 @@ public class MorphWitch extends MorphGadget { this.applyArmor(player, message); DisguiseWitch disguiseWitch = new DisguiseWitch(player); - UtilMorph.disguise(player, disguiseWitch, _manager); + UtilMorph.disguise(player, disguiseWitch, Manager); } @Override @@ -54,7 +54,7 @@ public class MorphWitch extends MorphGadget { witchEffectManager.stop(); } - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); } public ItemStack getWitchItem() @@ -100,14 +100,14 @@ public class MorphWitch extends MorphGadget } // Checks if player is opening a treasure chest/close to a treasure area - if (_manager.getTreasureManager() != null) + if (Manager.getTreasureManager() != null) { - if (_manager.getTreasureManager().isOpening(event.getPlayer())) + if (Manager.getTreasureManager().isOpening(event.getPlayer())) { UtilPlayer.message(event.getPlayer(), F.main("Witch Morph", "You can't place the cauldron there!")); return; } - for (Location blockLocation : _manager.getTreasureManager().getBlockLocations()) + for (Location blockLocation : Manager.getTreasureManager().getBlockLocations()) { if (blockLocation.distanceSquared(cauldronLocation) <= 25) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWither.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWither.java index 6f827539a..59f9bcb46 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWither.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphWither.java @@ -65,7 +65,7 @@ public class MorphWither extends MorphGadget player.setHealth(300); DisguiseWither disguise = new DisguiseWither(player); - UtilMorph.disguise(player, disguise, _manager, true); + UtilMorph.disguise(player, disguise, Manager, true); player.setMaxHealth(20); player.setHealth(20); @@ -75,7 +75,7 @@ public class MorphWither extends MorphGadget public void disableCustom(Player player, boolean message) { this.removeArmor(player); - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); player.setAllowFlight(false); player.setFlying(false); @@ -127,7 +127,7 @@ public class MorphWither extends MorphGadget HashMap players = UtilPlayer.getInRadius(event.getLocation(), 6); for (Player player : players.keySet()) { - if (_manager.collideEvent((Player) skull.getShooter(), this, player)) + if (Manager.collideEvent((Player) skull.getShooter(), this, player)) continue; double mult = players.get(player); @@ -181,9 +181,9 @@ public class MorphWither extends MorphGadget public void legendOwner(PlayerJoinEvent event) { // TODO HARDCODED Wither Morph Database Item Id - 550 - if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.LEGEND)) + if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.LEGEND)) { - _manager.getInventoryManager().Get(event.getPlayer()).addItem(new ClientItem(new Item(550, getName()), 1)); + Manager.getInventoryManager().Get(event.getPlayer()).addItem(new ClientItem(new Item(550, getName()), 1)); } } @@ -195,7 +195,7 @@ public class MorphWither extends MorphGadget { Player player = activeIterator.next(); - DisguiseBase disguise = _manager.getDisguiseManager().getDisguise(player); + DisguiseBase disguise = Manager.getDisguiseManager().getDisguise(player); if (disguise == null || !(disguise instanceof DisguiseWither)) { @@ -206,7 +206,7 @@ public class MorphWither extends MorphGadget ((DisguiseWither)disguise).setName(text); ((DisguiseWither)disguise).setHealth((float) (healthPercent * 300)); - _manager.getDisguiseManager().updateDisguise(disguise); + Manager.getDisguiseManager().updateDisguise(disguise); } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/OutfitTeam.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/OutfitTeam.java index 3aa1734ea..bcda0800d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/OutfitTeam.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/OutfitTeam.java @@ -50,16 +50,16 @@ public class OutfitTeam extends OutfitGadget } enableCustom(player, true); - _manager.setActive(player, this); + Manager.setActive(player, this); Bukkit.getServer().getPluginManager().callEvent(new GadgetAppliedEvent(player, this)); } @Override public void applyArmor(Player player, boolean message) { - _manager.removeGadgetType(player, GadgetType.MORPH); + Manager.removeGadgetType(player, GadgetType.MORPH); - _manager.removeOutfit(player, _slot); + Manager.removeOutfit(player, _slot); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/freezesuit/OutfitFreezeSuit.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/freezesuit/OutfitFreezeSuit.java index 62cfc46fc..0cba46733 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/freezesuit/OutfitFreezeSuit.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/freezesuit/OutfitFreezeSuit.java @@ -130,13 +130,13 @@ public class OutfitFreezeSuit extends OutfitGadget for (Block block : blocks.keySet()) { - if (_manager.getTreasureManager() != null) + if (Manager.getTreasureManager() != null) { - if (_manager.getTreasureManager().isOpening(player)) + if (Manager.getTreasureManager().isOpening(player)) { forceBreak= true; } - for (Location blockLocation : _manager.getTreasureManager().getBlockLocations()) + for (Location blockLocation : Manager.getTreasureManager().getBlockLocations()) { if (blockLocation.distanceSquared(block.getLocation()) <= 25) { @@ -150,7 +150,7 @@ public class OutfitFreezeSuit extends OutfitGadget if (!setBlocks) continue; - _manager.getBlockRestore().snow(block, (byte) 1, (byte) 1, (int) (DURATION * (1 + blocks.get(block))), 250, 0); + Manager.getBlockRestore().snow(block, (byte) 1, (byte) 1, (int) (DURATION * (1 + blocks.get(block))), 250, 0); } } } @@ -180,7 +180,7 @@ public class OutfitFreezeSuit extends OutfitGadget else { block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, 79); - _manager.getBlockRestore().add(block, 79, (byte) 0, MELT_TIME); + Manager.getBlockRestore().add(block, 79, (byte) 0, MELT_TIME); } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleChristmasTree.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleChristmasTree.java index 4d919a826..8261df65c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleChristmasTree.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleChristmasTree.java @@ -38,7 +38,7 @@ public class ParticleChristmasTree extends ParticleGadget { if (!_effects.containsKey(player.getUniqueId())) { - ChristmasTreeEffect christmasTreeEffect = new ChristmasTreeEffect(_manager.getPlugin(), player, _manager); + ChristmasTreeEffect christmasTreeEffect = new ChristmasTreeEffect(Manager.getPlugin(), player, Manager); christmasTreeEffect.start(); _effects.put(player.getUniqueId(), christmasTreeEffect); } 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 2c816f6f6..467db55d2 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 @@ -33,7 +33,7 @@ public class ParticleCoalFumes extends ParticleGadget int amount = 5; ParticleType type = ParticleType.LARGE_SMOKE; - if(_manager.isMoving(player)) + if(Manager.isMoving(player)) { xz = 0.4f; amount = 2; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFireRings.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFireRings.java index 86cbdf972..0a2298be6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFireRings.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFireRings.java @@ -31,7 +31,7 @@ public class ParticleFireRings extends ParticleGadget { if (event.getType() != UpdateType.TICK) return; - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { UtilParticle.PlayParticle(ParticleType.FLAME, player.getLocation().add(0, 1f, 0), 0.2f, 0.2f, 0.2f, 0, 1, ViewDist.NORMAL, UtilServer.getPlayers()); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleKronos.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleKronos.java index e6914496b..92239bdfd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleKronos.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleKronos.java @@ -47,16 +47,16 @@ public class ParticleKronos extends ParticleGadget if (!_glass.containsKey(player)) _glass.put(player, new ParticleKronosData(player)); - _glass.get(player).update(_manager.isMoving(player)); + _glass.get(player).update(Manager.isMoving(player)); } @EventHandler public void titanOwner(PlayerJoinEvent event) { - /*Until it becomes purchasable*/if (_manager.getClientManager().Get(event.getPlayer()).GetRank().equals(Rank.TITAN)) + /*Until it becomes purchasable*/if (Manager.getClientManager().Get(event.getPlayer()).GetRank().equals(Rank.TITAN)) //if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) { - _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } 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 12ead8eb2..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 @@ -40,9 +40,9 @@ public class ParticleLegend extends ParticleGadget public void legendOwner(PlayerJoinEvent event) { // TODO HARDCODED Legendary Aura Database Item Id - 552 - if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.LEGEND)) + if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.LEGEND)) { - _manager.getInventoryManager().Get(event.getPlayer()).addItem(new ClientItem(new Item(552, getName()), 1)); + Manager.getInventoryManager().Get(event.getPlayer()).addItem(new ClientItem(new Item(552, getName()), 1)); } } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsAngel.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsAngel.java index 25fef8b4d..f781ff3c9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsAngel.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsAngel.java @@ -32,7 +32,7 @@ public class ParticleWingsAngel extends ParticleGadget public void playParticle(Player player, UpdateEvent event) { Location loc = player.getLocation().add(0, 1.2, 0).add(player.getLocation().getDirection().multiply(-0.2)); - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { if (event.getType() == UpdateType.TICK) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsDemons.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsDemons.java index 089c0a121..ca1f4f584 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsDemons.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsDemons.java @@ -34,7 +34,7 @@ public class ParticleWingsDemons extends ParticleGadget public void playParticle(Player player, UpdateEvent event) { Location loc = player.getLocation().add(0, 1.2, 0).add(player.getLocation().getDirection().multiply(-0.2)); - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { if (event.getType() == UpdateType.FASTEST) UtilParticle.playParticleFor(player, ParticleType.SMOKE, loc, 0.3f, 0.2f, 0.3f, 0, 10, ViewDist.NORMAL); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsInfernal.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsInfernal.java index 9e7f6694c..e5710f604 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsInfernal.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsInfernal.java @@ -32,7 +32,7 @@ public class ParticleWingsInfernal extends ParticleGadget public void playParticle(Player player, UpdateEvent event) { Location loc = player.getLocation().add(0, 1.2, 0).add(player.getLocation().getDirection().multiply(-0.2)); - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { if (event.getType() == UpdateType.TICK) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsLove.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsLove.java index 9776ddec0..3ad307040 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsLove.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsLove.java @@ -38,7 +38,7 @@ public class ParticleWingsLove extends ParticleGadget public void playParticle(Player player, UpdateEvent event) { Location loc = player.getLocation().add(0, 1.2, 0).add(player.getLocation().getDirection().multiply(-0.2)); - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { if (event.getType() == UpdateType.TICK) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsPixie.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsPixie.java index dcde0b02f..dd2003c9b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsPixie.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsPixie.java @@ -32,7 +32,7 @@ public class ParticleWingsPixie extends ParticleGadget { Location loc = player.getLocation().add(0, 1.2, 0).add(player.getLocation().getDirection().multiply(-0.2)); - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { if (event.getType() == UpdateType.TICK) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleYinYang.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleYinYang.java index 5f13b1e3c..19cd7705c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleYinYang.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleYinYang.java @@ -47,7 +47,7 @@ public class ParticleYinYang extends ParticleGadget RechargeData r = Recharge.Instance.Get(player).get("Yin and Yang Move"); - if(_manager.isMoving(player)) + if(Manager.isMoving(player)) { long time = 50; if(r != null) 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/candycane/ParticleCandyCane.java index a6e76fd63..4d8b223fc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/candycane/ParticleCandyCane.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/candycane/ParticleCandyCane.java @@ -35,7 +35,7 @@ public class ParticleCandyCane extends ParticleGadget { if (event.getType() != UpdateType.TICK) return; - boolean moving = _manager.isMoving(player); + boolean moving = Manager.isMoving(player); Location loc = player.getLocation(); float y = moving ? 0.2f : 0.15f; double yadd = getY(player); 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/cupidslove/ParticleHeart.java index 35fbfeb97..dea6a85aa 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/cupidslove/ParticleHeart.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/cupidslove/ParticleHeart.java @@ -33,7 +33,7 @@ public class ParticleHeart extends ParticleGadget { if (event.getType() != UpdateType.FASTEST) return; - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { if(getSet() == null || !getSet().isActive(player)) return; 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/emerald/ParticleEmerald.java index 6fefeb799..417587dbb 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/emerald/ParticleEmerald.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/emerald/ParticleEmerald.java @@ -40,7 +40,7 @@ public class ParticleEmerald extends ParticleGadget if(getSet() == null || !getSet().isActive(player)) return; - if(_manager.isMoving(player)) + if(Manager.isMoving(player)) { UtilParticle.PlayParticle(ParticleType.HAPPY_VILLAGER, player.getLocation().add(0, 0.2, 0), 0.3f, 0f, 0.3f, 0, 2, ViewDist.NORMAL, UtilServer.getPlayers()); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedom.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedom.java index 577d6a981..bafa31183 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedom.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/freedom/ParticleFreedom.java @@ -38,7 +38,7 @@ public class ParticleFreedom extends ParticleGadget @Override public void startEffect(Player player) { - _effects.put(player.getUniqueId(), new FreedomFireworkEffect(player, _manager.getPlugin(), true)); + _effects.put(player.getUniqueId(), new FreedomFireworkEffect(player, Manager.getPlugin(), true)); _effects.get(player.getUniqueId()).start(); } 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/frostlord/ParticleFrostLord.java index 4abe120c0..62c1388b3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/frostlord/ParticleFrostLord.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/frostlord/ParticleFrostLord.java @@ -30,7 +30,7 @@ public class ParticleFrostLord extends ParticleGadget { if (event.getType() != UpdateType.TICK) return; - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { UtilParticle.PlayParticle(ParticleType.SNOW_SHOVEL, player.getLocation().add(0, 1, 0), 0.2f, 0.2f, 0.2f, 0, 4, ViewDist.NORMAL, UtilServer.getPlayers()); 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/howlingwinds/ParticleRain.java index 8d72f79ca..f2c45007c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/howlingwinds/ParticleRain.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/howlingwinds/ParticleRain.java @@ -35,7 +35,7 @@ public class ParticleRain extends ParticleGadget { if (event.getType() != UpdateType.TICK) return; - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { UtilParticle.playParticleFor(player, ParticleType.SPLASH, player.getLocation(), 0.2f, 0, 0.2f, 0, 6, ViewDist.NORMAL); } 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/music/ParticleMusic.java index 59332a626..04874fffc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/music/ParticleMusic.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/music/ParticleMusic.java @@ -29,7 +29,7 @@ public class ParticleMusic extends ParticleGadget @Override public void playParticle(Player player, UpdateEvent event) { - boolean moving = _manager.isMoving(player); + boolean moving = Manager.isMoving(player); UpdateType type = moving? UpdateType.FASTER : UpdateType.FAST; if (event.getType() != type) return; @@ -76,7 +76,7 @@ public class ParticleMusic extends ParticleGadget if(red == 0) red = 0.00001; double step2 = Math.PI/12; - if(_manager.isMoving(player)) step2 = Math.PI/2; + if(Manager.isMoving(player)) step2 = Math.PI/2; for(double rad2 = 0; rad2 < Math.PI*2; rad2 += step2) { 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/party/ParticlePartyTime.java index 27e62d969..3aab6f928 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/party/ParticlePartyTime.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/party/ParticlePartyTime.java @@ -57,7 +57,7 @@ public class ParticlePartyTime extends ParticleGadget for (int i = 0; i < 1; i++) { String particle = ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, list.get(i)); - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { UtilParticle.playParticleFor(player, particle, player.getLocation().add(0, 1, 0), null, 0.08f, 1, ViewDist.NORMAL); } @@ -82,7 +82,7 @@ public class ParticlePartyTime extends ParticleGadget _hiddenDrops.computeIfAbsent(player, key -> new HashSet<>()).add(item); DisguiseArmorStand stand = new DisguiseArmorStand(item); stand.setInvisible(true); - _manager.getDisguiseManager().disguise(stand); + Manager.getDisguiseManager().disguise(stand); String particle = ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, data); UtilParticle.playParticleFor(player, particle, spawnLoc, null, 0.08f, 30, ViewDist.NORMAL); 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/shadow/ParticleFoot.java index 8eae12cac..9c3b8be54 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/shadow/ParticleFoot.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/shadow/ParticleFoot.java @@ -4,8 +4,10 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; +import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.Sound; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -48,7 +50,7 @@ public class ParticleFoot extends ParticleGadget _foot = !_foot; - if (!_manager.isMoving(player)) return; + if (!Manager.isMoving(player)) return; if (!UtilEnt.isGrounded(player)) return; 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/titan/ParticleTitan.java index d8984e476..b5f02de23 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/titan/ParticleTitan.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/titan/ParticleTitan.java @@ -49,7 +49,7 @@ public class ParticleTitan extends ParticleGadget double r = 3; boolean redstone = false; - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { UtilParticle.playParticleFor(player, ParticleType.FLAME, player.getLocation().add(0, 0.1, 0), 0.2f, 0.1f, 0.2f, 0.015f, 3, ViewDist.NORMAL); return; @@ -94,9 +94,9 @@ public class ParticleTitan extends ParticleGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) + if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.TITAN)) { - _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } } 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/vampire/ParticleBlood.java index 849dbff1b..a33078067 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/vampire/ParticleBlood.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/vampire/ParticleBlood.java @@ -30,7 +30,7 @@ public class ParticleBlood extends ParticleGadget { if (event.getType() != UpdateType.TICK) return; - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { UtilParticle.playParticleFor(player, ParticleType.RED_DUST, player.getLocation().add(0, 1, 0), 0.2f, 0.2f, 0.2f, 0, 2, ViewDist.NORMAL); } 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/wisdom/ParticleEnchant.java index dbda9f2c4..f8d734e74 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/wisdom/ParticleEnchant.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/wisdom/ParticleEnchant.java @@ -31,7 +31,7 @@ public class ParticleEnchant extends ParticleGadget { if (event.getType() != UpdateType.TICK) return; - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { UtilParticle.PlayParticle(ParticleType.ENCHANTMENT_TABLE, player.getLocation().add(0, 1, 0), 0.2f, 0.2f, 0.2f, 0, 4, ViewDist.NORMAL, UtilServer.getPlayers()); 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 145144147..53e6a7793 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 @@ -68,7 +68,7 @@ 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); + UtilMorph.disguise(player, disguiseSkeleton, Manager); } @Override @@ -113,7 +113,7 @@ public class EternalTaunt extends TauntGadget @Override public void onFinish(Player player) { - UtilMorph.undisguise(player, _manager.getDisguiseManager()); + UtilMorph.undisguise(player, Manager.getDisguiseManager()); if (_clocks.containsKey(player.getUniqueId())) { _clocks.get(player.getUniqueId()).forEach(c -> c.remove()); @@ -125,9 +125,9 @@ public class EternalTaunt extends TauntGadget @EventHandler public void titanOwner(PlayerJoinEvent event) { - if (_manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.ETERNAL)) + if (Manager.getClientManager().Get(event.getPlayer()).GetRank().has(Rank.ETERNAL)) { - _manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); + Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName()); } } 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 9628c38be..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 @@ -48,7 +48,7 @@ public class RainbowTaunt extends TauntGadget Location start = player.getLocation().clone().add(sideA.multiply(4).toLocation(player.getWorld())); Location end = player.getLocation().clone().add(sideB.multiply(4).toLocation(player.getWorld())); - RainbowTauntEffect rainbowTauntEffect = new RainbowTauntEffect(start, _manager.getPlugin()); + RainbowTauntEffect rainbowTauntEffect = new RainbowTauntEffect(start, Manager.getPlugin()); rainbowTauntEffect.setTargetLocation(new EffectLocation(end)); rainbowTauntEffect.start(); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectBabyChicken.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectBabyChicken.java index 2294fa0ed..d7d20aa75 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectBabyChicken.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectBabyChicken.java @@ -125,7 +125,7 @@ public class WinEffectBabyChicken extends WinEffectGadget { _chicken.getWorld().playSound(_chicken.getLocation(), Sound.CHICKEN_IDLE, 1, (float) (1 + Math.random()*0.6)); - Hologram hologram = new Hologram(_manager.getHologramManager(), _chicken.getEyeLocation(), C.Italics + "BAWK"); + Hologram hologram = new Hologram(Manager.getHologramManager(), _chicken.getEyeLocation(), C.Italics + "BAWK"); _text.put(hologram, Vector.getRandom().subtract(Vector.getRandom()).normalize().multiply(0.4).setY(0.6)); hologram.start(); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFireworks.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFireworks.java index a7e8199ed..18b3fb26d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFireworks.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFireworks.java @@ -45,7 +45,7 @@ public class WinEffectFireworks extends WinEffectGadget start.setDirection(new Vector(1, 0, 0)); _npc = getNPC(_player, start); - AnimatorEntity animator = new AnimatorEntity(_manager.getPlugin(), _npc.getEntity().getBukkitEntity()); + AnimatorEntity animator = new AnimatorEntity(Manager.getPlugin(), _npc.getEntity().getBukkitEntity()); for(double rad = 0; rad < Math.PI*2; rad+= Math.PI/points) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFlames.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFlames.java index 03f56b951..8a0760799 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFlames.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectFlames.java @@ -49,7 +49,7 @@ public class WinEffectFlames extends WinEffectGadget start.setDirection(new Vector(1, 0, 0)); _npc = getNPC(_player, start); - AnimatorEntity animator = new AnimatorEntity(_manager.getPlugin(), _npc.getEntity().getBukkitEntity()); + AnimatorEntity animator = new AnimatorEntity(Manager.getPlugin(), _npc.getEntity().getBukkitEntity()); for(double rad = 0; rad < Math.PI*2; rad+= Math.PI/points) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectHalloween.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectHalloween.java index be41eb54d..d40136327 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectHalloween.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectHalloween.java @@ -173,11 +173,11 @@ public class WinEffectHalloween extends WinEffectGadget BabyFireworkEffect babyFireworkEffect; if (i %2 == 0) { - babyFireworkEffect = new BabyFireworkEffect((randomLoc) ? randLocation : entityLocation, _manager.getPlugin(), color); + babyFireworkEffect = new BabyFireworkEffect((randomLoc) ? randLocation : entityLocation, Manager.getPlugin(), color); } else { - babyFireworkEffect = new BabyFireworkEffect((randomLoc) ? randLocation : entityLocation, _manager.getPlugin(), Color.ORANGE, Color.BLACK); + babyFireworkEffect = new BabyFireworkEffect((randomLoc) ? randLocation : entityLocation, Manager.getPlugin(), Color.ORANGE, Color.BLACK); } // Starts without the firework trail babyFireworkEffect.setCount(6); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLightningStrike.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLightningStrike.java index 3edd2858b..e159d74bd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLightningStrike.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLightningStrike.java @@ -29,7 +29,7 @@ public class WinEffectLightningStrike extends WinEffectGadget public void play() { final DisguisePlayer player = getNPC(this._player, getBaseLocation()); - Bukkit.getScheduler().runTaskLater(_manager.getPlugin(), + Bukkit.getScheduler().runTaskLater(Manager.getPlugin(), new Runnable() { public void run() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLoveIsABattlefield.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLoveIsABattlefield.java index 3164313ba..9b31c73fa 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLoveIsABattlefield.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectLoveIsABattlefield.java @@ -50,7 +50,7 @@ public class WinEffectLoveIsABattlefield extends WinEffectGadget { _npc = getNPC(this._player, getBaseLocation()); - AnimatorEntity animator = new AnimatorEntity(_manager.getPlugin(), _npc.getEntity().getBukkitEntity()); + AnimatorEntity animator = new AnimatorEntity(Manager.getPlugin(), _npc.getEntity().getBukkitEntity()); animator.addPoint(new AnimationPoint(20, new Vector(0,0,0), new Vector(-1, 0.5, 0))); animator.addPoint(new AnimationPoint(40, new Vector(0,0,0), new Vector( 0, 0.5,-1))); @@ -103,7 +103,7 @@ public class WinEffectLoveIsABattlefield extends WinEffectGadget @Override public void finish() { - _manager.getDisguiseManager().undisguise(_npc); + Manager.getDisguiseManager().undisguise(_npc); _npc = null; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectPodium.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectPodium.java index 90a17799b..3dc52ff95 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectPodium.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectPodium.java @@ -32,7 +32,7 @@ public class WinEffectPodium extends WinEffectGadget { _npc = getNPC(this._player, getBaseLocation()); - AnimatorEntity animator = new AnimatorEntity(_manager.getPlugin(), _npc.getEntity().getBukkitEntity()); + AnimatorEntity animator = new AnimatorEntity(Manager.getPlugin(), _npc.getEntity().getBukkitEntity()); animator.addPoint(new AnimationPoint( 20, new Vector(0,0,0), new Vector(-1, 0.5, 0))); animator.addPoint(new AnimationPoint( 40, new Vector(0,0,0), new Vector( 0, 0.5,-1))); @@ -78,7 +78,7 @@ public class WinEffectPodium extends WinEffectGadget @Override public void finish() { - _manager.getDisguiseManager().undisguise(_npc); + Manager.getDisguiseManager().undisguise(_npc); _npc = null; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectRiseOfTheElderGuardian.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectRiseOfTheElderGuardian.java index 2304574df..6539f59c0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectRiseOfTheElderGuardian.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectRiseOfTheElderGuardian.java @@ -62,7 +62,7 @@ public class WinEffectRiseOfTheElderGuardian extends WinEffectGadget stand.setGravity(false); DisguiseGuardian g = new DisguiseGuardian(stand); - _manager.getDisguiseManager().disguise(g); + Manager.getDisguiseManager().disguise(g); _guardians.add(g); } @@ -91,7 +91,7 @@ public class WinEffectRiseOfTheElderGuardian extends WinEffectGadget for(DisguiseGuardian g : _guardians) { g.setTarget(_npcPlayer.getEntityId()); - _manager.getDisguiseManager().updateDisguise(g); + Manager.getDisguiseManager().updateDisguise(g); } } @@ -113,17 +113,17 @@ public class WinEffectRiseOfTheElderGuardian extends WinEffectGadget for(DisguiseGuardian g : _guardians) { g.setTarget(0); - _manager.getDisguiseManager().updateDisguise(g); + Manager.getDisguiseManager().updateDisguise(g); } ArmorStand stand = (ArmorStand) _npcPlayer.getEntity().getBukkitEntity(); - _manager.getDisguiseManager().undisguise(stand); + Manager.getDisguiseManager().undisguise(stand); _npcGuardian = new DisguiseGuardian(stand); _npcGuardian.setElder(true); - _manager.getDisguiseManager().disguise(_npcGuardian); + Manager.getDisguiseManager().disguise(_npcGuardian); } _tick++; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectSnowTrails.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectSnowTrails.java index f0edca603..42a8c5115 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectSnowTrails.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectSnowTrails.java @@ -48,7 +48,7 @@ public class WinEffectSnowTrails extends WinEffectGadget start.setDirection(new Vector(1, 0, 0)); _npc = getNPC(_player, start); - AnimatorEntity animator = new AnimatorEntity(_manager.getPlugin(), _npc.getEntity().getBukkitEntity()); + AnimatorEntity animator = new AnimatorEntity(Manager.getPlugin(), _npc.getEntity().getBukkitEntity()); for(double rad = 0; rad < Math.PI*2; rad+= Math.PI/points) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectWinterWarfare.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectWinterWarfare.java index bf9ef4fcd..67a9abe9c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectWinterWarfare.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/wineffect/WinEffectWinterWarfare.java @@ -76,7 +76,7 @@ public class WinEffectWinterWarfare extends WinEffectGadget @Override public void finish() { - _manager.getDisguiseManager().undisguise(_npc); + Manager.getDisguiseManager().undisguise(_npc); _npc = null; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ArrowEffectGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ArrowEffectGadget.java index 735047344..4d3b5b0d4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ArrowEffectGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ArrowEffectGadget.java @@ -29,7 +29,7 @@ public abstract class ArrowEffectGadget extends Gadget if (UtilPlayer.isSpectator(player)) return false; - if (_manager.hideParticles()) + if (Manager.hideParticles()) return false; return true; @@ -38,7 +38,7 @@ public abstract class ArrowEffectGadget extends Gadget @EventHandler public void arrowLaunch(ProjectileLaunchEvent event) { - if (_manager.hideParticles()) + if (Manager.hideParticles()) return; if (event.getEntity() instanceof Arrow) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/BalloonGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/BalloonGadget.java index 3d97ba38f..4a5ad6f60 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/BalloonGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/BalloonGadget.java @@ -49,7 +49,7 @@ public abstract class BalloonGadget extends Gadget } else { - _manager.removeActive(player, this); + Manager.removeActive(player, this); UtilPlayer.message(player, F.main("Gadget", "You cannot have more than " + F.count("10") + " balloons!")); } } @@ -152,7 +152,7 @@ public abstract class BalloonGadget extends Gadget if (event.getFrom().getY() > 0) return; - for (BalloonGadget balloonGadget : _manager.getActiveBalloons(event.getPlayer())) + for (BalloonGadget balloonGadget : Manager.getActiveBalloons(event.getPlayer())) { balloonGadget.disable(event.getPlayer(), false); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DeathEffectGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DeathEffectGadget.java index 7aafae5a6..35eeb4737 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DeathEffectGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DeathEffectGadget.java @@ -20,7 +20,7 @@ public abstract class DeathEffectGadget extends Gadget if (UtilPlayer.isSpectator(player)) return false; - if (_manager.hideParticles()) + if (Manager.hideParticles()) return false; return true; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DoubleJumpEffectGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DoubleJumpEffectGadget.java index 6d2ffbb37..e1076dba7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DoubleJumpEffectGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/DoubleJumpEffectGadget.java @@ -20,7 +20,7 @@ public abstract class DoubleJumpEffectGadget extends Gadget if (UtilPlayer.isSpectator(player)) return false; - if (_manager.hideParticles()) + if (Manager.hideParticles()) return false; return true; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/Gadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/Gadget.java index b165ed3ff..141885d0c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/Gadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/Gadget.java @@ -22,16 +22,20 @@ import mineplex.core.shop.item.SalesPackageBase; public abstract class Gadget extends SalesPackageBase implements Listener { - public GadgetManager _manager; + public GadgetManager Manager; private GadgetType _gadgetType; protected HashSet _active = new HashSet<>(); + protected GadgetSet _set = null; private String[] _alternativePackageNames; - private boolean _freeGadget; + + private boolean _free; + private YearMonth _yearMonth = null; + private ItemStack _displayItem = null; public Gadget(GadgetManager manager, GadgetType gadgetType, String name, String[] desc, int cost, Material mat, byte data) @@ -49,15 +53,15 @@ public abstract class Gadget extends SalesPackageBase implements Listener super(name, mat, data, desc, cost, quantity); _gadgetType = gadgetType; - _knownPackage = false; - _freeGadget = false; + KnownPackage = false; + _free = false; _alternativePackageNames = alternativesalepackageNames; if(_alternativePackageNames == null) { _alternativePackageNames = new String[0]; } - _manager = manager; + Manager = manager; - _manager.getPlugin().getServer().getPluginManager().registerEvents(this, _manager.getPlugin()); + Manager.getPlugin().getServer().getPluginManager().registerEvents(this, Manager.getPlugin()); } public Gadget(GadgetManager manager, GadgetType gadgetType, String name, String[] desc, int cost, Material mat, byte data, YearMonth yearMonth, int quantity, String... alternativesalepackageNames) @@ -65,32 +69,32 @@ public abstract class Gadget extends SalesPackageBase implements Listener super(name, mat, data, desc, cost, quantity); _gadgetType = gadgetType; - _knownPackage = false; - _freeGadget = false; + KnownPackage = false; + _free = false; _yearMonth = yearMonth; _alternativePackageNames = alternativesalepackageNames; if(_alternativePackageNames == null) { _alternativePackageNames = new String[0]; } - _manager = manager; + Manager = manager; - _manager.getPlugin().getServer().getPluginManager().registerEvents(this, _manager.getPlugin()); + Manager.getPlugin().getServer().getPluginManager().registerEvents(this, Manager.getPlugin()); } - public Gadget(GadgetManager manager, GadgetType gadgetType, String name, String[] desc, int cost, Material mat, byte data, int quantity, boolean freeGadget, String... alternativesalepackageNames) + public Gadget(GadgetManager manager, GadgetType gadgetType, String name, String[] desc, int cost, Material mat, byte data, int quantity, boolean free, String... alternativesalepackageNames) { super(name, mat, data, desc, cost, quantity); _gadgetType = gadgetType; - _knownPackage = false; - _freeGadget = freeGadget; + KnownPackage = false; + _free = free; _alternativePackageNames = alternativesalepackageNames; if(_alternativePackageNames == null) { _alternativePackageNames = new String[0]; } - _manager = manager; + Manager = manager; - _manager.getPlugin().getServer().getPluginManager().registerEvents(this, _manager.getPlugin()); + Manager.getPlugin().getServer().getPluginManager().registerEvents(this, Manager.getPlugin()); } public GadgetType getGadgetType() @@ -137,7 +141,7 @@ public abstract class Gadget extends SalesPackageBase implements Listener return; } - _manager.setActive(player, this); + Manager.setActive(player, this); enableCustom(player, message); Bukkit.getServer().getPluginManager().callEvent(new GadgetAppliedEvent(player, this)); } @@ -157,7 +161,7 @@ public abstract class Gadget extends SalesPackageBase implements Listener { if (isActive(player)) { - _manager.removeActive(player, this); + Manager.removeActive(player, this); GadgetDisableEvent event = new GadgetDisableEvent(player, this); Bukkit.getServer().getPluginManager().callEvent(event); disableCustom(player, message); @@ -166,7 +170,7 @@ public abstract class Gadget extends SalesPackageBase implements Listener public void enableCustom(Player player, boolean message) { - _manager.removeGadgetType(player, _gadgetType, this); + Manager.removeGadgetType(player, _gadgetType, this); _active.add(player); if (message) UtilPlayer.message(player, F.main("Gadget", "You enabled " + F.elem(getName()) + ".")); @@ -180,14 +184,14 @@ public abstract class Gadget extends SalesPackageBase implements Listener public boolean ownsGadget(Player player) { - if(isFree() || _freeGadget) { return true; } - if(_manager.getDonationManager().Get(player).ownsUnknownSalesPackage(getName())) { return true; } - if(_manager.getInventoryManager().Get(player).getItemCount(getName()) > 0) { return true; } + if(isFree() || _free) { return true; } + if(Manager.getDonationManager().Get(player).ownsUnknownSalesPackage(getName())) { return true; } + if(Manager.getInventoryManager().Get(player).getItemCount(getName()) > 0) { return true; } for(String alt : _alternativePackageNames) { - if(_manager.getDonationManager().Get(player).ownsUnknownSalesPackage(alt)) { return true; } - if(_manager.getInventoryManager().Get(player).getItemCount(alt) > 0) { return true; } + if(Manager.getDonationManager().Get(player).ownsUnknownSalesPackage(alt)) { return true; } + if(Manager.getInventoryManager().Get(player).getItemCount(alt) > 0) { return true; } } return false; 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 7684c5f5d..b6becadc1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/HatGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/HatGadget.java @@ -46,9 +46,9 @@ public abstract class HatGadget extends OutfitGadget public void applyArmor(Player player, boolean message) { - _manager.removeGadgetType(player, GadgetType.MORPH, this); + Manager.removeGadgetType(player, GadgetType.MORPH, this); - _manager.removeOutfit(player, _slot); + Manager.removeOutfit(player, _slot); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ItemGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ItemGadget.java index 693bafc8f..82a685892 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ItemGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ItemGadget.java @@ -1,6 +1,5 @@ package mineplex.core.gadget.types; -import java.time.YearMonth; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; @@ -41,17 +40,7 @@ public abstract class ItemGadget extends Gadget _ammo = ammo; _recharge = recharge; - this._free = true; - } - - public ItemGadget(GadgetManager manager, String name, String[] desc, int cost, Material mat, byte data, - long recharge, Ammo ammo, YearMonth yearMonth) - { - super(manager, GadgetType.ITEM, name, desc, cost, mat, data, yearMonth); - - _ammo = ammo; - _recharge = recharge; - this._free = true; + Free = true; } public ItemGadget(GadgetManager manager, String name, String[] desc, int cost, Material mat, byte data, @@ -86,16 +75,16 @@ public abstract class ItemGadget extends Gadget public void ApplyItem(Player player, boolean inform) { - _manager.removeGadgetType(player, GadgetType.ITEM, this); + Manager.removeGadgetType(player, GadgetType.ITEM, this); _active.add(player); List itemLore = new ArrayList(); itemLore.addAll(Arrays.asList(getDescription())); itemLore.add(C.cBlack); - itemLore.add(C.cWhite + "Your Ammo : " + _manager.getInventoryManager().Get(player).getItemCount(getName())); + itemLore.add(C.cWhite + "Your Ammo : " + Manager.getInventoryManager().Get(player).getItemCount(getName())); - player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); if (inform) UtilPlayer.message(player, F.main("Gadget", "You equipped " + F.elem(getName()) + ".")); @@ -111,14 +100,14 @@ public abstract class ItemGadget extends Gadget final Player player = event.getPlayer(); - Bukkit.getScheduler().scheduleSyncDelayedTask(_manager.getPlugin(), new Runnable() + Bukkit.getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() { public void run() { if (player.isOnline()) { player.getInventory().remove(getDisplayMaterial()); - player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); UtilInv.Update(player); } } @@ -130,7 +119,7 @@ public abstract class ItemGadget extends Gadget { if (_active.remove(player)) { - player.getInventory().setItem(_manager.getActiveItemSlot(), null); + player.getInventory().setItem(Manager.getActiveItemSlot(), null); if (message) UtilPlayer.message(player, F.main("Gadget", "You unequipped " + F.elem(getName()) + ".")); @@ -167,7 +156,7 @@ public abstract class ItemGadget extends Gadget event.setCancelled(true); //Stock - if (!hasAmmo(player) && !_ammo.isFree()) + if (!hasAmmo(player)) { UtilPlayer.message(player, F.main("Gadget", "You do not have any " + getName() + " left.")); @@ -194,17 +183,16 @@ public abstract class ItemGadget extends Gadget return; } - if (!_ammo.isFree()) - _manager.getInventoryManager().addItemToInventory(player, getName(), -1); + Manager.getInventoryManager().addItemToInventory(player, getName(), -1); - player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); ActivateCustom(event.getPlayer()); } public boolean hasAmmo(Player player) { - return _manager.getInventoryManager().Get(player).getItemCount(getName()) > 0; + return Manager.getInventoryManager().Get(player).getItemCount(getName()) > 0; } public abstract void ActivateCustom(Player 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 f681fe3bd..ff08e8152 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MorphGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MorphGadget.java @@ -25,7 +25,7 @@ public abstract class MorphGadget extends Gadget public void applyArmor(Player player, boolean message) { - _manager.removeGadgetType(player, GadgetType.MORPH, this); + Manager.removeGadgetType(player, GadgetType.MORPH, this); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MusicGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MusicGadget.java index 5f8df9f09..708e5e5a6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MusicGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/MusicGadget.java @@ -51,7 +51,7 @@ public class MusicGadget extends Gadget return; } - if (!_manager.canPlaySongAt(player.getLocation())) + if (!Manager.canPlaySongAt(player.getLocation())) { UtilPlayer.message(player, F.main("Music", "There is already a song playing.")); return; 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 2ddae9ad4..6ce4d70b7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/OutfitGadget.java @@ -59,9 +59,9 @@ public abstract class OutfitGadget extends Gadget public void applyArmor(Player player, boolean message) { - _manager.removeGadgetType(player, GadgetType.MORPH, this); + Manager.removeGadgetType(player, GadgetType.MORPH, this); - _manager.removeOutfit(player, _slot); + Manager.removeOutfit(player, _slot); _active.add(player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ParticleGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ParticleGadget.java index 254b33003..01d6e22a8 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ParticleGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/ParticleGadget.java @@ -40,7 +40,7 @@ public abstract class ParticleGadget extends Gadget @Override public void enableCustom(Player player, boolean message) { - _manager.removeGadgetType(player, GadgetType.PARTICLE, this); + Manager.removeGadgetType(player, GadgetType.PARTICLE, this); _active.add(player); startEffect(player); if (message) @@ -62,7 +62,7 @@ public abstract class ParticleGadget extends Gadget if (UtilPlayer.isSpectator(player)) return false; - if (_manager.hideParticles()) + if (Manager.hideParticles()) return false; return true; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/WinEffectGadget.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/WinEffectGadget.java index 8d971d301..06d6d9475 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/WinEffectGadget.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/types/WinEffectGadget.java @@ -124,7 +124,7 @@ public abstract class WinEffectGadget extends Gadget // Loads gadgets back when players are teleported to the arcade hub, after the win effect for (Player player : UtilServer.getPlayers()) { - _manager.getUserGadgetPersistence().load(player); + Manager.getUserGadgetPersistence().load(player); } } } @@ -311,7 +311,7 @@ public abstract class WinEffectGadget extends Gadget profile.getProperties().putAll(((CraftPlayer) player).getHandle().getProfile().getProperties()); DisguisePlayer disguise = new DisguisePlayer(stand, profile); - _manager.getDisguiseManager().disguise(disguise); + Manager.getDisguiseManager().disguise(disguise); return disguise; } @@ -335,7 +335,7 @@ public abstract class WinEffectGadget extends Gadget profile.getProperties().put("textures", skinData.getProperty()); DisguisePlayer disguise = new DisguisePlayer(stand, profile); - _manager.getDisguiseManager().disguise(disguise); + Manager.getDisguiseManager().disguise(disguise); return disguise; } @@ -466,7 +466,7 @@ public abstract class WinEffectGadget extends Gadget */ protected String getRank(Player player) { - return _manager.getClientManager().Get(player).getRealOrDisguisedRank().getTag(true, true) + " " + C.Reset; + return Manager.getClientManager().Get(player).getRealOrDisguisedRank().getTag(true, true) + " " + C.Reset; } public int getGameTime() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/DragonMount.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/DragonMount.java index 3ab15c9f8..242e21dfa 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/DragonMount.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/DragonMount.java @@ -12,7 +12,7 @@ public class DragonMount extends Mount { super (manager, name, displayMaterial, displayData, desc, cost); - _knownPackage = false; + KnownPackage = false; } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/HorseMount.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/HorseMount.java index edb368243..f383958b4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/HorseMount.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/HorseMount.java @@ -36,7 +36,7 @@ public class HorseMount extends Mount> public HorseMount(MountManager manager, String name, String[] desc, Material displayMaterial, byte displayData, int cost, Color color, Style style, Variant variant, double jump, Material armor) { super (manager, name, displayMaterial, displayData, desc, cost); - _knownPackage = false; + KnownPackage = false; _color = color; _style = style; @@ -48,7 +48,7 @@ public class HorseMount extends Mount> public HorseMount(MountManager manager, String name, String[] desc, Material displayMaterial, byte displayData, int cost, Color color, Style style, Variant variant, double jump, Material armor, YearMonth yearMonth) { super (manager, name, displayMaterial, displayData, desc, cost, yearMonth); - _knownPackage = false; + KnownPackage = false; _color = color; _style = style; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountCart.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountCart.java index d9c605cc3..a1f9f5a5b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountCart.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountCart.java @@ -33,7 +33,7 @@ public class MountCart extends Mount> UtilText.splitLineToArray(C.cGray + "Cruise around town in your shiny new Minecart RX Turbo!", LineFormat.LORE), 15000); - _knownPackage = false; + KnownPackage = false; } public void enableCustom(Player player) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountSlime.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountSlime.java index 8bcc250ef..265601406 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountSlime.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountSlime.java @@ -34,7 +34,7 @@ public class MountSlime extends Mount> UtilText.splitLineToArray(C.cGray + "Bounce around on your very own slime friend!", LineFormat.LORE), 15000); - _knownPackage = false; + KnownPackage = false; } public void enableCustom(Player player) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/BlowAKissEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/BlowAKissEffect.java index e49e1e453..066521459 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/BlowAKissEffect.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/BlowAKissEffect.java @@ -23,7 +23,7 @@ public class BlowAKissEffect extends Effect public BlowAKissEffect(Player player, Location target, Gadget gadget) { - super(-1, new EffectLocation(player), gadget._manager.getPlugin()); + super(-1, new EffectLocation(player), gadget.Manager.getPlugin()); _gadget = gadget; _player = player; setTargetLocation(new EffectLocation(target)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/LoveDoctorEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/LoveDoctorEffect.java index 718816efc..85c293e6f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/LoveDoctorEffect.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/LoveDoctorEffect.java @@ -28,7 +28,7 @@ public class LoveDoctorEffect extends Effect public LoveDoctorEffect(Player player, Location target, Gadget gadget) { - super(-1, new EffectLocation(player), gadget._manager.getPlugin()); + super(-1, new EffectLocation(player), gadget.Manager.getPlugin()); _gadget = gadget; _player = player; setTargetLocation(new EffectLocation(target)); @@ -79,7 +79,7 @@ public class LoveDoctorEffect extends Effect HashMap players = UtilPlayer.getInRadius(loc, 9d); for (Player ent : players.keySet()) { - if (_gadget._manager.collideEvent(_player, _gadget, ent)) + if (_gadget.Manager.collideEvent(_player, _gadget, ent)) continue; double mult = players.get(ent); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/MetalManEffect.java b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/MetalManEffect.java index abb66a52c..d9382e15e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/MetalManEffect.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/particleeffects/MetalManEffect.java @@ -34,7 +34,7 @@ public class MetalManEffect extends Effect public MetalManEffect(Location location, Location target, int color, Gadget gadget, Player player) { - super(-1, new EffectLocation(player), gadget._manager.getPlugin()); + super(-1, new EffectLocation(player), gadget.Manager.getPlugin()); _color = color; _gadget = gadget; _player = player; @@ -105,7 +105,7 @@ public class MetalManEffect extends Effect HashMap players = UtilPlayer.getInRadius(loc, 9d); for (Player ent : players.keySet()) { - if (_gadget._manager.collideEvent(_player, _gadget, ent)) + if (_gadget.Manager.collideEvent(_player, _gadget, ent)) continue; double mult = players.get(ent); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetExtraSalesPackage.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetExtraSalesPackage.java index 91cd9e9d4..206e64a8f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetExtraSalesPackage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetExtraSalesPackage.java @@ -11,9 +11,9 @@ public class PetExtraSalesPackage extends SalesPackageBase public PetExtraSalesPackage(String name, Material material, int price) { super(name, material, (byte)0, new String[0]); - _currencyCostMap.put(GlobalCurrency.TREASURE_SHARD, price); + CurrencyCostMap.put(GlobalCurrency.TREASURE_SHARD, price); - _knownPackage = false; - _oneTimePurchaseOnly = false; + KnownPackage = false; + OneTimePurchaseOnly = false; } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetSalesPackage.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetSalesPackage.java index 84c606bc5..2189e1469 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetSalesPackage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/sales/PetSalesPackage.java @@ -14,8 +14,8 @@ public class PetSalesPackage extends SalesPackageBase public PetSalesPackage(PetType type, String tagName) { super(type.getName(), Material.MONSTER_EGG, (byte)type.getEntityType().getTypeId(), new String[0]); - _currencyCostMap.put(GlobalCurrency.TREASURE_SHARD, type.getPrice()); - _knownPackage = false; + CurrencyCostMap.put(GlobalCurrency.TREASURE_SHARD, type.getPrice()); + KnownPackage = false; setDisplayName(C.cGreen + "Purchase " + tagName); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/shop/item/SalesPackageBase.java b/Plugins/Mineplex.Core/src/mineplex/core/shop/item/SalesPackageBase.java index f17874141..9290244de 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/shop/item/SalesPackageBase.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/shop/item/SalesPackageBase.java @@ -1,29 +1,28 @@ package mineplex.core.shop.item; -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; - import mineplex.core.common.currency.GlobalCurrency; import mineplex.core.common.util.NautHashMap; import mineplex.core.donation.repository.GameSalesPackageToken; import mineplex.core.itemstack.ItemBuilder; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; public abstract class SalesPackageBase implements ICurrencyPackage, IDisplayPackage { private Material _displayMaterial; private byte _displayData; - protected String _name; - protected String _displayName; - protected String[] _description; - protected int _quantity; + protected String Name; + protected String DisplayName; + protected String[] Description; + protected int Quantity; - protected int _salesPackageId; - protected boolean _free; - protected NautHashMap _currencyCostMap; - protected boolean _knownPackage = true; - protected boolean _oneTimePurchaseOnly = true; + protected int SalesPackageId; + protected boolean Free; + protected NautHashMap CurrencyCostMap; + protected boolean KnownPackage = true; + protected boolean OneTimePurchaseOnly = true; public SalesPackageBase(String name, Material material, String...description) { @@ -42,46 +41,46 @@ public abstract class SalesPackageBase implements ICurrencyPackage, IDisplayPack public SalesPackageBase(String name, Material material, byte displayData, String[] description, int coins, int quantity) { - _currencyCostMap = new NautHashMap<>(); + CurrencyCostMap = new NautHashMap<>(); - _name = name; - _displayName = name; - _description = description; + Name = name; + DisplayName = name; + Description = description; _displayMaterial = material; _displayData = displayData; - _currencyCostMap.put(GlobalCurrency.TREASURE_SHARD, coins); - _quantity = quantity; + CurrencyCostMap.put(GlobalCurrency.TREASURE_SHARD, coins); + Quantity = quantity; } @Override public String getName() { - return _name; + return Name; } @Override public String[] getDescription() { - return _description; + return Description; } @Override public int getCost(GlobalCurrency currencyType) { - return _currencyCostMap.containsKey(currencyType) ? _currencyCostMap.get(currencyType) : 0; + return CurrencyCostMap.containsKey(currencyType) ? CurrencyCostMap.get(currencyType) : 0; } @Override public int getSalesPackageId() { - return _salesPackageId; + return SalesPackageId; } @Override public boolean isFree() { - return _free; + return Free; } @Override @@ -99,42 +98,42 @@ public abstract class SalesPackageBase implements ICurrencyPackage, IDisplayPack @Override public void update(GameSalesPackageToken token) { - _salesPackageId = token.GameSalesPackageId; - _free = token.Free; + SalesPackageId = token.GameSalesPackageId; + Free = token.Free; if (token.Gems > 0) { - _currencyCostMap.put(GlobalCurrency.GEM, token.Gems); + CurrencyCostMap.put(GlobalCurrency.GEM, token.Gems); } } public int getQuantity() { - return _quantity; + return Quantity; } public boolean isKnown() { - return _knownPackage; + return KnownPackage; } public boolean oneTimePurchase() { - return _oneTimePurchaseOnly; + return OneTimePurchaseOnly; } public String getDisplayName() { - return _displayName; + return DisplayName; } public void setDisplayName(String name) { - _displayName = name; + DisplayName = name; } public ItemStack buildIcon() { - return new ItemBuilder(_displayMaterial).setData(_displayData).setTitle(_displayName).addLore(_description).build(); + return new ItemBuilder(_displayMaterial).setData(_displayData).setTitle(DisplayName).addLore(Description).build(); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/ChestPackage.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/ChestPackage.java index 198eb3098..bd4162932 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/ChestPackage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/ChestPackage.java @@ -9,7 +9,7 @@ public class ChestPackage extends SalesPackageBase { super(name, mat, (byte) 0, new String[] {}, cost); - _knownPackage = false; - _oneTimePurchaseOnly = false; + KnownPackage = false; + OneTimePurchaseOnly = false; } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureKey.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureKey.java index bdf9748cc..30ef863f6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureKey.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureKey.java @@ -13,7 +13,7 @@ public class TreasureKey extends SalesPackageBase { super("Treasure Key", Material.TRIPWIRE_HOOK, (byte) 0, new String[] { ChatColor.RESET + "Used to open Treasure Chests" }, 1000); - _knownPackage = false; - _oneTimePurchaseOnly = false; + KnownPackage = false; + OneTimePurchaseOnly = false; } } diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/classes/SelectBullsChargeGoal.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/classes/SelectBullsChargeGoal.java index 0568d831c..bc31e43e6 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/classes/SelectBullsChargeGoal.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/classes/SelectBullsChargeGoal.java @@ -17,7 +17,7 @@ public class SelectBullsChargeGoal extends ObjectiveGoal { public SelectBullsChargeGoal(ClassesObjective objective) { - super(objective, "Open Class Manager", "Using the Class _manager, choose Bulls Charge for your Axe Skill"); + super(objective, "Open Class Manager", "Using the Class Manager, choose Bulls Charge for your Axe Skill"); } @Override diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java index 56c0e01c3..55e32d4bf 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java @@ -65,7 +65,7 @@ public class TextManager extends MiniPlugin UtilBlockText.MakeText("CAPTURE THE FLAG", locComp.clone().add(16, 28, 0), faceComp, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); // UtilBlockText.MakeText("CLANS", locComp.clone().add(15, 28, 0), faceComp, 159, (byte)14, TextAlign.CENTER); -// UtilBlockText.MakeText("CLANS", locComp.clone().add(16, 28, 0), faceComp, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); +// UtilBlockText.MakeText("CLANS", locComp.clone().add(16, 28, 0), faceComp, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); //Arcade UtilBlockText.MakeText("ARCADE", locArcade, faceArcade, 159, (byte)5, TextAlign.CENTER); @@ -115,13 +115,13 @@ public class TextManager extends MiniPlugin return; UtilText.MakeText(GetArcadeText(0), locArcade.clone().add(0, 14, 15), faceArcade, 159, (byte)4, TextAlign.CENTER); - UtilText.MakeText(GetArcadeText(0), locArcade.clone().add(0, 14, 16), faceArcade, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); + UtilText.MakeText(GetArcadeText(0), locArcade.clone().add(0, 14, 16), faceArcade, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); UtilText.MakeText(GetArcadeText(1), locArcade.clone().add(0, 21, 15), faceArcade, 159, (byte)1, TextAlign.CENTER); - UtilText.MakeText(GetArcadeText(1), locArcade.clone().add(0, 21, 16), faceArcade, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); + UtilText.MakeText(GetArcadeText(1), locArcade.clone().add(0, 21, 16), faceArcade, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); UtilText.MakeText(GetArcadeText(2), locArcade.clone().add(0, 28, 15), faceArcade, 159, (byte)14, TextAlign.CENTER); - UtilText.MakeText(GetArcadeText(2), locArcade.clone().add(0, 28, 16), faceArcade, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); + UtilText.MakeText(GetArcadeText(2), locArcade.clone().add(0, 28, 16), faceArcade, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); arcadeIndex = (arcadeIndex + 3)%arcadeGames.length; } @@ -149,13 +149,13 @@ public class TextManager extends MiniPlugin if (smashIndex == 1) color = 0; //UtilText.MakeText("SUPER SMASH MOBS", locOther, faceOther, 159, color, TextAlign.CENTER); - //UtilText.MakeText("SUPER SMASH MOBS", locOther.clone().add(0, 0, -1), faceOther, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); + //UtilText.MakeText("SUPER SMASH MOBS", locOther.clone().add(0, 0, -1), faceOther, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); UtilText.MakeText("SUPER SMASH MOBS", locClassics.clone().add(0, 14, -15), faceOther, 159, color, TextAlign.CENTER); - UtilText.MakeText("SUPER SMASH MOBS", locClassics.clone().add(0, 14, -16), faceOther, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); + UtilText.MakeText("SUPER SMASH MOBS", locClassics.clone().add(0, 14, -16), faceOther, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); UtilText.MakeText("DOMINATE", locComp.clone().add(15, 14, 0), faceComp, 159, color, TextAlign.CENTER); - UtilText.MakeText("DOMINATE", locComp.clone().add(16, 14, 0), faceComp, (Manager.Type == HubType.Halloween) ? 89 : 159, (_manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); + UtilText.MakeText("DOMINATE", locComp.clone().add(16, 14, 0), faceComp, (Manager.Type == HubType.Halloween) ? 89 : 159, (Manager.Type == HubType.Halloween) ? (byte)0 : (byte)15, TextAlign.CENTER); //System.out.println("TextCreator : " + (System.currentTimeMillis() - startTime) + "ms"); } */ diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/ItemSalesPackage.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/ItemSalesPackage.java index 0e9da60d7..3ce30af02 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/ItemSalesPackage.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/ItemSalesPackage.java @@ -10,8 +10,8 @@ public class ItemSalesPackage extends SalesPackageBase public ItemSalesPackage(Item item) { super("Champions " + item.GetName(), Material.BOOK, (byte)0, item.GetDesc(), item.GetGemCost()); - _free = item.isFree(); - _knownPackage = false; - _currencyCostMap.put(GlobalCurrency.GEM, item.GetGemCost()); + Free = item.isFree(); + KnownPackage = false; + CurrencyCostMap.put(GlobalCurrency.GEM, item.GetGemCost()); } } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/SkillSalesPackage.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/SkillSalesPackage.java index 54b3a181b..420427e31 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/SkillSalesPackage.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/salespackage/SkillSalesPackage.java @@ -10,8 +10,8 @@ public class SkillSalesPackage extends SalesPackageBase public SkillSalesPackage(ISkill skill) { super("Champions " + skill.GetName(), Material.BOOK, (byte)0, skill.GetDesc(0), skill.GetGemCost()); - _free = skill.IsFree(); - _knownPackage = false; - _currencyCostMap.put(GlobalCurrency.GEM, skill.GetGemCost()); + Free = skill.IsFree(); + KnownPackage = false; + CurrencyCostMap.put(GlobalCurrency.GEM, skill.GetGemCost()); } } diff --git a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/condition/ConditionFactory.java b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/condition/ConditionFactory.java index 10dde2ab1..fcfa571e1 100644 --- a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/condition/ConditionFactory.java +++ b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/condition/ConditionFactory.java @@ -194,7 +194,7 @@ public class ConditionFactory public Condition Vulnerable(String reason, LivingEntity ent, LivingEntity source, double duration, int mult, boolean extend, boolean showIndicator, boolean ambient) { - return Manager.AddCondition(new Vulnerability(_manager, reason, ent, source, + return Manager.AddCondition(new Vulnerability(Manager, reason, ent, source, ConditionType.WITHER, mult, (int)(20 * duration), extend, Material.BONE, (byte)0, showIndicator, ambient)); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/event/EventGame.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/event/EventGame.java index 12e28e680..68767903c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/event/EventGame.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/event/EventGame.java @@ -853,7 +853,7 @@ public class EventGame extends Game } if(command.contentEquals("[EFFECT]")) { - //Manager.GetEventModule().commandEffect(_manager.GetGameHostManager().getHost(), commandArgs, varMap.get(1)); + //Manager.GetEventModule().commandEffect(Manager.GetGameHostManager().getHost(), commandArgs, varMap.get(1)); for(Player player : varMap.get(1)) { player.addPotionEffect(new PotionEffect(PotionEffectType.getByName(args[2]), Integer.parseInt(args[3].split(" ")[0]), Integer.parseInt(args[3].split(" ")[1]))); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSkeleton.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSkeleton.java index 70be9fded..d4831cbbb 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSkeleton.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSkeleton.java @@ -70,7 +70,7 @@ public class KitSkeleton // { // event.setCancelled(true); // -// Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(_manager.getPlugin(), new Runnable() +// Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() // { // @Override // public void run() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSnowman.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSnowman.java index 13be5a6cb..fcf33d0aa 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSnowman.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/KitSnowman.java @@ -70,7 +70,7 @@ public class KitSnowman // { // event.setCancelled(true); // -// Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(_manager.getPlugin(), new Runnable() +// Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() // { // @Override // public void run() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java index bc49dd5b9..5d63023a5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDestructor.java @@ -230,7 +230,7 @@ public class PerkDestructor extends Perk // @EventHandler // public void collide(PlayerTeleportEvent event) // { -// if (Manager.GetGame() == null || !_manager.GetGame().IsLive()) +// if (Manager.GetGame() == null || !Manager.GetGame().IsLive()) // return; // // if (event.getCause() != TeleportCause.ENDER_PEARL) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidRifle.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidRifle.java index 78714db86..0157bf271 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidRifle.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidRifle.java @@ -89,7 +89,7 @@ public class PerkSquidRifle extends Perk implements IThrown //_fireworks.put(fw, vel); //Projectile - //Manager.GetProjectile().AddThrow(fw, player, this, -1, true, true, true, 3d, _manager.GetDisguise()); + //Manager.GetProjectile().AddThrow(fw, player, this, -1, true, true, true, 3d, Manager.GetDisguise()); } catch (Exception e) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidShotgun.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidShotgun.java index cea32dd65..797468967 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidShotgun.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidShotgun.java @@ -96,7 +96,7 @@ public class PerkSquidShotgun extends Perk implements IThrown //_fireworks.put(fw, vel); //Projectile - //Manager.GetProjectile().AddThrow(fw, player, this, -1, true, true, true, 3d, _manager.GetDisguise()); + //Manager.GetProjectile().AddThrow(fw, player, this, -1, true, true, true, 3d, Manager.GetDisguise()); } catch (Exception e) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidSniper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidSniper.java index c4d864c88..96b38e418 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidSniper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSquidSniper.java @@ -89,7 +89,7 @@ public class PerkSquidSniper extends Perk implements IThrown //_fireworks.put(fw, vel); //Projectile - //Manager.GetProjectile().AddThrow(fw, player, this, -1, true, true, true, 3d, _manager.GetDisguise()); + //Manager.GetProjectile().AddThrow(fw, player, this, -1, true, true, true, 3d, Manager.GetDisguise()); } catch (Exception e) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/shop/KitPackage.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/shop/KitPackage.java index 5a8c75f54..6fbea37dc 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/shop/KitPackage.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/shop/KitPackage.java @@ -9,7 +9,7 @@ public class KitPackage extends SalesPackageBase public KitPackage(String gameName, Kit kit) { super(gameName + " " + kit.GetName(), kit.getDisplayMaterial(), kit.GetDesc()); - _knownPackage = false; - _currencyCostMap.put(GlobalCurrency.GEM, kit.GetCost()); + KnownPackage = false; + CurrencyCostMap.put(GlobalCurrency.GEM, kit.GetCost()); } } From ed39d5daa72f6be73c36358e051c9cd6e45b7c31 Mon Sep 17 00:00:00 2001 From: LCastr0 Date: Fri, 31 Mar 2017 01:16:30 -0300 Subject: [PATCH 115/133] Reverted rename --- .../core/gadget/gadgets/item/ItemBubbleBlaster.java | 7 ++----- .../core/gadget/gadgets/particle/ParticleWingsBee.java | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java index ff0ba75ed..525cabf58 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/item/ItemBubbleBlaster.java @@ -1,8 +1,6 @@ package mineplex.core.gadget.gadgets.item; import java.awt.Color; -import java.time.Month; -import java.time.YearMonth; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -42,8 +40,7 @@ public class ItemBubbleBlaster extends ItemGadget public ItemBubbleBlaster(GadgetManager manager) { super(manager, "Bubble Blaster", UtilText.splitLinesToArray(new String[]{C.cGray + "Placeholder"}, LineFormat.LORE), - -14, Material.DIAMOND_BARDING, (byte) 0, 5000, new Ammo("Bubble", "Bubble", Material.DIAMOND_BARDING, (byte) 0, new String[]{C.cGray + "Placeholder"}, -5, 1), - YearMonth.of(2017, Month.APRIL)); + -14, Material.DIAMOND_BARDING, (byte) 0, 5000, new Ammo("Bubble", "Bubble", Material.DIAMOND_BARDING, (byte) 0, new String[]{C.cGray + "Placeholder"}, -5, 1)); } @Override @@ -78,7 +75,7 @@ public class ItemBubbleBlaster extends ItemGadget event.setCancelled(true); - player.getInventory().setItem(_manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(_manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); + player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, F.item(Manager.getInventoryManager().Get(player).getItemCount(getName()) + " " + getName()))); // TODO CHANGE COLOR IF RAINBOW // TODO COOLDOWN AFTER MAX OF 5 SECONDS HOLDING diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java index 7d25d438e..b413766e1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleWingsBee.java @@ -36,7 +36,7 @@ public class ParticleWingsBee extends ParticleGadget public void playParticle(Player player, UpdateEvent event) { Location loc = player.getLocation().add(0, 1, 0).add(player.getLocation().getDirection().multiply(-0.4)); - if (_manager.isMoving(player)) + if (Manager.isMoving(player)) { if (event.getType() == UpdateType.TICK) { From 10a1f71558ba698443fc89612ec6ef6b1790bdc7 Mon Sep 17 00:00:00 2001 From: Alexander Meech Date: Thu, 30 Mar 2017 01:54:07 -0400 Subject: [PATCH 116/133] Add RustyDawgT to featured creators --- .../Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java index 0c261460c..06f1d69b4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java @@ -190,6 +190,7 @@ public class BonusManager extends MiniClientPlugin implements I { _youtubers.add(Pair.create("Sigils", "https://www.youtube.com/user/SigilsPlaysGames?sub_confirmation=1")); _youtubers.add(Pair.create("SallyGreenGamer", "https://www.youtube.com/channel/UCt8eypdLUND5CBvgXzEZrxw?sub_confirmation=1")); + _youtubers.add(Pair.create("RustyDawgT", "https://www.youtube.com/user/RustyDawgT?sub_confirmation=1")); } _youtubers.add(Pair.create("SamitoD", "https://www.youtube.com/user/SamitoD?sub_confirmation=1")); @@ -248,6 +249,7 @@ public class BonusManager extends MiniClientPlugin implements I { _youtubers.add(Pair.create("Sigils", "https://www.youtube.com/user/SigilsPlaysGames?sub_confirmation=1")); _youtubers.add(Pair.create("SallyGreenGamer", "https://www.youtube.com/channel/UCt8eypdLUND5CBvgXzEZrxw?sub_confirmation=1")); + _youtubers.add(Pair.create("RustyDawgT", "https://www.youtube.com/user/RustyDawgT?sub_confirmation=1")); } _youtubers.add(Pair.create("SamitoD", "https://www.youtube.com/user/SamitoD?sub_confirmation=1")); From 03d781ca7099ab727ae40a9e156a93bbc15653c8 Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 19 Mar 2017 23:07:28 +0000 Subject: [PATCH 117/133] It be April fools matey, walk yee plank --- .../src/mineplex/core/common/Rank.java | 5 + .../core/aprilfools/AprilFoolsManager.java | 306 ++++++++---------- .../src/mineplex/game/clans/Clans.java | 3 + .../src/mineplex/clanshub/ClansHub.java | 2 +- .../Mineplex.Hub/src/mineplex/hub/Hub.java | 2 +- .../src/mineplex/hub/HubManager.java | 9 +- .../src/nautilus/game/arcade/Arcade.java | 3 + .../game/arcade/game/games/draw/Draw.java | 4 + .../arcade/managers/chat/GameChatManager.java | 3 +- .../src/mineplex/gemhunters/GemHunters.java | 7 +- .../mineplex/gemhunters/chat/ChatModule.java | 2 +- 11 files changed, 167 insertions(+), 179 deletions(-) diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/Rank.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/Rank.java index aef681107..6871107bb 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/Rank.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/Rank.java @@ -72,6 +72,11 @@ public enum Rank return _description; } + public void setName(String name) + { + Name = name; + } + public String getRawTag() { if (Name.equalsIgnoreCase("ALL")) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java index 6507b48d6..7421927d5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java @@ -1,203 +1,181 @@ package mineplex.core.aprilfools; -import java.util.Calendar; - -import org.bukkit.Sound; -import org.bukkit.entity.Player; +import com.google.common.collect.ImmutableMap; +import mineplex.core.MiniPlugin; +import mineplex.core.common.Rank; +import mineplex.core.common.util.UtilTextMiddle; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.plugin.java.JavaPlugin; -import mineplex.core.MiniPlugin; -import mineplex.core.account.CoreClientManager; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilServer; -import mineplex.core.common.util.UtilTextMiddle; -import mineplex.core.disguise.DisguiseManager; -import mineplex.core.disguise.disguises.DisguiseCow; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; +import java.util.Map; public class AprilFoolsManager extends MiniPlugin { - public static AprilFoolsManager Instance; - + + private static final Map CHAT_REPLACEMENTS = ImmutableMap.builder() + .put("you", "ye") + .put("yes", "aye") + .put("hello", "ahoy") + .put("hey", "ahoy") + .put("hi", "ahoy") + .put("friend", "matey") + .put("friends", "mateys") + .put("chest", "booty") + .put("sword", "cutlass") + .put("my", "me") + .put("dog", "seadog") + .put("dead", "shark bait") + .put("hack", "scurvy") + .put("hacks", "scurvy") + .put("hax", "scurvy") + .put("haks", "scurvy") + .put("owner", "captain") + .put("leader", "captain") + .put("lt", "captain") + .put("dev", "firstmate") + .put("developer", "firstmate") + .put("admin", "firstmate") + .build(); + private static final Map RANK_REPLACEMENTS = ImmutableMap.builder() + .put(Rank.ETERNAL, "Captain") + .put(Rank.TITAN, "FirstMate") + .put(Rank.LEGEND, "Boatswain") + .put(Rank.HERO, "Gunner") + .put(Rank.ULTRA, "Parrot") + .put(Rank.ALL, "Seadog") + .build(); + + private static AprilFoolsManager _instance; + private boolean _enabled; - private DisguiseManager _disguiseManager; - private CoreClientManager _clientManager; - - protected AprilFoolsManager(JavaPlugin plugin, CoreClientManager clientManager, DisguiseManager disguiseManager) + + public AprilFoolsManager() { - super("April Fools", plugin); - - _disguiseManager = disguiseManager; - _clientManager = clientManager; - - Calendar c = Calendar.getInstance(); - _enabled = (c.get(Calendar.MONTH) == Calendar.APRIL && c.get(Calendar.DAY_OF_MONTH) == 1); - } - - public static void Initialize(JavaPlugin plugin, CoreClientManager clientManager, DisguiseManager disguiseManager) - { - Instance = new AprilFoolsManager(plugin, clientManager, disguiseManager); + super("April Fools"); + + _instance = this; + _enabled = true; + + if (_enabled) + { + for (Map.Entry entry : RANK_REPLACEMENTS.entrySet()) + { + entry.getKey().setName(entry.getValue()); + } + } } - @EventHandler - public void updateEnabled(UpdateEvent event) - { - if (event.getType() != UpdateType.SLOW) - return; - - Calendar c = Calendar.getInstance(); - _enabled = (c.get(Calendar.MONTH) == Calendar.APRIL && c.get(Calendar.DAY_OF_MONTH) == 1); - } - - @EventHandler(priority = EventPriority.LOW) - public void chatAdd(AsyncPlayerChatEvent event) + @EventHandler(priority = EventPriority.LOWEST) + public void chat(AsyncPlayerChatEvent event) { if (!_enabled) - return; - - String[] words = event.getMessage().split(" "); - - String out = ""; - for (String word : words) { - //Prefix - if (Math.random() > 0.85) + return; + } + + String message = event.getMessage(); + String pirateMessage = ""; + + for (String word : message.split(" ")) + { + String wordLower = word.toLowerCase(); + + if (CHAT_REPLACEMENTS.containsKey(wordLower)) { - out += "moo"; - - for (int i=0 ; i 0.85) - { - out += word + " "; - - out += "moo"; - - for (int i=0 ; i 0.99) - { - out += "moo"; - - for (int i=3 ; i 0.85) { - if (_disguiseManager.getDisguise(player) != null) + pirateMessage += "matey!"; + } + else if (random > 0.7) + { + String ar = "ar"; + + for (int i = 0; i < 10; i++) { - //Moo - if (Math.random() > 0.8) + if (Math.random() > 0.75) { - if (_disguiseManager.getDisguise(player) instanceof DisguiseCow) - { - player.getWorld().playSound(player.getLocation(), Sound.COW_IDLE, (float)Math.random() + 0.5f, (float)Math.random() + 0.5f); - } + break; } - - continue; + + ar += "r"; } - //Disguise - DisguiseCow disguise = new DisguiseCow(player); - disguise.setName(getName(player), _clientManager.Get(player).GetRank()); - disguise.setCustomNameVisible(true); - _disguiseManager.disguise(disguise); + pirateMessage += "a" + ar + "gh"; } - } - - public boolean isActive() - { - return _enabled; - } - - public String getName(Player player) - { - //Name - int index = 0; - boolean hitVowel = false; - for (int i=0 ; i 0.55) { - //Detect vowel ;o - if (player.getName().toLowerCase().charAt(i) == 'a' || - player.getName().toLowerCase().charAt(i) == 'e' || - player.getName().toLowerCase().charAt(i) == 'i' || - player.getName().toLowerCase().charAt(i) == 'o' || - player.getName().toLowerCase().charAt(i) == 'u') - { - hitVowel = true; - } - //Post vowel consonant - stop here - else if (hitVowel) - { - break; - } - - index = i+1; + pirateMessage += "scallywag"; } - String name = "Moo" + player.getName().substring(index, player.getName().length()); - - if (name.length() > 16) - name = name.substring(0, 16); - - return name; + event.setMessage(pirateMessage.trim()); } - public void setEnabled(boolean b) + @EventHandler + public void updateRandomMessage(UpdateEvent event) { - Calendar c = Calendar.getInstance(); - _enabled = b && (c.get(Calendar.MONTH) == Calendar.APRIL && c.get(Calendar.DAY_OF_MONTH) == 1); + if (!_enabled || event.getType() != UpdateType.SLOW) + { + return; + } + + String message = null; + double random = Math.random(); + + if (random > 0.99) + { + message = "Eye Eye Captain!"; + } + else if (random > 0.98) + { + message = "Arggggggh"; + } + else if (random > 0.97) + { + message = "Mateyy"; + } + + if (message == null) + { + return; + } + + UtilTextMiddle.display("", message, 10, 40, 10); + } + + public void setEnabled(boolean enabled) + { + _enabled = enabled; + } + + public static AprilFoolsManager getInstance() + { + if (_instance == null) + { + _instance = new AprilFoolsManager(); + } + + return _instance; } } 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 8df0e0df1..8bddf656b 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java @@ -1,5 +1,6 @@ package mineplex.game.clans; +import mineplex.core.aprilfools.AprilFoolsManager; import net.minecraft.server.v1_8_R3.MinecraftServer; import org.bukkit.Bukkit; @@ -265,6 +266,8 @@ public class Clans extends JavaPlugin require(TwoFactorAuth.class); + AprilFoolsManager.getInstance(); + // Disable spigot item merging for (World world : getServer().getWorlds()) { diff --git a/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/ClansHub.java b/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/ClansHub.java index 7f10bdfca..e0997337b 100644 --- a/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/ClansHub.java +++ b/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/ClansHub.java @@ -166,7 +166,7 @@ public class ClansHub extends JavaPlugin new ResourcePackManager(this, portal); new GlobalPacketManager(this, clientManager, serverStatusManager, inventoryManager, donationManager, petManager, statsManager, hubManager.getBonusManager().getRewardManager()); - AprilFoolsManager.Initialize(this, clientManager, disguiseManager); + AprilFoolsManager.getInstance(); new EternalGiveawayManager(this, clientManager, serverStatusManager); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java index 1269d0ed9..55f7b7b97 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java @@ -199,7 +199,7 @@ public class Hub extends JavaPlugin implements IRelation new SnapshotPlugin(this, snapshotManager, clientManager); new ReportPlugin(this, reportManager); - AprilFoolsManager.Initialize(this, clientManager, disguiseManager); + AprilFoolsManager.getInstance(); new EternalGiveawayManager(this, clientManager, serverStatusManager); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java index 8ac9b1e7c..b4a945508 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java @@ -610,20 +610,13 @@ public class HubManager extends MiniClientPlugin implements IChatMess Player player = event.getPlayer(); String playerName = player.getName(); - - // April Fools - if (AprilFoolsManager.Instance.isActive()) - playerName = AprilFoolsManager.Instance.getName(player); - Rank rank = GetClients().Get(player).getRealOrDisguisedRank(); //Level Prefix String levelStr = _achievementManager.getMineplexLevel(player, rank); //Rank Prefix - String rankStr = ""; - if (rank != Rank.ALL) - rankStr = rank.getTag(true, true) + " "; + String rankStr = rank.getTag(true, true); //Party Chat if (event.getMessage().charAt(0) == '@') { 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 302603df5..82081472c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java @@ -3,6 +3,7 @@ package nautilus.game.arcade; import java.io.File; import java.util.HashMap; +import mineplex.core.aprilfools.AprilFoolsManager; import net.minecraft.server.v1_8_R3.MinecraftServer; import org.bukkit.Bukkit; @@ -202,6 +203,8 @@ public class Arcade extends JavaPlugin require(TwoFactorAuth.class); new WebsiteLinkManager(this, _clientManager); + AprilFoolsManager.getInstance(); + //Updates getServer().getScheduler().scheduleSyncRepeatingTask(this, new Updater(this), 1, 1); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java index 457fcb5ce..2d38a6528 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java @@ -8,6 +8,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; +import mineplex.core.aprilfools.AprilFoolsManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; @@ -233,6 +234,8 @@ public class Draw extends SoloGame .setGiveCompassToSpecs(true) .setGiveCompassToAlive(false) .register(this); + + AprilFoolsManager.getInstance().setEnabled(false); } @Override @@ -1004,6 +1007,7 @@ public class Draw extends SoloGame if (player.isOnline()) AddGems(player, 10, "Participation", false, false); + AprilFoolsManager.getInstance().setEnabled(true); SetState(GameState.End); AnnounceEnd(places); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/chat/GameChatManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/chat/GameChatManager.java index 11fa85b5c..047e69531 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/chat/GameChatManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/chat/GameChatManager.java @@ -111,8 +111,7 @@ public class GameChatManager implements Listener } else { - if (rank != Rank.ALL) - rankStr = rank.getTag(true, true) + " " + C.Reset; + rankStr = rank.getTag(true, true) + " " + C.Reset; } //Party Chat diff --git a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java index f8dcac176..f6f2cee55 100644 --- a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java +++ b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/GemHunters.java @@ -1,5 +1,6 @@ package mineplex.gemhunters; +import mineplex.core.aprilfools.AprilFoolsManager; import net.minecraft.server.v1_8_R3.MinecraftServer; import org.bukkit.Bukkit; @@ -294,8 +295,10 @@ public class GemHunters extends JavaPlugin new WorldListeners(this); new TimeCycle(this); new UndergroundMobs(this); - new DebugListeners(this); - + new DebugListeners(this); + + AprilFoolsManager.getInstance(); + // UpdateEvent!!! new Updater(this); diff --git a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/chat/ChatModule.java b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/chat/ChatModule.java index 02e210ff5..5d0c9e4a8 100644 --- a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/chat/ChatModule.java +++ b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/chat/ChatModule.java @@ -62,7 +62,7 @@ public class ChatModule extends MiniPlugin String playerName = player.getName(); Rank rank = _clientManager.Get(player).getRealOrDisguisedRank(); - String rankString = rank == Rank.ALL ? "" : rank.getTag(true, true); + String rankString = rank.getTag(true, true); // Create a message that follows the rest of the network's chat format String message = (rankString + " " + C.cYellow + playerName + " "); From 66cea341a5f3fe33b1ac97b1b99927b6433c9ab5 Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 19 Mar 2017 23:32:02 +0000 Subject: [PATCH 118/133] Use regex and remove "g" --- .../core/aprilfools/AprilFoolsManager.java | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java index 7421927d5..320130474 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java @@ -3,12 +3,14 @@ package mineplex.core.aprilfools; import com.google.common.collect.ImmutableMap; import mineplex.core.MiniPlugin; import mineplex.core.common.Rank; +import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTextMiddle; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.jcp.xml.dsig.internal.dom.Utils; import java.util.Map; @@ -24,14 +26,27 @@ public class AprilFoolsManager extends MiniPlugin .put("friend", "matey") .put("friends", "mateys") .put("chest", "booty") + .put("chests", "booty") + .put("treasure", "booty") + .put("shards", "riches") .put("sword", "cutlass") .put("my", "me") + .put("gold", "dubloon") .put("dog", "seadog") - .put("dead", "shark bait") + .put("die", "walk the plank") + .put("boat", "ship") + .put("drink", "grog") + .put("water", "grog") + .put("flag", "jolly roger") + .put("am", "be") + .put("girl", "lass") + .put("woman", "lass") + .put("noob", "shark bait") .put("hack", "scurvy") .put("hacks", "scurvy") .put("hax", "scurvy") .put("haks", "scurvy") + .put("hacker", "") .put("owner", "captain") .put("leader", "captain") .put("lt", "captain") @@ -45,12 +60,12 @@ public class AprilFoolsManager extends MiniPlugin .put(Rank.LEGEND, "Boatswain") .put(Rank.HERO, "Gunner") .put(Rank.ULTRA, "Parrot") - .put(Rank.ALL, "Seadog") .build(); private static AprilFoolsManager _instance; private boolean _enabled; + private boolean _enabledTitle; public AprilFoolsManager() { @@ -58,6 +73,7 @@ public class AprilFoolsManager extends MiniPlugin _instance = this; _enabled = true; + _enabledTitle = UtilServer.isHubServer() || UtilServer.isTestServer(); if (_enabled) { @@ -82,6 +98,7 @@ public class AprilFoolsManager extends MiniPlugin for (String word : message.split(" ")) { String wordLower = word.toLowerCase(); + wordLower = wordLower.replaceAll("[^a-zA-Z0-9]", ""); if (CHAT_REPLACEMENTS.containsKey(wordLower)) { @@ -98,6 +115,11 @@ public class AprilFoolsManager extends MiniPlugin } else { + if (word.length() > 1 && wordLower.charAt(wordLower.length() - 1) == 'g') + { + word = word.substring(0, word.length() - 2); + } + pirateMessage += word + " "; } } @@ -135,7 +157,7 @@ public class AprilFoolsManager extends MiniPlugin @EventHandler public void updateRandomMessage(UpdateEvent event) { - if (!_enabled || event.getType() != UpdateType.SLOW) + if (!_enabledTitle || event.getType() != UpdateType.SLOW) { return; } From 4c882ae4a8db0cba312d6367c72947c2880a45c3 Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 19 Mar 2017 23:34:33 +0000 Subject: [PATCH 119/133] Fix chat handling elsewhere --- .../src/mineplex/core/aprilfools/AprilFoolsManager.java | 1 - Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java | 4 +++- .../src/nautilus/game/arcade/game/games/draw/Draw.java | 4 ---- .../src/mineplex/gemhunters/chat/ChatModule.java | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java index 320130474..37172c055 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java @@ -10,7 +10,6 @@ import mineplex.core.updater.event.UpdateEvent; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.jcp.xml.dsig.internal.dom.Utils; import java.util.Map; diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java index b4a945508..c01ec5d2b 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java @@ -616,7 +616,9 @@ public class HubManager extends MiniClientPlugin implements IChatMess String levelStr = _achievementManager.getMineplexLevel(player, rank); //Rank Prefix - String rankStr = rank.getTag(true, true); + String rankStr = ""; + if (rank != Rank.ALL) + rankStr = rank.getTag(true, true) + " "; //Party Chat if (event.getMessage().charAt(0) == '@') { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java index 2d38a6528..457fcb5ce 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java @@ -8,7 +8,6 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; -import mineplex.core.aprilfools.AprilFoolsManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; @@ -234,8 +233,6 @@ public class Draw extends SoloGame .setGiveCompassToSpecs(true) .setGiveCompassToAlive(false) .register(this); - - AprilFoolsManager.getInstance().setEnabled(false); } @Override @@ -1007,7 +1004,6 @@ public class Draw extends SoloGame if (player.isOnline()) AddGems(player, 10, "Participation", false, false); - AprilFoolsManager.getInstance().setEnabled(true); SetState(GameState.End); AnnounceEnd(places); } diff --git a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/chat/ChatModule.java b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/chat/ChatModule.java index 5d0c9e4a8..02e210ff5 100644 --- a/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/chat/ChatModule.java +++ b/Plugins/mineplex-game-gemhunters/src/mineplex/gemhunters/chat/ChatModule.java @@ -62,7 +62,7 @@ public class ChatModule extends MiniPlugin String playerName = player.getName(); Rank rank = _clientManager.Get(player).getRealOrDisguisedRank(); - String rankString = rank.getTag(true, true); + String rankString = rank == Rank.ALL ? "" : rank.getTag(true, true); // Create a message that follows the rest of the network's chat format String message = (rankString + " " + C.cYellow + playerName + " "); From e74486c1bc92f15334350181992ac9bfc00c2ed7 Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 20 Mar 2017 00:13:23 +0000 Subject: [PATCH 120/133] Add even more priate speak --- .../core/aprilfools/AprilFoolsManager.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java index 37172c055..885b37691 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java @@ -36,10 +36,18 @@ public class AprilFoolsManager extends MiniPlugin .put("boat", "ship") .put("drink", "grog") .put("water", "grog") + .put("dirt", "flith") .put("flag", "jolly roger") .put("am", "be") + .put("are", "be") + .put("your", "yer") .put("girl", "lass") .put("woman", "lass") + .put("hell", "davy jones' locker") + .put("nether", "davy jones' locker") + .put("of", "o'") + .put("reward", "bounty") + .put("prize", "bounty") .put("noob", "shark bait") .put("hack", "scurvy") .put("hacks", "scurvy") @@ -114,9 +122,14 @@ public class AprilFoolsManager extends MiniPlugin } else { - if (word.length() > 1 && wordLower.charAt(wordLower.length() - 1) == 'g') + if (wordLower.length() > 1 && wordLower.charAt(wordLower.length() - 1) == 'g') { - word = word.substring(0, word.length() - 2); + int g = word.lastIndexOf('g'); + char[] chars = word.toCharArray(); + + chars[g] = '\''; + + word = String.valueOf(chars); } pirateMessage += word + " "; @@ -174,7 +187,7 @@ public class AprilFoolsManager extends MiniPlugin } else if (random > 0.97) { - message = "Mateyy"; + message = "Mateyy!"; } if (message == null) From 52323f61199f1c763ca863e16b6841dcc8ad22c4 Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 20 Mar 2017 00:35:54 +0000 Subject: [PATCH 121/133] Add more replacement words --- .../src/mineplex/core/aprilfools/AprilFoolsManager.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java index 885b37691..eb6541de7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java @@ -48,12 +48,16 @@ public class AprilFoolsManager extends MiniPlugin .put("of", "o'") .put("reward", "bounty") .put("prize", "bounty") + .put("shoot", "fire in the hole") + .put("clumsy", "landlubber") + .put("clean", "swab") + .put("look", "avast ye") .put("noob", "shark bait") .put("hack", "scurvy") .put("hacks", "scurvy") .put("hax", "scurvy") .put("haks", "scurvy") - .put("hacker", "") + .put("hacker", "scurvy") .put("owner", "captain") .put("leader", "captain") .put("lt", "captain") From 4b22355348bf1eb9209497785fc4068fd10f5dc9 Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 20 Mar 2017 23:43:35 +0000 Subject: [PATCH 122/133] Add more fun stuff --- .../core/aprilfools/AprilFoolsManager.java | 17 ++++++- .../aprilfools/command/PirateSongCommand.java | 48 +++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/aprilfools/command/PirateSongCommand.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java index eb6541de7..7faa06b6d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java @@ -2,6 +2,7 @@ package mineplex.core.aprilfools; import com.google.common.collect.ImmutableMap; import mineplex.core.MiniPlugin; +import mineplex.core.aprilfools.command.PirateSongCommand; import mineplex.core.common.Rank; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTextMiddle; @@ -33,6 +34,7 @@ public class AprilFoolsManager extends MiniPlugin .put("gold", "dubloon") .put("dog", "seadog") .put("die", "walk the plank") + .put("kill", "keelhaul") .put("boat", "ship") .put("drink", "grog") .put("water", "grog") @@ -52,6 +54,9 @@ public class AprilFoolsManager extends MiniPlugin .put("clumsy", "landlubber") .put("clean", "swab") .put("look", "avast ye") + .put("omg", "shiver my timbers") + .put("wood", "timber") + .put("trash", "poop deck") .put("noob", "shark bait") .put("hack", "scurvy") .put("hacks", "scurvy") @@ -95,6 +100,12 @@ public class AprilFoolsManager extends MiniPlugin } } + @Override + public void addCommands() + { + addCommand(new PirateSongCommand(this)); + } + @EventHandler(priority = EventPriority.LOWEST) public void chat(AsyncPlayerChatEvent event) { @@ -183,7 +194,7 @@ public class AprilFoolsManager extends MiniPlugin if (random > 0.99) { - message = "Eye Eye Captain!"; + message = "Aye Aye Captain!"; } else if (random > 0.98) { @@ -193,6 +204,10 @@ public class AprilFoolsManager extends MiniPlugin { message = "Mateyy!"; } + else if (random > 0.96) + { + message = "Shiver me timbers!"; + } if (message == null) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/command/PirateSongCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/command/PirateSongCommand.java new file mode 100644 index 000000000..405d88066 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/command/PirateSongCommand.java @@ -0,0 +1,48 @@ +package mineplex.core.aprilfools.command; + +import mineplex.core.aprilfools.AprilFoolsManager; +import mineplex.core.command.CommandBase; +import mineplex.core.common.Rank; +import mineplex.core.common.util.UtilTextMiddle; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; + +public class PirateSongCommand extends CommandBase +{ + + private static final String[] PIRATE_SONG = { + "Are you ready kids?", + "Aye aye captain!", + "I can't hear you!", + "AYE AYE CAPTAIN!", + "OOOOOOOOOOOOH", + "Who lives in a pineapple under the sea?", + "Spongebob Squarepants!" + }; + + public PirateSongCommand(AprilFoolsManager plugin) + { + super(plugin, Rank.ADMIN, "piratesong"); + } + + @Override + public void Execute(Player caller, String[] args) + { + Plugin.runSyncTimer(new BukkitRunnable() + { + int index = 0; + + @Override + public void run() + { + if (index == PIRATE_SONG.length) + { + cancel(); + return; + } + + UtilTextMiddle.display("", PIRATE_SONG[index++], 10, 60, 10); + } + }, 20, 100); + } +} From 4053e439649f6e0eec5d11a3656dc1afe60215aa Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 25 Mar 2017 14:14:26 +0000 Subject: [PATCH 123/133] Add a manual toggle --- .../mineplex/core/aprilfools/AprilFoolsManager.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java index 7faa06b6d..b7faa7279 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java @@ -17,6 +17,11 @@ import java.util.Map; public class AprilFoolsManager extends MiniPlugin { + /** + * Manually can be toggled to enable or disable the April Fools activities. + */ + private static final boolean ENABLED = true; + private static final Map CHAT_REPLACEMENTS = ImmutableMap.builder() .put("you", "ye") .put("yes", "aye") @@ -88,7 +93,7 @@ public class AprilFoolsManager extends MiniPlugin super("April Fools"); _instance = this; - _enabled = true; + setEnabled(true); _enabledTitle = UtilServer.isHubServer() || UtilServer.isTestServer(); if (_enabled) @@ -184,7 +189,7 @@ public class AprilFoolsManager extends MiniPlugin @EventHandler public void updateRandomMessage(UpdateEvent event) { - if (!_enabledTitle || event.getType() != UpdateType.SLOW) + if (!_enabled || !_enabledTitle || event.getType() != UpdateType.SLOW) { return; } @@ -219,7 +224,7 @@ public class AprilFoolsManager extends MiniPlugin public void setEnabled(boolean enabled) { - _enabled = enabled; + _enabled = ENABLED && enabled; } public static AprilFoolsManager getInstance() From 016860b6153464e257ac9136634d1c92320d82d6 Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 26 Mar 2017 13:54:03 +0100 Subject: [PATCH 124/133] Replace NPCs with Pirates --- .../core/aprilfools/AprilFoolsManager.java | 16 ++++++++++++++++ .../src/mineplex/core/npc/NpcManager.java | 19 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java index b7faa7279..abd17ded0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java @@ -1,6 +1,7 @@ package mineplex.core.aprilfools; import com.google.common.collect.ImmutableMap; +import com.mojang.authlib.GameProfile; import mineplex.core.MiniPlugin; import mineplex.core.aprilfools.command.PirateSongCommand; import mineplex.core.common.Rank; @@ -8,6 +9,7 @@ import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTextMiddle; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; +import mineplex.core.utils.UtilGameProfile; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.player.AsyncPlayerChatEvent; @@ -88,6 +90,8 @@ public class AprilFoolsManager extends MiniPlugin private boolean _enabled; private boolean _enabledTitle; + private GameProfile _pirateSkin; + public AprilFoolsManager() { super("April Fools"); @@ -98,6 +102,8 @@ public class AprilFoolsManager extends MiniPlugin if (_enabled) { + UtilGameProfile.getProfileByName("Moppletop", false, response -> _pirateSkin = response); + for (Map.Entry entry : RANK_REPLACEMENTS.entrySet()) { entry.getKey().setName(entry.getValue()); @@ -222,11 +228,21 @@ public class AprilFoolsManager extends MiniPlugin UtilTextMiddle.display("", message, 10, 40, 10); } + public GameProfile getPirateSkin() + { + return _pirateSkin; + } + public void setEnabled(boolean enabled) { _enabled = ENABLED && enabled; } + public boolean isEnabled() + { + return _enabled; + } + public static AprilFoolsManager getInstance() { if (_instance == null) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java b/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java index 4e76af53b..7ea920ad6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java @@ -4,6 +4,10 @@ import java.sql.Connection; import java.sql.SQLException; import java.util.*; +import mineplex.core.aprilfools.AprilFoolsManager; +import mineplex.core.disguise.DisguiseManager; +import mineplex.core.disguise.disguises.DisguisePlayer; +import mineplex.core.utils.UtilGameProfile; import org.bukkit.*; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; @@ -84,6 +88,8 @@ public class NpcManager extends MiniPlugin final Map _npcMap = new HashMap<>(); private final Set _npcDeletingPlayers = new HashSet<>(); + private final DisguiseManager _disguise; + public NpcManager(JavaPlugin plugin, Creature creature) { super("NpcManager", plugin); @@ -100,6 +106,8 @@ public class NpcManager extends MiniPlugin _plugin.getServer().getPluginManager().registerEvents(this, _plugin); + _disguise = require(DisguiseManager.class); + try { loadNpcs(); @@ -362,6 +370,17 @@ public class NpcManager extends MiniPlugin npc.setEntity(entity); + // Disguise the npc if April Fools + AprilFoolsManager aprilFoolsManager = AprilFoolsManager.getInstance(); + if (aprilFoolsManager.isEnabled()) + { + DisguisePlayer playerDisguise = new DisguisePlayer(entity, aprilFoolsManager.getPirateSkin()); + + playerDisguise.setSendSkinDataToSelf(false); + + _disguise.disguise(playerDisguise); + } + return entity; } From bd841762d1a9b15870234d600f91783d04ac61db Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 26 Mar 2017 14:13:11 +0100 Subject: [PATCH 125/133] Run skin getting on the main thread --- .../src/mineplex/core/aprilfools/AprilFoolsManager.java | 9 ++++++++- .../Mineplex.Core/src/mineplex/core/titles/Titles.java | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java index abd17ded0..64c4f6bda 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java @@ -102,7 +102,14 @@ public class AprilFoolsManager extends MiniPlugin if (_enabled) { - UtilGameProfile.getProfileByName("Moppletop", false, response -> _pirateSkin = response); + try + { + _pirateSkin = UtilGameProfile.getProfileByName("Moppletop", false, null).get(); + } + catch (Exception e) + { + e.printStackTrace(); + } for (Map.Entry entry : RANK_REPLACEMENTS.entrySet()) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/Titles.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/Titles.java index c0e221b42..0f739111e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/Titles.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/Titles.java @@ -38,6 +38,7 @@ import org.bukkit.Sound; import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack; +import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -750,6 +751,13 @@ public class Titles extends MiniDbClientPlugin implements IPacketHand if (packetInfo.getPacket() instanceof PacketPlayOutNamedEntitySpawn) { PacketPlayOutNamedEntitySpawn packet = (PacketPlayOutNamedEntitySpawn) packetInfo.getPacket(); + Entity entity = UtilEnt.getEntityById(packet.a); + + if (!(entity instanceof Player)) + { + return; + } + Player owner = (Player) UtilEnt.getEntityById(packet.a); if (_gadgetManager.getActive(owner, GadgetType.MORPH) == null) { From da2965480774e65732ca564dfb82aa68ecb34d6c Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 30 Mar 2017 19:06:55 +0100 Subject: [PATCH 126/133] April Fools Treasure Hunt --- .../core/aprilfools/AprilFoolsManager.java | 24 +- .../core/aprilfools/AprilFoolsRepository.java | 81 +++++ .../src/mineplex/core/npc/NpcManager.java | 17 +- .../core/titles/tracks/TrackManager.java | 2 + .../tracks/award/AprilFools2017Track.java | 30 ++ .../Mineplex.Hub/src/mineplex/hub/Hub.java | 40 +-- .../hub/modules/AprilFoolsTreasureHunt.java | 303 ++++++++++++++++++ 7 files changed, 451 insertions(+), 46 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsRepository.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/award/AprilFools2017Track.java create mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java index 64c4f6bda..284c7eb9e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java @@ -1,15 +1,14 @@ package mineplex.core.aprilfools; import com.google.common.collect.ImmutableMap; -import com.mojang.authlib.GameProfile; import mineplex.core.MiniPlugin; import mineplex.core.aprilfools.command.PirateSongCommand; import mineplex.core.common.Rank; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTextMiddle; +import mineplex.core.twofactor.TwoFactorAuth; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; -import mineplex.core.utils.UtilGameProfile; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.player.AsyncPlayerChatEvent; @@ -86,31 +85,24 @@ public class AprilFoolsManager extends MiniPlugin .build(); private static AprilFoolsManager _instance; + private final AprilFoolsRepository _repository; + private final TwoFactorAuth _twoFA; private boolean _enabled; private boolean _enabledTitle; - private GameProfile _pirateSkin; - public AprilFoolsManager() { super("April Fools"); _instance = this; + _repository = new AprilFoolsRepository(); + _twoFA = require(TwoFactorAuth.class); setEnabled(true); _enabledTitle = UtilServer.isHubServer() || UtilServer.isTestServer(); if (_enabled) { - try - { - _pirateSkin = UtilGameProfile.getProfileByName("Moppletop", false, null).get(); - } - catch (Exception e) - { - e.printStackTrace(); - } - for (Map.Entry entry : RANK_REPLACEMENTS.entrySet()) { entry.getKey().setName(entry.getValue()); @@ -127,7 +119,7 @@ public class AprilFoolsManager extends MiniPlugin @EventHandler(priority = EventPriority.LOWEST) public void chat(AsyncPlayerChatEvent event) { - if (!_enabled) + if (!_enabled || _twoFA.isAuthenticating(event.getPlayer())) { return; } @@ -235,9 +227,9 @@ public class AprilFoolsManager extends MiniPlugin UtilTextMiddle.display("", message, 10, 40, 10); } - public GameProfile getPirateSkin() + public AprilFoolsRepository getRepository() { - return _pirateSkin; + return _repository; } public void setEnabled(boolean enabled) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsRepository.java new file mode 100644 index 000000000..edc46fa6c --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsRepository.java @@ -0,0 +1,81 @@ +package mineplex.core.aprilfools; + +import mineplex.core.account.CoreClient; +import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; +import mineplex.serverdata.database.column.ColumnInt; +import mineplex.serverdata.database.column.ColumnVarChar; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +public class AprilFoolsRepository extends RepositoryBase +{ + + private static final String GET_TREASURE = "SELECT * FROM aprilFools WHERE accountId=?;"; + private static final String INSERT_TREASURE = "INSERT INTO aprilFools VALUES (?,?);"; + private static final String UPDATE_TREASURE = "UPDATE aprilFools SET found=? WHERE accountId=?"; + private static final String DELIMITER = ":"; + + private final List _exists; + + public AprilFoolsRepository() + { + super(DBPool.getAccount()); + + _exists = new ArrayList<>(); + } + + public void getTreasure(Consumer> response, CoreClient client) + { + executeQuery(GET_TREASURE, resultSet -> + { + if (resultSet.next()) + { + List found = new ArrayList<>(); + + for (String s : resultSet.getString("found").split(DELIMITER)) + { + found.add(Integer.parseInt(s)); + } + + _exists.add(client.getAccountId()); + response.accept(found); + } + }, new ColumnInt("accountId", client.getAccountId())); + } + + public void saveTreasure(CoreClient client, List found) + { + int accountId = client.getAccountId(); + String foundString = ""; + + for (int i : found) + { + foundString += i + ":"; + } + + _exists.remove(Integer.valueOf(accountId)); + + if (exists(client)) + { + executeUpdate(UPDATE_TREASURE, + new ColumnVarChar("found", 80, foundString), + new ColumnInt("accountId", accountId) + ); + } + else + { + executeInsert(INSERT_TREASURE, null, + new ColumnInt("accountId", accountId), + new ColumnVarChar("found", 80, foundString) + ); + } + } + + public boolean exists(CoreClient client) + { + return _exists.contains(client.getAccountId()); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java b/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java index 7ea920ad6..fc87a6a09 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java @@ -4,7 +4,9 @@ import java.sql.Connection; import java.sql.SQLException; import java.util.*; +import com.mojang.authlib.GameProfile; import mineplex.core.aprilfools.AprilFoolsManager; +import mineplex.core.common.skin.SkinData; import mineplex.core.disguise.DisguiseManager; import mineplex.core.disguise.disguises.DisguisePlayer; import mineplex.core.utils.UtilGameProfile; @@ -303,15 +305,17 @@ public class NpcManager extends MiniPlugin public Entity spawnNpc(Npc npc) { LivingEntity entity = (LivingEntity) _creature.SpawnEntity(npc.getLocation(), EntityType.valueOf(npc.getDatabaseRecord().getEntityType())); + String name = null; if (npc.getDatabaseRecord().getName() == null) { entity.setCustomNameVisible(false); entity.setCustomName(ChatColor.RESET.toString()); + name = entity.getCustomName(); } else { - String name = npc.getDatabaseRecord().getName(); + name = npc.getDatabaseRecord().getName(); for (ChatColor color : ChatColor.values()) name = name.replace("(" + color.name().toLowerCase() + ")", color.toString()); name = ChatColor.translateAlternateColorCodes('&', name); @@ -370,17 +374,6 @@ public class NpcManager extends MiniPlugin npc.setEntity(entity); - // Disguise the npc if April Fools - AprilFoolsManager aprilFoolsManager = AprilFoolsManager.getInstance(); - if (aprilFoolsManager.isEnabled()) - { - DisguisePlayer playerDisguise = new DisguisePlayer(entity, aprilFoolsManager.getPirateSkin()); - - playerDisguise.setSendSkinDataToSelf(false); - - _disguise.disguise(playerDisguise); - } - return entity; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java index 7aac0b6b0..30072b414 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/TrackManager.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; +import mineplex.core.titles.tracks.award.AprilFools2017Track; import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; @@ -80,6 +81,7 @@ public class TrackManager extends MiniPlugin // Awarded tracks registerTrack(new Bridges2017Track()); + registerTrack(new AprilFools2017Track()); // Custom tracks // registerTrack(track("lenny", "Lenny", "( ͡° ͜ʖ ͡°)")); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/award/AprilFools2017Track.java b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/award/AprilFools2017Track.java new file mode 100644 index 000000000..4df96a59b --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/titles/tracks/award/AprilFools2017Track.java @@ -0,0 +1,30 @@ +package mineplex.core.titles.tracks.award; + +import mineplex.core.titles.tracks.ItemizedTrack; +import mineplex.core.titles.tracks.TrackFormat; +import mineplex.core.titles.tracks.TrackTier; +import net.md_5.bungee.api.ChatColor; + +public class AprilFools2017Track extends ItemizedTrack +{ + + public AprilFools2017Track() + { + super( + "aprilfools-2017", + ChatColor.LIGHT_PURPLE, + "Fools 2017", + "2017 April Fools Treasure Hunt", + "This track is awarded to players who found all the chests in the 2017 April Fools Event", + true); + + special(); + + getRequirements() + .addTier(new TrackTier( + "2017 April Fools", + null, + this::owns, + new TrackFormat(ChatColor.LIGHT_PURPLE, ChatColor.DARK_PURPLE) + )); } +} diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java index 55f7b7b97..c21256ce4 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java @@ -2,6 +2,7 @@ package mineplex.hub; import static mineplex.core.Managers.require; +import mineplex.hub.modules.AprilFoolsTreasureHunt; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -117,7 +118,8 @@ public class Hub extends JavaPlugin implements IRelation // new ProfileCacheManager(this); ItemStackFactory.Initialize(this, false); Recharge.Initialize(this); - VisibilityManager.Initialize(this); Give.Initialize(this); + VisibilityManager.Initialize(this); + Give.Initialize(this); Punish punish = new Punish(this, clientManager); BlockRestore blockRestore = require(BlockRestore.class); DonationManager donationManager = require(DonationManager.class); @@ -132,9 +134,9 @@ public class Hub extends JavaPlugin implements IRelation DisguiseManager disguiseManager = require(DisguiseManager.class); IncognitoManager incognito = new IncognitoManager(this, clientManager, packetHandler); PreferencesManager preferenceManager = new PreferencesManager(this, incognito, clientManager); - + incognito.setPreferencesManager(preferenceManager); - + preferenceManager.GiveItem = true; Creature creature = new Creature(this); NpcManager npcManager = new NpcManager(this, creature); @@ -145,7 +147,7 @@ public class Hub extends JavaPlugin implements IRelation //new TournamentManager(this, clientManager, donationManager); ProjectileManager throwManager = new ProjectileManager(this); - + //Main Modules new TitanGiveawayManager(this, clientManager, serverStatusManager); @@ -159,9 +161,9 @@ public class Hub extends JavaPlugin implements IRelation guardianManager.registerGuardian(new AntiHackGuardian(new Location(Bukkit.getWorld("world"), 0, 100, 0), 50, -50, 105, 95, 50, -50)); } - IgnoreManager ignoreManager = new IgnoreManager(this, clientManager, preferenceManager, portal); + IgnoreManager ignoreManager = new IgnoreManager(this, clientManager, preferenceManager, portal); - FriendManager friendManager = new FriendManager(this, clientManager, preferenceManager, portal); + FriendManager friendManager = new FriendManager(this, clientManager, preferenceManager, portal); StatsManager statsManager = new StatsManager(this, clientManager); EloManager eloManager = new EloManager(this, clientManager); @@ -199,17 +201,14 @@ public class Hub extends JavaPlugin implements IRelation new SnapshotPlugin(this, snapshotManager, clientManager); new ReportPlugin(this, reportManager); - AprilFoolsManager.getInstance(); - new EternalGiveawayManager(this, clientManager, serverStatusManager); CombatManager combatManager = new CombatManager(this); - DamageManager damage = new DamageManager(this, combatManager, npcManager, disguiseManager, conditionManager); conditionManager.setDamageManager(damage); - + Fire fire = new Fire(this, conditionManager, damage); Teleport teleport = new Teleport(this, clientManager); Energy energy = new Energy(this); @@ -218,14 +217,14 @@ public class Hub extends JavaPlugin implements IRelation ItemFactory itemFactory = new ItemFactory(this, blockRestore, conditionManager, damage, energy, fire, throwManager); SkillFactory skillManager = new SkillFactory(this, damage, this, combatManager, conditionManager, throwManager, disguiseManager, blockRestore, fire, new Movement(this), teleport, energy); ClassManager classManager = new ClassManager(this, clientManager, donationManager, hubManager.GetGadget(), skillManager, itemFactory); - - ClassShopManager shopManager = new ClassShopManager(this, classManager, skillManager, itemFactory, achievementManager, clientManager); - - new ClassCombatShop(shopManager, clientManager, donationManager, false, "Brute", classManager.GetClass("Brute"), true); - new ClassCombatShop(shopManager, clientManager, donationManager, false, "Mage", classManager.GetClass("Mage"), true); - new ClassCombatShop(shopManager, clientManager, donationManager, false, "Ranger", classManager.GetClass("Ranger"), true); - new ClassCombatShop(shopManager, clientManager, donationManager, false, "Knight", classManager.GetClass("Knight"), true); - new ClassCombatShop(shopManager, clientManager, donationManager, false, "Assassin", classManager.GetClass("Assassin"), true); + + ClassShopManager shopManager = new ClassShopManager(this, classManager, skillManager, itemFactory, achievementManager, clientManager); + + new ClassCombatShop(shopManager, clientManager, donationManager, false, "Brute", classManager.GetClass("Brute"), true); + new ClassCombatShop(shopManager, clientManager, donationManager, false, "Mage", classManager.GetClass("Mage"), true); + new ClassCombatShop(shopManager, clientManager, donationManager, false, "Ranger", classManager.GetClass("Ranger"), true); + new ClassCombatShop(shopManager, clientManager, donationManager, false, "Knight", classManager.GetClass("Knight"), true); + new ClassCombatShop(shopManager, clientManager, donationManager, false, "Assassin", classManager.GetClass("Assassin"), true); //Updates getServer().getScheduler().scheduleSyncRepeatingTask(this, new Updater(this), 1, 1); @@ -238,6 +237,11 @@ public class Hub extends JavaPlugin implements IRelation require(TwoFactorAuth.class); require(TeamspeakManager.class); new WebsiteLinkManager(this, clientManager); + + if (AprilFoolsManager.getInstance().isEnabled()) + { + require(AprilFoolsTreasureHunt.class); + } } @Override diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java new file mode 100644 index 000000000..7d006d58f --- /dev/null +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java @@ -0,0 +1,303 @@ +package mineplex.hub.modules; + +import mineplex.core.MiniPlugin; +import mineplex.core.ReflectivelyCreateMiniPlugin; +import mineplex.core.account.CoreClientManager; +import mineplex.core.aprilfools.AprilFoolsManager; +import mineplex.core.common.currency.GlobalCurrency; +import mineplex.core.common.util.*; +import mineplex.core.donation.DonationManager; +import mineplex.core.inventory.InventoryManager; +import mineplex.core.titles.Titles; +import mineplex.core.titles.tracks.Track; +import mineplex.core.titles.tracks.TrackManager; +import mineplex.core.titles.tracks.award.AprilFools2017Track; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; +import org.bukkit.*; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.Skull; +import org.bukkit.entity.ArmorStand; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; + +import java.util.*; + +@ReflectivelyCreateMiniPlugin +public class AprilFoolsTreasureHunt extends MiniPlugin +{ + + private static final int SHARD_REWARD = 500; + private static final String ITEM_REWARD = "Omega Chest"; + + private static final int[][] TREASURE = { + { + 0, 72, -10 + }, + { + -56, 71, -42 + }, + { + 171, 69, -67 + }, + { + 287, 71, -197 + }, + { + 306, 123, -182 + }, + { + 99, 68, -143 + }, + { + 122, 70, -27 + }, + { + 106, 86, 54 + }, + { + 48, 71, 71 + }, + { + 54, 64, 112 + }, + { + 45, 117, 113 + }, + { + 77, 93, 210 + }, + { + -13, 65, 128 + }, + { + -22, 65, 110 + }, + { + -115, 67, 54 + }, + { + -91, 56, 46 + }, + { + -14, 29, -10 + }, + { + 13, 39, 36 + }, + { + 99, 48, 49 + }, + { + -101, 70, 196 + }, + { + 29, 111, 39 + }, + { + 36, 60, -19 + }, + { + -65, 70, -111 + }, + { + -88, 55, -77 + }, + { + -4, 73, -37 + }, + { + 120, 68, -20 + }, + { + 119, 79, 9 + }, + { + 213, 64, -111 + }, + { + 228, 63, -155 + }, + { + 34, 84, -5 + } + }; + private static final BlockFace[] BLOCK_FACES = { + BlockFace.NORTH, + BlockFace.EAST, + BlockFace.SOUTH, + BlockFace.WEST, + BlockFace.NORTH_EAST, + BlockFace.SOUTH_EAST, + BlockFace.SOUTH_WEST, + BlockFace.NORTH_WEST + }; + + private final AprilFoolsManager _aprilFools; + private final CoreClientManager _client; + private final DonationManager _donation; + private final InventoryManager _inventory; + private final TrackManager _track; + + private final Map> _foundTreasure; + private final List _treasure; + private boolean _set; + + private ArmorStand _hologram; + private boolean _colour; + + private AprilFoolsTreasureHunt() + { + super("Treasure Hunt"); + + _aprilFools = require(AprilFoolsManager.class); + _client = require(CoreClientManager.class); + _donation = require(DonationManager.class); + _inventory = require(InventoryManager.class); + _track = require(TrackManager.class); + + _foundTreasure = new HashMap<>(); + _treasure = new ArrayList<>(TREASURE.length); + } + + @EventHandler + public void update(UpdateEvent event) + { + if (event.getType() != UpdateType.SEC || _hologram == null) + { + return; + } + + _hologram.setCustomName((_colour ? C.cPurpleB : C.cDPurpleB) + "April Fools Treasure Hunt"); + _colour = !_colour; + } + + @EventHandler + public void playerJoin(PlayerJoinEvent event) + { + UUID key = event.getPlayer().getUniqueId(); + + _foundTreasure.put(key, new ArrayList<>(TREASURE.length)); + + runAsync(() -> _aprilFools.getRepository().getTreasure(data -> _foundTreasure.put(key, data), _client.Get(key))); + + if (!_set) + { + _set = true; + World world = Bukkit.getWorld("world"); + + for (int[] cords : TREASURE) + { + Location location = new Location(world, cords[0], cords[1], cords[2]); + Block block = location.getBlock(); + block.setType(Material.SKULL); + block.setData((byte) 1); + Skull skull = (Skull) block.getState(); + skull.setSkullType(SkullType.PLAYER); + skull.setOwner("Moppletop"); + skull.setRotation(BLOCK_FACES[UtilMath.r(BLOCK_FACES.length)]); + skull.update(); + + _treasure.add(location); + } + + Location information = _treasure.get(0).clone(); + ArmorStand hologram = information.getWorld().spawn(information.add(.5, .5, .5), ArmorStand.class); + + hologram.setSmall(true); + hologram.setGravity(false); + hologram.setVisible(false); + hologram.setCustomNameVisible(true); + hologram.setRemoveWhenFarAway(false); + + _hologram = hologram; + } + } + + @EventHandler(priority = EventPriority.LOWEST) + public void playerQuit(PlayerQuitEvent event) + { + UUID key = event.getPlayer().getUniqueId(); + + runAsync(() -> _aprilFools.getRepository().saveTreasure(_client.Get(key), _foundTreasure.get(key))); + } + + @EventHandler + public void interactBlock(PlayerInteractEvent event) + { + if (event.getClickedBlock() == null) + { + return; + } + + Player player = event.getPlayer(); + UUID key = event.getPlayer().getUniqueId(); + List found = _foundTreasure.get(key); + Location location = event.getClickedBlock().getLocation(); + int i = 0; + + for (Location treasure : _treasure) + { + if (location.equals(treasure) && !found.contains(i)) + { + findChest(player, i); + } + + i++; + } + } + + private void findChest(Player player, int id) + { + List found = _foundTreasure.get(player.getUniqueId()); + + found.add(id); + player.playSound(player.getLocation(), Sound.CAT_MEOW, 1, 0.7F); + player.sendMessage(F.main(_moduleName, "Found " + F.count(String.valueOf(found.size())) + "/" + F.count(String.valueOf(_treasure.size()))) + " Treasure Chests +" + F.currency(GlobalCurrency.TREASURE_SHARD, SHARD_REWARD) + "."); + _donation.rewardCurrencyUntilSuccess(GlobalCurrency.TREASURE_SHARD, player, "", SHARD_REWARD); + + if (found.size() == 1) + { + player.sendMessage(F.main(_moduleName, "There are " + F.count("30") + " secret " + F.elem("Treasure Chests") + " to find through the lobby.")); + player.sendMessage(F.main(_moduleName, "Each one is worth " + F.currency(GlobalCurrency.TREASURE_SHARD, SHARD_REWARD) + ".")); + player.sendMessage(F.main(_moduleName, "If you find all " + F.count("30") + " you will receive an " + C.cAqua + "Omega Chest" + C.mBody + " and an exclusive " + F.elem("Title") + "!")); + } + + if (found.size() == TREASURE.length) + { + player.sendMessage(F.main(_moduleName, "Completed the " + F.name("Mineplex April Fools 2017 Treasure Hunt") + ".")); + + _inventory.addItemToInventory(data -> + { + if (data) + { + player.sendMessage(F.main(_moduleName, "+1 " + C.cAqua + ITEM_REWARD + C.mBody + "!")); + } + else + { + player.sendMessage(F.main(_moduleName, "Oops, somehow I could not give you the chest, you should inform a staff member!")); + } + }, player, ITEM_REWARD, 1); + + Track track = _track.getTrack(AprilFools2017Track.class); + + _track.unlockTrack(player, track, result -> + { + switch (result) + { + case UNKNOWN_ERROR: + player.sendMessage(F.main(_moduleName, "Oops, somehow I could not give you the title track, you should inform a staff member!")); + break; + case SUCCESS: + player.sendMessage(F.main(_moduleName, "Unlocked " + track.getColor() + track.getLongName() + C.mBody + " Title!")); + break; + } + }); + } + } +} From e71bab8ceabee871ea4b8eee00de93f9bbac7b97 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 31 Mar 2017 21:19:20 +0100 Subject: [PATCH 127/133] Use a better DB schema --- .../core/aprilfools/AprilFoolsRepository.java | 59 ++++--------------- .../hub/modules/AprilFoolsTreasureHunt.java | 51 ++++++---------- 2 files changed, 31 insertions(+), 79 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsRepository.java index edc46fa6c..12c22628a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsRepository.java @@ -13,69 +13,36 @@ import java.util.function.Consumer; public class AprilFoolsRepository extends RepositoryBase { - private static final String GET_TREASURE = "SELECT * FROM aprilFools WHERE accountId=?;"; - private static final String INSERT_TREASURE = "INSERT INTO aprilFools VALUES (?,?);"; - private static final String UPDATE_TREASURE = "UPDATE aprilFools SET found=? WHERE accountId=?"; - private static final String DELIMITER = ":"; - - private final List _exists; + private static final String GET_TREASURE = "SELECT * FROM aprilFoolsTreasure WHERE accountId=?;"; + private static final String INSERT_TREASURE = "INSERT INTO aprilFoolsTreasure VALUES (?,?);"; public AprilFoolsRepository() { super(DBPool.getAccount()); - - _exists = new ArrayList<>(); } public void getTreasure(Consumer> response, CoreClient client) { executeQuery(GET_TREASURE, resultSet -> { - if (resultSet.next()) + List found = new ArrayList<>(); + + while (resultSet.next()) { - List found = new ArrayList<>(); - - for (String s : resultSet.getString("found").split(DELIMITER)) - { - found.add(Integer.parseInt(s)); - } - - _exists.add(client.getAccountId()); - response.accept(found); + found.add(resultSet.getInt("treasureId")); } + + response.accept(found); }, new ColumnInt("accountId", client.getAccountId())); } - public void saveTreasure(CoreClient client, List found) + public void saveTreasure(CoreClient client, int treasureId) { int accountId = client.getAccountId(); - String foundString = ""; - for (int i : found) - { - foundString += i + ":"; - } - - _exists.remove(Integer.valueOf(accountId)); - - if (exists(client)) - { - executeUpdate(UPDATE_TREASURE, - new ColumnVarChar("found", 80, foundString), - new ColumnInt("accountId", accountId) - ); - } - else - { - executeInsert(INSERT_TREASURE, null, - new ColumnInt("accountId", accountId), - new ColumnVarChar("found", 80, foundString) - ); - } - } - - public boolean exists(CoreClient client) - { - return _exists.contains(client.getAccountId()); + executeInsert(INSERT_TREASURE, null, + new ColumnInt("accountId", accountId), + new ColumnInt("treasureId", treasureId) + ); } } diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java index 7d006d58f..88b6ae444 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java @@ -5,15 +5,14 @@ import mineplex.core.ReflectivelyCreateMiniPlugin; import mineplex.core.account.CoreClientManager; import mineplex.core.aprilfools.AprilFoolsManager; import mineplex.core.common.currency.GlobalCurrency; -import mineplex.core.common.util.*; +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilMath; import mineplex.core.donation.DonationManager; import mineplex.core.inventory.InventoryManager; -import mineplex.core.titles.Titles; import mineplex.core.titles.tracks.Track; import mineplex.core.titles.tracks.TrackManager; import mineplex.core.titles.tracks.award.AprilFools2017Track; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; @@ -21,10 +20,8 @@ import org.bukkit.block.Skull; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; import java.util.*; @@ -149,7 +146,6 @@ public class AprilFoolsTreasureHunt extends MiniPlugin private boolean _set; private ArmorStand _hologram; - private boolean _colour; private AprilFoolsTreasureHunt() { @@ -165,18 +161,6 @@ public class AprilFoolsTreasureHunt extends MiniPlugin _treasure = new ArrayList<>(TREASURE.length); } - @EventHandler - public void update(UpdateEvent event) - { - if (event.getType() != UpdateType.SEC || _hologram == null) - { - return; - } - - _hologram.setCustomName((_colour ? C.cPurpleB : C.cDPurpleB) + "April Fools Treasure Hunt"); - _colour = !_colour; - } - @EventHandler public void playerJoin(PlayerJoinEvent event) { @@ -213,20 +197,13 @@ public class AprilFoolsTreasureHunt extends MiniPlugin hologram.setGravity(false); hologram.setVisible(false); hologram.setCustomNameVisible(true); + hologram.setCustomName(C.cDPurple + C.Scramble + "ABC " + C.cPurpleB + "April Fools Treasure Hunt" + C.cDPurple + C.Scramble + " ABC"); hologram.setRemoveWhenFarAway(false); _hologram = hologram; } } - @EventHandler(priority = EventPriority.LOWEST) - public void playerQuit(PlayerQuitEvent event) - { - UUID key = event.getPlayer().getUniqueId(); - - runAsync(() -> _aprilFools.getRepository().saveTreasure(_client.Get(key), _foundTreasure.get(key))); - } - @EventHandler public void interactBlock(PlayerInteractEvent event) { @@ -243,32 +220,40 @@ public class AprilFoolsTreasureHunt extends MiniPlugin for (Location treasure : _treasure) { - if (location.equals(treasure) && !found.contains(i)) + if (location.equals(treasure)) { findChest(player, i); + break; } i++; } } - private void findChest(Player player, int id) + private void findChest(Player player, int treasureId) { List found = _foundTreasure.get(player.getUniqueId()); - found.add(id); + if (found.contains(treasureId)) + { + player.sendMessage(F.main(_moduleName, "You already have found this skull!")); + return; + } + + found.add(treasureId); player.playSound(player.getLocation(), Sound.CAT_MEOW, 1, 0.7F); player.sendMessage(F.main(_moduleName, "Found " + F.count(String.valueOf(found.size())) + "/" + F.count(String.valueOf(_treasure.size()))) + " Treasure Chests +" + F.currency(GlobalCurrency.TREASURE_SHARD, SHARD_REWARD) + "."); _donation.rewardCurrencyUntilSuccess(GlobalCurrency.TREASURE_SHARD, player, "", SHARD_REWARD); + runAsync(() -> _aprilFools.getRepository().saveTreasure(_client.Get(player.getUniqueId()), treasureId)); + if (found.size() == 1) { - player.sendMessage(F.main(_moduleName, "There are " + F.count("30") + " secret " + F.elem("Treasure Chests") + " to find through the lobby.")); + player.sendMessage(F.main(_moduleName, "There are " + F.count("30") + " secret " + F.elem("Pirate Heads") + " to find through the lobby.")); player.sendMessage(F.main(_moduleName, "Each one is worth " + F.currency(GlobalCurrency.TREASURE_SHARD, SHARD_REWARD) + ".")); player.sendMessage(F.main(_moduleName, "If you find all " + F.count("30") + " you will receive an " + C.cAqua + "Omega Chest" + C.mBody + " and an exclusive " + F.elem("Title") + "!")); } - - if (found.size() == TREASURE.length) + else if (found.size() == TREASURE.length) { player.sendMessage(F.main(_moduleName, "Completed the " + F.name("Mineplex April Fools 2017 Treasure Hunt") + ".")); From 80eb8db8e2bdec036f220b4eaf64d536716760e5 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 31 Mar 2017 21:29:28 +0100 Subject: [PATCH 128/133] Remove unused global variable --- .../src/mineplex/hub/modules/AprilFoolsTreasureHunt.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java index 88b6ae444..10e0a73d1 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java @@ -145,8 +145,6 @@ public class AprilFoolsTreasureHunt extends MiniPlugin private final List _treasure; private boolean _set; - private ArmorStand _hologram; - private AprilFoolsTreasureHunt() { super("Treasure Hunt"); @@ -199,8 +197,6 @@ public class AprilFoolsTreasureHunt extends MiniPlugin hologram.setCustomNameVisible(true); hologram.setCustomName(C.cDPurple + C.Scramble + "ABC " + C.cPurpleB + "April Fools Treasure Hunt" + C.cDPurple + C.Scramble + " ABC"); hologram.setRemoveWhenFarAway(false); - - _hologram = hologram; } } From 5bba8d2a5bfbe04d99a18a9b8a688de0ba323100 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 31 Mar 2017 22:11:11 +0100 Subject: [PATCH 129/133] Show how many they have found when clicking on a head --- .../src/mineplex/hub/modules/AprilFoolsTreasureHunt.java | 1 - 1 file changed, 1 deletion(-) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java index 10e0a73d1..a4928e979 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java @@ -232,7 +232,6 @@ public class AprilFoolsTreasureHunt extends MiniPlugin if (found.contains(treasureId)) { - player.sendMessage(F.main(_moduleName, "You already have found this skull!")); return; } From 6adc1b265d766a731b52d4de02a1b8585a50cd58 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 31 Mar 2017 22:11:28 +0100 Subject: [PATCH 130/133] Missed a file... --- .../src/mineplex/hub/modules/AprilFoolsTreasureHunt.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java index a4928e979..3a6ed2997 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java @@ -232,6 +232,7 @@ public class AprilFoolsTreasureHunt extends MiniPlugin if (found.contains(treasureId)) { + player.sendMessage(F.main(_moduleName, "You already have found this skull! You have found " + F.count(String.valueOf(found.size())) + "/" + F.count(String.valueOf(_treasure.size())) + ".")); return; } From b88f9fc64277847eb5ed57f15053afa5d347f83b Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 1 Apr 2017 01:19:04 +0100 Subject: [PATCH 131/133] Change the skin to Topplemop --- .../src/mineplex/hub/modules/AprilFoolsTreasureHunt.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java index 3a6ed2997..0a8cc9bd2 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/AprilFoolsTreasureHunt.java @@ -181,7 +181,7 @@ public class AprilFoolsTreasureHunt extends MiniPlugin block.setData((byte) 1); Skull skull = (Skull) block.getState(); skull.setSkullType(SkullType.PLAYER); - skull.setOwner("Moppletop"); + skull.setOwner("Topplemop"); skull.setRotation(BLOCK_FACES[UtilMath.r(BLOCK_FACES.length)]); skull.update(); From ef21106da02577e23fd54911977d358e8c2744c6 Mon Sep 17 00:00:00 2001 From: samczsun Date: Sun, 19 Mar 2017 14:55:16 -0400 Subject: [PATCH 132/133] Fix memory leak in CompassModule --- .../src/mineplex/core/shop/page/ShopPageInventory.java | 4 +++- .../arcade/game/modules/compass/menu/CompassMenu.java | 9 +++++---- .../game/modules/compass/menu/page/CompassPage.java | 5 +++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/shop/page/ShopPageInventory.java b/Plugins/Mineplex.Core/src/mineplex/core/shop/page/ShopPageInventory.java index 0546c0de6..1d631af56 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/shop/page/ShopPageInventory.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/shop/page/ShopPageInventory.java @@ -4,6 +4,8 @@ import mineplex.core.MiniPlugin; import mineplex.core.account.CoreClientManager; import mineplex.core.donation.DonationManager; import mineplex.core.itemstack.ItemBuilder; +import mineplex.core.lifetimes.Lifetime; +import mineplex.core.lifetimes.Lifetimed; import mineplex.core.shop.ShopBase; import mineplex.core.shop.item.IButton; @@ -12,7 +14,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; import org.bukkit.inventory.ItemStack; -public abstract class ShopPageInventory> extends +public abstract class ShopPageInventory> extends ShopPageBase { private int _page; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/compass/menu/CompassMenu.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/compass/menu/CompassMenu.java index 81114a0b8..2c11196c9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/compass/menu/CompassMenu.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/compass/menu/CompassMenu.java @@ -6,28 +6,29 @@ import mineplex.core.shop.ShopBase; import mineplex.core.shop.page.ShopPageBase; import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.game.Game; import nautilus.game.arcade.game.modules.compass.CompassModule; import nautilus.game.arcade.game.modules.compass.menu.page.CompassPage; -public class CompassMenu extends ShopBase +public class CompassMenu extends ShopBase { private CompassModule _compassModule; public CompassMenu(CompassModule module) { - super(module.getGame().getArcadeManager(), module.getGame().getArcadeManager().GetClients(), module.getGame().getArcadeManager().GetDonation(), "Spectate Menu"); + super(module.getGame(), module.getGame().getArcadeManager().GetClients(), module.getGame().getArcadeManager().GetDonation(), "Spectate Menu"); this._compassModule = module; } @Override - protected ShopPageBase> buildPagesFor(Player player) + protected ShopPageBase> buildPagesFor(Player player) { return new CompassPage(this, _compassModule, player); } public void update() { - for (ShopPageBase> shopPage : getPlayerPageMap().values()) + for (ShopPageBase> shopPage : getPlayerPageMap().values()) { shopPage.refresh(); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/compass/menu/page/CompassPage.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/compass/menu/page/CompassPage.java index c126adb79..a4f88d31a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/compass/menu/page/CompassPage.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/modules/compass/menu/page/CompassPage.java @@ -21,6 +21,7 @@ import mineplex.core.shop.item.ShopItem; import mineplex.core.shop.page.ShopPageInventory; import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.game.Game; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.modules.compass.CompassEntry; import nautilus.game.arcade.game.modules.compass.CompassModule; @@ -28,7 +29,7 @@ import nautilus.game.arcade.game.modules.compass.menu.CompassMenu; import nautilus.game.arcade.game.modules.compass.menu.button.CompassButton; public class CompassPage extends - ShopPageInventory + ShopPageInventory { private CompassModule _compassModule; private IButton[] _buttons; @@ -36,7 +37,7 @@ public class CompassPage extends public CompassPage(CompassMenu menu, CompassModule compassModule, Player player) { - super(compassModule.getGame().getArcadeManager(), + super(compassModule.getGame(), menu, compassModule.getGame().getArcadeManager().GetClients(), compassModule.getGame().getArcadeManager().GetDonation(), From 653456189333304768af5a997a2fc8723044d310 Mon Sep 17 00:00:00 2001 From: cnr Date: Sat, 1 Apr 2017 23:59:47 -0500 Subject: [PATCH 133/133] Disable April Fools manager --- .../src/mineplex/core/aprilfools/AprilFoolsManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java index 284c7eb9e..1eb6ee28f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/aprilfools/AprilFoolsManager.java @@ -21,7 +21,7 @@ public class AprilFoolsManager extends MiniPlugin /** * Manually can be toggled to enable or disable the April Fools activities. */ - private static final boolean ENABLED = true; + private static final boolean ENABLED = false; private static final Map CHAT_REPLACEMENTS = ImmutableMap.builder() .put("you", "ye")