From 4873ac7b74fea815a61f43f691271caf0adfc804 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 10 Jul 2018 16:25:11 +0100 Subject: [PATCH] Remove all Brawls and change how they work --- .../gadgets/particle/ParticleFiveYear.java | 5 +- .../src/nautilus/game/arcade/Arcade.java | 66 +- .../src/nautilus/game/arcade/GameMode.java | 66 +- .../src/nautilus/game/arcade/GameType.java | 103 +-- .../game/arcade/command/SetCommand.java | 66 +- .../src/nautilus/game/arcade/game/Game.java | 11 +- .../nautilus/game/arcade/game/GameOption.java | 51 -- .../game/arcade/game/GameServerConfig.java | 8 +- .../game/arcade/game/games/bridge/Bridge.java | 2 +- .../game/games/bridge/modes/AppleAttack.java | 28 - .../games/bridge/modes/InsaneBridges.java | 198 ------ .../game/games/bridge/modes/LuckyBridges.java | 75 -- .../games/bridge/modes/OverpoweredBridge.java | 491 +------------ .../game/games/bridge/modes/SpeedBridges.java | 60 -- .../game/games/bridge/modes/UHCBridges.java | 147 ---- .../bridge/modes/kits/KitBrawlAppler.java | 36 - .../games/build/modes/DukesOfDecoration.java | 232 ------- .../game/games/build/modes/TeamBuild.java | 190 ----- .../game/games/champions/modes/SmashDom.java | 107 --- .../gladiators/modes/ChampionsGladiators.java | 99 --- .../modes/OverpoweredGladiators.java | 109 --- .../gladiators/modes/SmashGladiators.java | 109 --- .../game/games/hideseek/modes/Countdown.java | 138 ---- .../arcade/game/games/milkcow/MilkCow.java | 2 +- .../minestrike/modes/SuperPaintstrike.java | 657 ------------------ .../game/games/quiver/modes/BunnyHop.java | 100 --- .../game/games/quiver/modes/UltimateOITQ.java | 81 --- .../quiver/modes/kits/KitModedLeaper.java | 46 -- .../module/ModuleStandaloneUltimate.java | 241 ------- .../game/games/sheep/modes/EweHeroes.java | 94 --- .../sheep/modes/OverpoweredSheepQuest.java | 39 -- .../game/games/sheep/modes/SheepMania.java | 77 -- .../game/games/sheep/modes/SmashSheep.java | 116 ---- .../games/sheep/modes/kits/KitShepherd.java | 49 -- .../skywars/modes/OverpoweredSkywars.java | 30 - .../game/games/skywars/modes/SkySmash.java | 121 ---- .../game/games/skywars/modes/UHCSkywars.java | 89 --- .../game/games/smash/modes/RandomKitSSM.java | 154 ---- .../games/smash/modes/kits/KitHipster.java | 30 - .../game/games/uhc/modes/Assassins.java | 121 ---- .../game/games/uhc/modes/BloodDiamonds.java | 49 -- .../game/games/uhc/modes/GodBattles.java | 82 --- .../arcade/managers/GameCreationManager.java | 363 +--------- 43 files changed, 115 insertions(+), 4823 deletions(-) delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/GameOption.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/AppleAttack.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/InsaneBridges.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/LuckyBridges.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/SpeedBridges.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/UHCBridges.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/kits/KitBrawlAppler.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/build/modes/DukesOfDecoration.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/build/modes/TeamBuild.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/modes/SmashDom.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/ChampionsGladiators.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/OverpoweredGladiators.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/SmashGladiators.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/modes/Countdown.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/minestrike/modes/SuperPaintstrike.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/BunnyHop.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/UltimateOITQ.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/kits/KitModedLeaper.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/module/ModuleStandaloneUltimate.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/EweHeroes.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/OverpoweredSheepQuest.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/SheepMania.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/SmashSheep.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/kits/KitShepherd.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/modes/OverpoweredSkywars.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/modes/SkySmash.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/modes/UHCSkywars.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/modes/RandomKitSSM.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/modes/kits/KitHipster.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/modes/Assassins.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/modes/BloodDiamonds.java delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/modes/GodBattles.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFiveYear.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFiveYear.java index d40d78d26..36be828c6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFiveYear.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/particle/ParticleFiveYear.java @@ -48,15 +48,14 @@ public class ParticleFiveYear extends ParticleGadget return; } - Location location = player.getLocation().add(0, 1, 0); - if (Manager.isMoving(player)) { - new BabyFireworkEffect(location, Color.ORANGE, 1) + new BabyFireworkEffect(player.getLocation().add(0, 0.3, 0), Color.ORANGE, Color.BLACK) .start(); } else { + Location location = player.getLocation().add(0, 1, 0); location.setPitch(0); Vector direction = location.getDirection(); location.add(UtilAlg.getRight(direction).multiply(0.3)); 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 aa60c8030..e575ed176 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java @@ -1,7 +1,6 @@ package nautilus.game.arcade; import java.io.File; -import java.util.HashMap; import net.minecraft.server.v1_8_R3.MinecraftServer; @@ -271,39 +270,21 @@ public class Arcade extends JavaPlugin { try { - System.out.println(gameName); + System.out.println("Found GameType: " + gameName); GameType type = GameType.valueOf(gameName); config.GameList.add(type); } - catch (Exception e) + catch (IllegalArgumentException e) { - + System.out.println("Error reading GameType values : " + gameName); } } - - try + + for (String gameMode : _serverConfiguration.getServerGroup().getModes().split(",")) { - if(_serverConfiguration.getServerGroup().getModes() != null) - { - if(_serverConfiguration.getServerGroup().getModes().contains(",")) - { - for (String modeName : _serverConfiguration.getServerGroup().getModes().split(",")) - { - addGamemode(modeName, config); - } - } - else - { - addGamemode(_serverConfiguration.getServerGroup().getModes(), config); - } - } + System.out.println("Found GameMode: " + gameMode); + config.GameModeList.add(gameMode); } - catch (Exception ex) - { - System.out.println("Error reading Gamemode variable values : "); - ex.printStackTrace(); - } - } catch (Exception ex) { @@ -354,37 +335,4 @@ public class Arcade extends JavaPlugin System.out.println("Deleted Old Game: " + file.getName()); } } - - private void addGamemode(String gamemode, GameServerConfig config) - { - String mode = gamemode.split("\\{")[0]; - System.out.println(mode); - config.GameModeList.add(mode); - - String mods = gamemode.split("\\{")[1]; - mods = mods.replace("}", ""); - - config.GameModeMods.put(mode, new HashMap<>()); - - if (mods.contains(";")) - { - for (String varSet : mods.split(";")) - { - String var = varSet.split("=")[0]; - String value = varSet.split("=")[1]; - config.GameModeMods.get(mode).put(var, value); - } - } - else - { - String var = mods.split("=")[0]; - String value = mods.split("=")[1]; - config.GameModeMods.get(mode).put(var, value); - } - } - - public ServerConfiguration getServerConfig() - { - return _serverConfiguration; - } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameMode.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameMode.java index 468447539..639bb4f11 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameMode.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameMode.java @@ -4,88 +4,42 @@ import mineplex.core.common.MinecraftVersion; import mineplex.core.common.Pair; import nautilus.game.arcade.game.Game; -/** - * This Object represents a Gamemode used in the GameType constructor - * - * @author xXVevzZXx - */ public class GameMode { - private Class _gameMode; - private GameType _gameType; - private String _name; + private final Class _gameMode; + private final String _name; + private final Pair[] _resourcePackUrls; + private final boolean _enforceResourcePack; - private Pair[] _resourcePackUrls; - private boolean _enforceResourcePack; - - /** - * - * @param gameMode Game class that in most cases extends the host game class - * @param name Gamemode name - */ - public GameMode(Class gameMode, GameType gameType, String name) + public GameMode(Class gameMode, String name) { - this(gameMode, gameType, name, null, false); + this(gameMode, name, null, false); } - - /** - * - * @param gameMode Game class that in most cases extends the host game class - * @param gameType original GameType of modded game - * @param name Gamemode name - * @param resourcePackUrls URLs to 1.8/1.9 resource pack - * @param enforceResourcePack enforece resource pack on players - */ - public GameMode(Class gameMode, GameType gameType, String name, Pair[] resourcePackUrls, boolean enforceResourcePack) + + public GameMode(Class gameMode, String name, Pair[] resourcePackUrls, boolean enforceResourcePack) { _gameMode = gameMode; - _gameType = gameType; _name = name; _resourcePackUrls = resourcePackUrls; _enforceResourcePack = enforceResourcePack; } - /** - * - * @return Game class - */ public Class getGameClass() { return _gameMode; } - /** - * - * @return Gamemode name - */ public String getName() { return _name; } - - /** - * - * @return Gamemode gametype - */ - public GameType getType() - { - return _gameType; - } - - /** - * - * @return Gamemode resource pack URLs - */ + public Pair[] getResPackURLs() { return _resourcePackUrls; } - - /** - * - * @return Gamemode enforcing of resource packs - */ + public boolean enforceResourcePack() { return _enforceResourcePack; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameType.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameType.java index 33243957f..980a55299 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameType.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/GameType.java @@ -16,15 +16,8 @@ import nautilus.game.arcade.game.games.basketball.Basketball; import nautilus.game.arcade.game.games.battleroyale.BattleRoyaleSolo; import nautilus.game.arcade.game.games.bossbattles.BossBattles; import nautilus.game.arcade.game.games.bridge.Bridge; -import nautilus.game.arcade.game.games.bridge.modes.AppleAttack; -import nautilus.game.arcade.game.games.bridge.modes.InsaneBridges; -import nautilus.game.arcade.game.games.bridge.modes.LuckyBridges; import nautilus.game.arcade.game.games.bridge.modes.OverpoweredBridge; -import nautilus.game.arcade.game.games.bridge.modes.SpeedBridges; -import nautilus.game.arcade.game.games.bridge.modes.UHCBridges; import nautilus.game.arcade.game.games.build.Build; -import nautilus.game.arcade.game.games.build.modes.DukesOfDecoration; -import nautilus.game.arcade.game.games.build.modes.TeamBuild; import nautilus.game.arcade.game.games.buildmavericks.BuildMavericks; import nautilus.game.arcade.game.games.cakewars.CakeWars; import nautilus.game.arcade.game.games.cakewars.modes.CakeWarsDuos; @@ -34,7 +27,6 @@ import nautilus.game.arcade.game.games.castlesiegenew.CastleSiegeNew; import nautilus.game.arcade.game.games.champions.ChampionsCTF; import nautilus.game.arcade.game.games.champions.ChampionsDominate; import nautilus.game.arcade.game.games.champions.ChampionsTDM; -import nautilus.game.arcade.game.games.champions.modes.SmashDom; import nautilus.game.arcade.game.games.christmas.Christmas; import nautilus.game.arcade.game.games.christmasnew.ChristmasNew; import nautilus.game.arcade.game.games.deathtag.DeathTag; @@ -45,20 +37,15 @@ import nautilus.game.arcade.game.games.draw.Draw; import nautilus.game.arcade.game.games.event.EventGame; import nautilus.game.arcade.game.games.evolution.Evolution; import nautilus.game.arcade.game.games.gladiators.Gladiators; -import nautilus.game.arcade.game.games.gladiators.modes.ChampionsGladiators; -import nautilus.game.arcade.game.games.gladiators.modes.OverpoweredGladiators; -import nautilus.game.arcade.game.games.gladiators.modes.SmashGladiators; import nautilus.game.arcade.game.games.gravity.Gravity; import nautilus.game.arcade.game.games.halloween.Halloween; import nautilus.game.arcade.game.games.halloween2016.Halloween2016; import nautilus.game.arcade.game.games.hideseek.HideSeek; -import nautilus.game.arcade.game.games.hideseek.modes.Countdown; import nautilus.game.arcade.game.games.lobbers.BombLobbers; import nautilus.game.arcade.game.games.micro.Micro; import nautilus.game.arcade.game.games.milkcow.MilkCow; import nautilus.game.arcade.game.games.minecraftleague.MinecraftLeague; import nautilus.game.arcade.game.games.minestrike.Minestrike; -import nautilus.game.arcade.game.games.minestrike.modes.SuperPaintstrike; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.moba.MobaClassic; import nautilus.game.arcade.game.games.monstermaze.MonsterMaze; @@ -67,26 +54,17 @@ import nautilus.game.arcade.game.games.paintball.Paintball; import nautilus.game.arcade.game.games.quiver.Quiver; import nautilus.game.arcade.game.games.quiver.QuiverTeamBase; import nautilus.game.arcade.game.games.quiver.QuiverTeams; -import nautilus.game.arcade.game.games.quiver.modes.BunnyHop; -import nautilus.game.arcade.game.games.quiver.modes.UltimateOITQ; import nautilus.game.arcade.game.games.rings.ElytraRings; import nautilus.game.arcade.game.games.runner.Runner; import nautilus.game.arcade.game.games.sheep.SheepGame; -import nautilus.game.arcade.game.games.sheep.modes.EweHeroes; -import nautilus.game.arcade.game.games.sheep.modes.OverpoweredSheepQuest; -import nautilus.game.arcade.game.games.sheep.modes.SheepMania; -import nautilus.game.arcade.game.games.sheep.modes.SmashSheep; import nautilus.game.arcade.game.games.skyfall.SoloSkyfall; import nautilus.game.arcade.game.games.skyfall.TeamSkyfall; import nautilus.game.arcade.game.games.skywars.SoloSkywars; import nautilus.game.arcade.game.games.skywars.TeamSkywars; -import nautilus.game.arcade.game.games.skywars.modes.SkySmash; -import nautilus.game.arcade.game.games.skywars.modes.UHCSkywars; import nautilus.game.arcade.game.games.smash.SoloSuperSmash; import nautilus.game.arcade.game.games.smash.SuperSmashDominate; import nautilus.game.arcade.game.games.smash.SuperSmashTraining; import nautilus.game.arcade.game.games.smash.TeamSuperSmash; -import nautilus.game.arcade.game.games.smash.modes.RandomKitSSM; import nautilus.game.arcade.game.games.snake.Snake; import nautilus.game.arcade.game.games.sneakyassassins.SneakyAssassins; import nautilus.game.arcade.game.games.snowfight.SnowFight; @@ -101,9 +79,6 @@ import nautilus.game.arcade.game.games.uhc.UHCSolo; import nautilus.game.arcade.game.games.uhc.UHCSoloSpeed; import nautilus.game.arcade.game.games.uhc.UHCTeams; import nautilus.game.arcade.game.games.uhc.UHCTeamsSpeed; -import nautilus.game.arcade.game.games.uhc.modes.Assassins; -import nautilus.game.arcade.game.games.uhc.modes.BloodDiamonds; -import nautilus.game.arcade.game.games.uhc.modes.GodBattles; import nautilus.game.arcade.game.games.valentines.Valentines; import nautilus.game.arcade.game.games.wither.WitherGame; import nautilus.game.arcade.game.games.wizards.Wizards; @@ -117,7 +92,10 @@ public enum GameType implements Voteable Barbarians(Barbarians.class, GameDisplay.Barbarians), Basketball(Basketball.class, GameDisplay.Basketball), BossBattles(BossBattles.class, GameDisplay.BossBattles), - Bridge(Bridge.class, GameDisplay.Bridge), + Bridge(Bridge.class, new GameMode[] + { + new GameMode(OverpoweredBridge.class, "OP Bridges"), + }, GameDisplay.Bridge), CastleAssault(CastleAssault.class, GameDisplay.CastleAssault), CastleAssaultTDM(CastleAssaultTDM.class, GameDisplay.CastleAssaultTDM), CastleSiege(CastleSiegeNew.class, GameDisplay.CastleSiege), @@ -238,41 +216,8 @@ public enum GameType implements Voteable GameType.Snake, GameType.SneakyAssassins, GameType.SnowFight, GameType.Spleef, GameType.SurvivalGames, GameType.SurvivalGamesTeams, GameType.TurfWars, GameType.UHC, GameType.WitherAssault, GameType.Wizards, GameType.ZombieSurvival}, true), - - Brawl(null, new GameMode[]{ - new GameMode(OverpoweredBridge.class, GameType.Bridge, "OP Bridges"), - new GameMode(SpeedBridges.class, GameType.Bridge, "Speed Bridges"), - new GameMode(LuckyBridges.class, GameType.Bridge, "Lucky Bridges"), - new GameMode(AppleAttack.class, GameType.Bridge, "Apple Attack"), - new GameMode(UHCBridges.class, GameType.Bridge, "UHC Bridges"), - new GameMode(InsaneBridges.class, GameType.Bridge, "Insane Bridges"), - new GameMode(OverpoweredGladiators.class, GameType.Gladiators, "OP Gladiators"), - new GameMode(ChampionsGladiators.class, GameType.Gladiators, "Champions Gladiators"), - new GameMode(SmashGladiators.class, GameType.Gladiators, "Smash Gladiators"), - new GameMode(UHCSkywars.class, GameType.Skywars, "UHC Skywars"), - new GameMode(SkySmash.class, GameType.Skywars, "Sky Smash"), - new GameMode(TeamBuild.class, GameType.Build, "Team Master Builders"), - new GameMode(DukesOfDecoration.class, GameType.Build, "Dukes Of Decoration"), - new GameMode(GodBattles.class, GameType.UHC, "God Battles"), - new GameMode(BloodDiamonds.class, GameType.UHC, "Blood Diamonds"), - new GameMode(Assassins.class, GameType.UHC, "Assassins"), - new GameMode(RandomKitSSM.class, GameType.Smash, "Random Kit SSM"), - new GameMode(EweHeroes.class, GameType.Sheep, "Heroes Of The Ewe"), - new GameMode(SheepMania.class, GameType.Sheep, "Sheep Mania"), - new GameMode(SmashSheep.class, GameType.Sheep, "Smash Sheep"), - new GameMode(OverpoweredSheepQuest.class, GameType.Sheep, "OP Sheep Quest"), - new GameMode(BunnyHop.class, GameType.Quiver, "Bunny Hop"), - new GameMode(UltimateOITQ.class, GameType.Quiver, "Ultimate OITQ"), - new GameMode(Countdown.class, GameType.HideSeek, "Countdown"), - new GameMode(SmashDom.class, GameType.ChampionsDominate, "Smash Dominate"), - new GameMode(SuperPaintstrike.class, GameType.MineStrike, "Super Paintstrike", new Pair[] - { - //Pair.create(MinecraftVersion.Version1_8, "http://file.mineplex.com/ResMinestrike.zip"), - //Pair.create(MinecraftVersion.Version1_9, "http://file.mineplex.com/ResMinestrike19.zip") - Pair.create(MinecraftVersion.Version1_8, "http://198.20.72.74/ResMinestrike.zip"), - Pair.create(MinecraftVersion.Version1_9, "http://198.20.72.74/ResMinestrike19.zip") - }, true), - }, GameDisplay.Brawl, null, false, null, false, true); + + ; GameDisplay _display; boolean _enforceResourcePack; @@ -342,27 +287,23 @@ public enum GameType implements Voteable public boolean isEnforceResourcePack(Game game) { - if (hasGamemodes()) - { - return getGameMode(game.getClass()).enforceResourcePack(); - } - return _enforceResourcePack; + GameMode gameMode = getGameMode(game.getClass()); + + return gameMode == null ? _enforceResourcePack : gameMode.enforceResourcePack(); } public Pair[] getResourcePackUrls(Game game) { - if (hasGamemodes()) - { - return getGameMode(game.getClass()).getResPackURLs(); - } - return _resourcePacks; + GameMode gameMode = getGameMode(game.getClass()); + + return gameMode == null ? _resourcePacks : gameMode.getResPackURLs(); } public GameType[] getMapSource() { return _mapSource; } - + public boolean ownMaps() { return _ownMaps; @@ -373,6 +314,7 @@ public enum GameType implements Voteable return this._display; } + @Override public String getName() { return _display.getName(); @@ -403,25 +345,16 @@ public enum GameType implements Voteable { for (GameMode mode : getGameModes()) { - if (mode.getGameClass() != null && mode.getGameClass().getName().contentEquals(game.getName())) + if (game.equals(mode.getGameClass())) { return mode; } } + return null; } - - public GameType getModeGameType(Class game) - { - return getGameMode(game).getType(); - } - - public boolean isUsingGameModesMaps() - { - return _gameMaps; - } - - public boolean hasGamemodes() + + public boolean hasGameModes() { return _gameModes.length != 0; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/command/SetCommand.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/command/SetCommand.java index f33a43fc6..38b343b7e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/command/SetCommand.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/command/SetCommand.java @@ -81,7 +81,7 @@ public class SetCommand extends CommandBase if (gameModeStr != null) { - if (!gameType.hasGamemodes()) + if (!gameType.hasGameModes()) { UtilPlayer.message(caller, F.main("Game", "The selected GameType, " + F.elem(game) + ", does not have any GameModes")); return; @@ -103,14 +103,7 @@ public class SetCommand extends CommandBase if (mapSourceStr != null) { - Class gameClass = gameType.getGameClass(); - - if (selectedMode != null) - { - gameClass = selectedMode.getGameClass(); - } - - List matchedGameTypes = getSources(gameType, gameClass, mapSourceStr, false); + List matchedGameTypes = getSources(gameType, mapSourceStr, false); if (matchedGameTypes.size() == 0) { UtilPlayer.message(caller, F.main("Game", "Could not find a MapSource matching " + F.elem(mapSourceStr))); @@ -127,18 +120,12 @@ public class SetCommand extends CommandBase if (mapStr != null) { - Class gameClass = gameType.getGameClass(); - if (selectedMode != null) - { - gameClass = selectedMode.getGameClass(); - } - List matchedMaps; // No particular source specified, we'll use all of them if (selectedSource == null) { - List mapTypes = Arrays.asList(Game.getWorldHostNames(gameType, gameClass)); + List mapTypes = Arrays.asList(Game.getWorldHostNames(gameType)); matchedMaps = matchMaps(mapTypes, mapStr, false); } else @@ -241,7 +228,7 @@ public class SetCommand extends CommandBase { input = input.toLowerCase(); - if (!type.hasGamemodes()) return Collections.emptyList(); + if (!type.hasGameModes()) return Collections.emptyList(); List matches = new ArrayList<>(); @@ -261,9 +248,9 @@ public class SetCommand extends CommandBase return matches; } - private List getSources(GameType type, Class gameClass, String input, boolean isTabCompletion) + private List getSources(GameType type, String input, boolean isTabCompletion) { - return matchGameType(input, Game.getWorldHostNames(type, gameClass), isTabCompletion); + return matchGameType(input, Game.getWorldHostNames(type), isTabCompletion); } private List matchMaps(List source, String input, boolean isTabCompletion) @@ -381,58 +368,25 @@ public class SetCommand extends CommandBase String lastArg = args[args.length - 1]; if (lastArg.startsWith(MODE_PREFIX)) { - if (gameType.hasGamemodes()) + if (gameType.hasGameModes()) { return matchGameMode(gameType, gameModeStr, true).stream().map(mode -> MODE_PREFIX + mode.getName().replaceAll(" ", "")).collect(Collectors.toList()); } } else if (lastArg.startsWith(SOURCE_PREFIX)) { - Class gameClass = gameType.getGameClass(); - if (gameType.hasGamemodes()) - { - // If there are gamemodes, you must provide a gamemode type - if (gameModeStr == null) - return null; - - List matchedModes = matchGameMode(gameType, gameModeStr, true); - - // If more than one mode has been matched, we can't show sources - if (matchedModes.size() != 1) - return null; - - gameClass = matchedModes.get(0).getGameClass(); - } - - return getSources(gameType, gameClass, gameSourceStr, true).stream().map(type -> SOURCE_PREFIX + type.name().replaceAll(" ", "")).collect(Collectors.toList()); + return getSources(gameType, gameSourceStr, true).stream().map(type -> SOURCE_PREFIX + type.name().replaceAll(" ", "")).collect(Collectors.toList()); } else if (lastArg.startsWith(MAP_PREFIX)) { - Class gameClass = gameType.getGameClass(); - - if (gameType.hasGamemodes()) - { - // If the game has a gamemode, the mode type must be set - if (gameModeStr == null) - return null; - - List matchedModes = matchGameMode(gameType, gameModeStr, true); - - // If more than one mode has been matched, we can't show maps - if (matchedModes.size() != 1) - return null; - - gameClass = matchedModes.get(0).getGameClass(); - } - // No particular source specified, we'll use all of them if (gameSourceStr == null) { - List mapTypes = Arrays.asList(Game.getWorldHostNames(gameType, gameClass)); + List mapTypes = Arrays.asList(Game.getWorldHostNames(gameType)); return matchMaps(mapTypes, mapStr, true).stream().map(str -> MAP_PREFIX + str).collect(Collectors.toList()); } - List sources = getSources(gameType, gameClass, gameSourceStr, true); + List sources = getSources(gameType, gameSourceStr, true); // If a source has been provided, it must be valid if (sources.size() != 1) 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 a3f377063..df6c1b816 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 @@ -562,7 +562,7 @@ public abstract class Game extends ListenerComponent implements Lifetimed return _gameType.getName(); } - public static GameType[] getWorldHostNames(GameType targetType, Class gameMode) + public static GameType[] getWorldHostNames(GameType targetType) { GameType[] mapSource = new GameType[] { @@ -588,15 +588,6 @@ public abstract class Game extends ListenerComponent implements Lifetimed } } - if (targetType.isUsingGameModesMaps()) - { - GameType mode = targetType.getModeGameType(gameMode); - - if (mode.getMapSource() != null) - return mode.getMapSource(); - else - return new GameType[]{mode}; - } return mapSource; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/GameOption.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/GameOption.java deleted file mode 100644 index 38f67d7fd..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/GameOption.java +++ /dev/null @@ -1,51 +0,0 @@ -/*Every GameOption will have SetOption and GetOption methods - * However, since each GameOption class will have a different return type - * and take different parameters, there isn't much need to create any here at this time -*/ - -package nautilus.game.arcade.game; - -import org.bukkit.material.MaterialData; - -public class GameOption -{ - //Store the name and Description of each option - Literally every GameOption should have these - private String _optionName; - private String _optionDescription; - private MaterialData _optionMaterialData; - - public GameOption(String optName, String optDesc) - { - _optionName = optName; - _optionDescription = optDesc; - } - - public GameOption(MaterialData _optMat, String optName, String optDesc) - { - _optionName = optName; - _optionDescription = optDesc; - _optionMaterialData = _optMat; - } - - //Get methods for name of option and description - public String GetOptionName() - { - return _optionName; - } - - public String GetOptionDescription() - { - return _optionDescription; - } - - public MaterialData GetOptionMaterialData() - { - if(_optionMaterialData != null) - { - return _optionMaterialData; - } - - return null; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/GameServerConfig.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/GameServerConfig.java index f5584e531..d3b12c36a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/GameServerConfig.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/GameServerConfig.java @@ -15,11 +15,9 @@ public class GameServerConfig public String Uptimes; - public ArrayList GameList = new ArrayList<>(); - public ArrayList GameModeList = new ArrayList<>(); - - public HashMap> GameModeMods = new HashMap<>(); - + public final ArrayList GameList = new ArrayList<>(); + public final ArrayList GameModeList = new ArrayList<>(); + //Flags public String HostName = ""; 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 a7b49c3ad..73bf32677 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 @@ -2118,7 +2118,7 @@ public class Bridge extends TeamGame implements OreObsfucation } } - public void setBridgeTime(int time) + public void setBridgeTime(long time) { _bridgeTime = time; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/AppleAttack.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/AppleAttack.java deleted file mode 100644 index fec90dae2..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/AppleAttack.java +++ /dev/null @@ -1,28 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.modes; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.game.games.bridge.Bridge; -import nautilus.game.arcade.game.games.bridge.modes.kits.KitBrawlAppler; -import nautilus.game.arcade.kit.Kit; - -/** - * AppleAttack is a mode for [{@link Bridge} which will remove all kits except for a custom appler {@link KitBrawlAppler} - * - * @author xXVevzZXx - */ -public class AppleAttack extends Bridge -{ - - public AppleAttack(ArcadeManager manager) - { - super(manager, new Kit[]{new KitBrawlAppler(manager)}, GameType.Brawl); - } - - @Override - public String GetMode() - { - return "Apple Attack"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/InsaneBridges.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/InsaneBridges.java deleted file mode 100644 index 30632e560..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/InsaneBridges.java +++ /dev/null @@ -1,198 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.modes; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Chest; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.EnchantmentStorageMeta; -import org.bukkit.potion.Potion; -import org.bukkit.potion.PotionType; - -import mineplex.core.common.util.UtilMath; -import mineplex.core.itemstack.ItemStackFactory; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.modules.AbsorptionFix; -import nautilus.game.arcade.game.games.bridge.Bridge; - -/** - * InsaneBridges is a mode of {@link Bridge} which provides players with starting equipement, better loot and shorter bridge time - * - * @author xXVevzZXx - */ -public class InsaneBridges extends Bridge -{ - private int _untilBridges; - - public InsaneBridges(ArcadeManager manager) - { - super(manager, GameType.Brawl); - - new AbsorptionFix() - .register(this); - - Manager.GetDamage().SetEnabled(false); - - _untilBridges = 60000; // 60 Seconds - - WorldBoundaryKill = true; - } - - @EventHandler - public void fallBridges(GameStateChangeEvent event) - { - if (event.GetState() == GameState.Live) - { - setBridgeTime(_untilBridges); - - for (Player player : GetPlayers(true)) - { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.DIAMOND_SWORD, 4, Enchantment.DAMAGE_ALL)); - - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_HELMET, 2, Enchantment.PROTECTION_ENVIRONMENTAL)); - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_CHESTPLATE, 2, Enchantment.PROTECTION_ENVIRONMENTAL)); - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_LEGGINGS, 2, Enchantment.PROTECTION_ENVIRONMENTAL)); - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_BOOTS, 2, Enchantment.PROTECTION_ENVIRONMENTAL)); - - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW, 2, Enchantment.ARROW_DAMAGE)); - player.getInventory().addItem(new ItemStack(Material.ARROW, 64)); - - player.getInventory().addItem(new ItemStack(Material.GOLDEN_APPLE, 5)); - player.getInventory().addItem(new ItemStack(Material.FISHING_ROD)); - player.getInventory().addItem(new ItemStack(Material.COOKED_BEEF, 32)); - - - player.getInventory().addItem(new ItemStack(Material.IRON_PICKAXE)); - player.getInventory().addItem(new ItemStack(Material.COBBLESTONE, 32)); - } - } - } - - @Override - protected void ParseChests() - { - for (Location loc : WorldData.GetCustomLocs("54")) - { - if (loc.getBlock().getType() != Material.CHEST) - loc.getBlock().setType(Material.CHEST); - - Chest chest = (Chest) loc.getBlock().getState(); - - chest.getBlockInventory().clear(); - - int count = 22 + UtilMath.r(4); - for (int i = 0; i < count; i++) - { - chest.getBlockInventory().addItem(GetChestItem()); - } - } - } - - @Override - protected ItemStack GetChestItem() - { - if (getChestLoot().isEmpty()) - { - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_HELMET)); - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_CHESTPLATE)); - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_LEGGINGS)); - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_BOOTS)); - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_SWORD)); - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_AXE)); - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_PICKAXE)); - - for (int i = 0; i < 13; i++) - { - getChestLoot().add(new ItemStack(Material.GOLDEN_APPLE)); - getChestLoot().add(new ItemStack(Material.ANVIL)); - } - - for (int i = 0; i < 5; i++) - { - Potion potionHealth = new Potion(PotionType.INSTANT_HEAL); - potionHealth.setLevel(2); - potionHealth.setSplash(true); - getChestLoot().add(potionHealth.toItemStack(1)); - - Potion potionDamage = new Potion(PotionType.INSTANT_DAMAGE); - potionDamage.setLevel(2); - potionDamage.setSplash(true); - getChestLoot().add(potionDamage.toItemStack(1)); - - Potion potionStrenght = new Potion(PotionType.STRENGTH); - potionStrenght.setLevel(1); - potionStrenght.setSplash(true); - getChestLoot().add(potionStrenght.toItemStack(1)); - } - - for (int i = 0; i < 5; i++) - { - - ItemStack sharpness = new ItemStack(Material.ENCHANTED_BOOK); - EnchantmentStorageMeta sharpnessMeta = (EnchantmentStorageMeta) sharpness - .getItemMeta(); - sharpnessMeta.addStoredEnchant(Enchantment.DAMAGE_ALL, 1 + UtilMath.r(5), true); - sharpness.setItemMeta(sharpnessMeta); - getChestLoot().add(sharpness); - - ItemStack protection = new ItemStack(Material.ENCHANTED_BOOK); - EnchantmentStorageMeta protectionMeta = (EnchantmentStorageMeta) protection - .getItemMeta(); - protectionMeta.addStoredEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, - 1 + UtilMath.r(4), true); - protection.setItemMeta(protectionMeta); - getChestLoot().add(protection); - - ItemStack power = new ItemStack(Material.ENCHANTED_BOOK); - EnchantmentStorageMeta powerMeta = (EnchantmentStorageMeta) power.getItemMeta(); - powerMeta.addStoredEnchant(Enchantment.ARROW_DAMAGE, 1 + UtilMath.r(5), true); - power.setItemMeta(powerMeta); - getChestLoot().add(power); - } - - for (int i = 0; i < 10; i++) - getChestLoot().add(new ItemStack(Material.EXP_BOTTLE, 10)); - - for (int i = 0; i < 6; i++) - getChestLoot().add(new ItemStack(Material.BOW)); - for (int i = 0; i < 8; i++) - getChestLoot().add(new ItemStack(Material.ARROW, 8)); - - for (int i = 0; i < 12; i++) - getChestLoot().add(new ItemStack(Material.MUSHROOM_SOUP)); - for (int i = 0; i < 12; i++) - getChestLoot().add(new ItemStack(Material.COOKED_CHICKEN, 2)); - } - - ItemStack stack = getChestLoot().get(UtilMath.r(getChestLoot().size())); - - int amount = 1; - - if (stack.getType().getMaxStackSize() > 1) - amount = stack.getAmount() + UtilMath.r(stack.getAmount()); - - ItemStack item = stack.clone(); - item.setAmount(amount); - - return item; - } - - @Override - public String GetMode() - { - return "Insane Bridges"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/LuckyBridges.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/LuckyBridges.java deleted file mode 100644 index c9050aaa1..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/LuckyBridges.java +++ /dev/null @@ -1,75 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.modes; - -import mineplex.core.common.util.UtilMath; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.game.modules.AbsorptionFix; -import nautilus.game.arcade.game.games.bridge.Bridge; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.event.EventHandler; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.inventory.ItemStack; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; - -/** - * LuckyBridges gamemode for Bridges - * - * @author xXVevzZXx - */ -public class LuckyBridges extends Bridge -{ - - private HashMap> _drops; - - public LuckyBridges(ArcadeManager manager) - { - super(manager, GameType.Brawl); - - _drops = new HashMap<>(); - - _drops.put(Material.DIAMOND_ORE, Arrays.asList( - Material.DIAMOND_HELMET, Material.DIAMOND_CHESTPLATE, Material.DIAMOND_LEGGINGS, Material.DIAMOND_BOOTS, - Material.DIAMOND_PICKAXE, Material.DIAMOND_AXE, Material.DIAMOND_SWORD)); - - - _drops.put(Material.IRON_ORE, Arrays.asList( - Material.IRON_HELMET, Material.IRON_CHESTPLATE, Material.IRON_LEGGINGS, Material.IRON_BOOTS, - Material.IRON_PICKAXE, Material.IRON_AXE, Material.IRON_SWORD)); - - - _drops.put(Material.GOLD_ORE, Arrays.asList( - Material.GOLD_HELMET, Material.GOLD_CHESTPLATE, Material.GOLD_LEGGINGS, Material.GOLD_BOOTS, - Material.GOLD_PICKAXE, Material.GOLD_AXE, Material.GOLD_SWORD, Material.GOLDEN_APPLE)); - - new AbsorptionFix() - .register(this); - } - - @EventHandler - public void mine(BlockBreakEvent event) - { - List blockDrops = _drops.get(event.getBlock().getType()); - if (blockDrops != null) - { - event.setCancelled(true); - event.getBlock().setType(Material.AIR); - - Bukkit.getScheduler().runTask(Manager.getPlugin(), () -> - event.getBlock().getWorld().dropItem( - event.getBlock().getLocation().add(0.5, 0.2, 0.5), - new ItemStack(blockDrops.get(UtilMath.r(blockDrops.size())))) - ); - } - } - - @Override - public String GetMode() - { - return "Lucky Bridges"; - } - -} 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 35a3654af..34775437c 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 @@ -1,493 +1,54 @@ package nautilus.game.arcade.game.games.bridge.modes; -import java.util.ArrayList; -import java.util.HashMap; +import java.util.concurrent.TimeUnit; -import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.Chest; -import org.bukkit.block.Sign; -import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; 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.PlayerInteractEvent; +import org.bukkit.event.EventPriority; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.EnchantmentStorageMeta; -import org.bukkit.potion.Potion; -import org.bukkit.potion.PotionType; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilBlock; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilPlayer; 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.modules.AbsorptionFix; import nautilus.game.arcade.game.games.bridge.Bridge; -import net.md_5.bungee.api.ChatColor; +import nautilus.game.arcade.game.modules.AbsorptionFix; -/** - * OverpoweredBridge gamemode for Bridges - * - * @author xXVevzZXx - */ public class OverpoweredBridge extends Bridge { - private HashMap _starterChests; - private HashMap _starterItems; + private final ItemStack[] _items = + { + new ItemStack(Material.DIAMOND, 64), + new ItemStack(Material.DIAMOND, 64), + new ItemStack(Material.WOOD, 128), + new ItemStack(Material.GOLDEN_APPLE, 10), + new ItemStack(Material.ENCHANTMENT_TABLE), + new ItemStack(Material.BOOKSHELF, 32), + new ItemStack(Material.EXP_BOTTLE, 64), + new ItemStack(Material.COOKED_BEEF, 64), + new ItemStack(Material.MUSHROOM_SOUP), + new ItemStack(Material.MUSHROOM_SOUP), + new ItemStack(Material.MUSHROOM_SOUP), + new ItemStack(Material.MUSHROOM_SOUP) + }; public OverpoweredBridge(ArcadeManager manager) { - super(manager, GameType.Brawl); - - WorldBoundaryKill = true; - - Manager.GetDamage().SetEnabled(false); - + super(manager, GameType.Bridge); + new AbsorptionFix() - .register(this); - _starterItems = new HashMap<>(); + .register(this); - _starterItems.put(Material.WOOD, 64); - _starterItems.put(Material.GOLDEN_APPLE, 10); - _starterItems.put(Material.DIAMOND_PICKAXE, 1); - _starterItems.put(Material.ENCHANTMENT_TABLE, 1); - _starterItems.put(Material.ANVIL, 1); - _starterItems.put(Material.BOOKSHELF, 64); - _starterItems.put(Material.BOOK, 64); - _starterItems.put(Material.EXP_BOTTLE, 64); - _starterItems.put(Material.COOKED_BEEF, 64); - _starterItems.put(Material.DIAMOND, 300); + setBridgeTime(TimeUnit.MINUTES.toMillis(3)); } - @Override - public void ParseData() + @EventHandler(priority = EventPriority.MONITOR) + public void playerTeleportIn(PlayerPrepareTeleportEvent event) { - _starterChests = new HashMap<>(); - - super.ParseData(); - } - - @EventHandler - public void fallBridges(GameStateChangeEvent event) - { - if (event.GetState() == GameState.Live) - { - setBridgeTime(1000*60*8); - } - } + Player player = event.GetPlayer(); - @EventHandler - public void informChest(GameStateChangeEvent event) - { - if (event.GetState() != GameState.Live) - return; - - for (Player player : GetPlayers(true)) - { - UtilPlayer.message(player, F.main("Game", ChatColor.AQUA - + "A supply chest spawned near you. You should take a look into it")); - } - } - - @EventHandler - public void supplyChest(PlayerPrepareTeleportEvent event) - { - Location chestLoc = event.GetPlayer().getLocation().clone().add(0, 0, 1); - - while (chestLoc.getBlock().getType() == Material.CHEST) - chestLoc.add(2, 0, 0); - - _starterChests.put(event.GetPlayer(), chestLoc); - - Block block = chestLoc.getBlock(); - block.setType(Material.CHEST); - chestLoc.clone().add(0, 1, 0).getBlock().setType(Material.AIR); - - Chest chest = (Chest) block.getState(); - - Block signBlock = chestLoc.clone().add(0, 0, -1).getBlock(); - signBlock.setType(Material.WALL_SIGN); - Sign sign = (Sign) signBlock.getState(); - sign.setLine(0, "§b============="); - sign.setLine(1, "§4§l" + event.GetPlayer().getName() + ChatColor.RESET + "§4's"); - sign.setLine(2, "§4Supply Chest"); - sign.setLine(3, "§b============="); - sign.update(); - - for (Material mat : _starterItems.keySet()) - { - ItemStack stack = new ItemStack(mat); - int amount = _starterItems.get(mat); - - if (amount > stack.getMaxStackSize()) - { - while (amount > 0) - { - ItemStack item = new ItemStack(mat); - - if (amount > stack.getMaxStackSize()) - item.setAmount(stack.getMaxStackSize()); - else - item.setAmount(amount); - - chest.getInventory().addItem(item); - - amount -= stack.getMaxStackSize(); - } - } - else - { - ItemStack item = new ItemStack(mat, amount); - chest.getInventory().addItem(item); - } - } - - } - - @EventHandler - public void openChest(PlayerInteractEvent event) - { - if (event.getAction() == Action.RIGHT_CLICK_BLOCK) - { - if (event.getClickedBlock().getType() != Material.CHEST) - return; - - if (disallow(event.getPlayer(), event.getClickedBlock())) - event.setCancelled(true); - } - } - - @EventHandler - public void placeChest(BlockPlaceEvent event) - { - if (event.getBlockPlaced().getType() != Material.CHEST) - return; - - if (disallow(event.getPlayer(), event.getBlock())) - event.setCancelled(true); - } - - @EventHandler - public void CheatChestBreak(BlockBreakEvent event) - { - if (event.getBlock().getType() != Material.CHEST) - return; - - if (!IsAlive(event.getPlayer())) - return; - - for (Player player : _starterChests.keySet()) - { - if (player == event.getPlayer()) - continue; - - if (_starterChests.get(player).getBlock().getLocation() - .equals(event.getBlock().getLocation())) - { - event.setCancelled(true); - break; - } - } - } - - private boolean disallow(Player clicker, Block block) - { - for (Player player : _starterChests.keySet()) - { - if (player == clicker) - continue; - - Location chest = _starterChests.get(player); - - if (chest.getBlock().getLocation().equals(block.getLocation())) - { - return true; - } - - for (Block surround : UtilBlock.getSurrounding(block, false)) - { - if(chest.getBlock().getLocation().equals(surround.getLocation())) - return true; - } - } - return false; - } - - @Override - public void ParseOre(ArrayList teamOre) - { - int coal = (int) ((teamOre.size() / 32d) * getOreDensity()); - int iron = (int) ((teamOre.size() / 24d) * getOreDensity()); - int gold = (int) ((teamOre.size() / 64d) * getOreDensity()); - int diamond = 500 + (int) ((teamOre.size() / 32d) * getOreDensity()); - - int gravel = (int) ((teamOre.size() / 64d) * getOreDensity()); - - int lowY = 256; - int highY = 0; - - for (Location loc : teamOre) - { - if (loc.getBlockY() < lowY) - lowY = loc.getBlockY(); - - if (loc.getBlockY() > highY) - highY = loc.getBlockY(); - - loc.getBlock().setTypeId(1); - } - - int varY = highY - lowY; - - //Gravel - for (int i = 0; i < gravel && !teamOre.isEmpty(); i++) - { - int attempts = 20; - int id = 0; - - while (attempts > 0) - { - id = UtilMath.r(teamOre.size()); - - double height = (double) (teamOre.get(id).getBlockY() - lowY) / (double) varY; - - if (height > 0.8) - break; - - else if (height > 0.6 && Math.random() > 0.4) - break; - - else if (height > 0.4 && Math.random() > 0.6) - break; - - else if (height > 0.2 && Math.random() > 0.8) - break; - } - - CreateOre(teamOre.remove(id), Material.GRAVEL, 6); - } - - //Coal - for (int i = 0; i < coal && !teamOre.isEmpty(); i++) - { - int attempts = 20; - int id = 0; - - while (attempts > 0) - { - id = UtilMath.r(teamOre.size()); - - double height = (double) (teamOre.get(id).getBlockY() - lowY) / (double) varY; - - if (height > 0.8) - break; - - else if (height > 0.6 && Math.random() > 0.4) - break; - - else if (height > 0.4 && Math.random() > 0.6) - break; - - else if (height > 0.2 && Math.random() > 0.8) - break; - } - - CreateOre(teamOre.remove(id), Material.COAL_ORE, 6); - } - - //Iron - for (int i = 0; i < iron && !teamOre.isEmpty(); i++) - { - int id = UtilMath.r(teamOre.size()); - - CreateOre(teamOre.remove(id), Material.IRON_ORE, 3); - } - - //Gold - for (int i = 0; i < gold && !teamOre.isEmpty(); i++) - { - int attempts = 20; - int id = 0; - - while (attempts > 0) - { - id = UtilMath.r(teamOre.size()); - - double height = (double) (teamOre.get(id).getBlockY() - lowY) / (double) varY; - - if (height > 0.8 && Math.random() > 0.8) - break; - - else if (height > 0.6 && Math.random() > 0.7) - break; - - else if (height > 0.4 && Math.random() > 0.6) - break; - - else if (height > 0.2 && Math.random() > 0.4) - break; - - else if (Math.random() > 0.2) - break; - } - - CreateOre(teamOre.remove(id), Material.GOLD_ORE, 3); - } - - //Diamond - for (int i = 0; i < diamond && !teamOre.isEmpty(); i++) - { - int attempts = 20; - int id = 0; - - while (attempts > 0) - { - id = UtilMath.r(teamOre.size()); - - double height = (double) (teamOre.get(id).getBlockY() - lowY) / (double) varY; - - if (height > 0.8) - continue; - - else if (height > 0.6 && Math.random() > 0.9) - break; - - else if (height > 0.4 && Math.random() > 0.7) - break; - - else if (height > 0.2 && Math.random() > 0.5) - break; - - else - break; - } - - CreateOre(teamOre.remove(id), Material.DIAMOND_ORE, 5); - } - } - - @Override - protected void ParseChests() - { - for (Location loc : WorldData.GetCustomLocs("54")) - { - if (loc.getBlock().getType() != Material.CHEST) - loc.getBlock().setType(Material.CHEST); - - Chest chest = (Chest) loc.getBlock().getState(); - - chest.getBlockInventory().clear(); - - int count = 22 + UtilMath.r(4); - for (int i = 0; i < count; i++) - { - chest.getBlockInventory().addItem(GetChestItem()); - } - } - } - - @Override - protected ItemStack GetChestItem() - { - if (getChestLoot().isEmpty()) - { - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_HELMET)); - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_CHESTPLATE)); - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_LEGGINGS)); - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_BOOTS)); - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_SWORD)); - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_AXE)); - for (int i = 0; i < 2; i++) - getChestLoot().add(new ItemStack(Material.DIAMOND_PICKAXE)); - - for (int i = 0; i < 13; i++) - { - getChestLoot().add(new ItemStack(Material.GOLDEN_APPLE)); - getChestLoot().add(new ItemStack(Material.ANVIL)); - } - - for (int i = 0; i < 5; i++) - { - Potion potionHealth = new Potion(PotionType.INSTANT_HEAL); - potionHealth.setLevel(2); - potionHealth.setSplash(true); - getChestLoot().add(potionHealth.toItemStack(1)); - - Potion potionDamage = new Potion(PotionType.INSTANT_DAMAGE); - potionDamage.setLevel(2); - potionDamage.setSplash(true); - getChestLoot().add(potionDamage.toItemStack(1)); - - Potion potionStrenght = new Potion(PotionType.STRENGTH); - potionStrenght.setLevel(1); - potionStrenght.setSplash(true); - getChestLoot().add(potionStrenght.toItemStack(1)); - } - - for (int i = 0; i < 5; i++) - { - - ItemStack sharpness = new ItemStack(Material.ENCHANTED_BOOK); - EnchantmentStorageMeta sharpnessMeta = (EnchantmentStorageMeta) sharpness - .getItemMeta(); - sharpnessMeta.addStoredEnchant(Enchantment.DAMAGE_ALL, 1 + UtilMath.r(5), true); - sharpness.setItemMeta(sharpnessMeta); - getChestLoot().add(sharpness); - - ItemStack protection = new ItemStack(Material.ENCHANTED_BOOK); - EnchantmentStorageMeta protectionMeta = (EnchantmentStorageMeta) protection - .getItemMeta(); - protectionMeta.addStoredEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, - 1 + UtilMath.r(4), true); - protection.setItemMeta(protectionMeta); - getChestLoot().add(protection); - - ItemStack power = new ItemStack(Material.ENCHANTED_BOOK); - EnchantmentStorageMeta powerMeta = (EnchantmentStorageMeta) power.getItemMeta(); - powerMeta.addStoredEnchant(Enchantment.ARROW_DAMAGE, 1 + UtilMath.r(5), true); - power.setItemMeta(powerMeta); - getChestLoot().add(power); - } - - for (int i = 0; i < 10; i++) - getChestLoot().add(new ItemStack(Material.EXP_BOTTLE, 10)); - - for (int i = 0; i < 6; i++) - getChestLoot().add(new ItemStack(Material.BOW)); - for (int i = 0; i < 8; i++) - getChestLoot().add(new ItemStack(Material.ARROW, 8)); - - for (int i = 0; i < 12; i++) - getChestLoot().add(new ItemStack(Material.MUSHROOM_SOUP)); - for (int i = 0; i < 12; i++) - getChestLoot().add(new ItemStack(Material.COOKED_CHICKEN, 2)); - } - - ItemStack stack = getChestLoot().get(UtilMath.r(getChestLoot().size())); - - int amount = 1; - - if (stack.getType().getMaxStackSize() > 1) - amount = stack.getAmount() + UtilMath.r(stack.getAmount()); - - ItemStack item = stack.clone(); - item.setAmount(amount); - - return item; + player.getInventory().addItem(_items); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/SpeedBridges.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/SpeedBridges.java deleted file mode 100644 index 18906b3c0..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/SpeedBridges.java +++ /dev/null @@ -1,60 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.modes; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.inventory.ItemStack; - -import mineplex.minecraft.game.core.condition.ConditionManager; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.games.bridge.Bridge; - -/** - * SpeedBridges gamemode for Bridges - * - * @author xXVevzZXx - */ -public class SpeedBridges extends Bridge -{ - - private int _untilBridges; - - public SpeedBridges(ArcadeManager manager) - { - super(manager, GameType.Brawl); - - _untilBridges = 10000; - } - - @EventHandler - public void fallBridges(GameStateChangeEvent event) - { - if (event.GetState() == GameState.Live) - { - setBridgeTime(_untilBridges); - - for (Player player : GetPlayers(true)) - { - player.getInventory().addItem(new ItemStack(Material.IRON_SWORD)); - player.getInventory().addItem(new ItemStack(Material.IRON_HELMET)); - player.getInventory().addItem(new ItemStack(Material.IRON_CHESTPLATE)); - player.getInventory().addItem(new ItemStack(Material.IRON_LEGGINGS)); - player.getInventory().addItem(new ItemStack(Material.IRON_BOOTS)); - - player.getInventory().addItem(new ItemStack(Material.COOKED_BEEF, 10)); - - Manager.GetCondition().Factory().Speed("Game", player, player, GameTimeout, 2, true, true, true); - } - } - } - - @Override - public String GetMode() - { - return "Speed Bridges"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/UHCBridges.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/UHCBridges.java deleted file mode 100644 index 56dd41e3d..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/UHCBridges.java +++ /dev/null @@ -1,147 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.modes; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityRegainHealthEvent; -import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; -import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.inventory.CraftingInventory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.ShapedRecipe; -import org.bukkit.material.MaterialData; -import org.bukkit.scoreboard.DisplaySlot; -import org.bukkit.scoreboard.Objective; - -import mineplex.core.common.util.C; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.common.util.UtilServer; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.modules.AbsorptionFix; -import nautilus.game.arcade.game.games.bridge.Bridge; - -/** - * UHCBridges is a mode of {@link Bridge} which is a UHC like gamemode - * - * @author xXVevzZXx - */ -public class UHCBridges extends Bridge -{ - - public UHCBridges(ArcadeManager manager) - { - super(manager, GameType.Brawl); - - SoupEnabled = false; - - new AbsorptionFix() - .register(this); - - ShapedRecipe headApple = new ShapedRecipe(new ItemStack(Material.GOLDEN_APPLE, 1)); - headApple.shape("GGG", "GHG", "GGG"); - headApple.setIngredient('G', Material.GOLD_INGOT); - headApple.setIngredient('H', new MaterialData(Material.SKULL_ITEM, (byte) 3)); - UtilServer.getServer().addRecipe(headApple); - } - - @EventHandler - public void registerObj(GameStateChangeEvent event) - { - if (event.GetState() != GameState.Prepare) - return; - - Objective objective = Scoreboard.getScoreboard().registerNewObjective("Health", "health"); - objective.setDisplaySlot(DisplaySlot.PLAYER_LIST); - } - - @EventHandler - public void regenHealth(EntityRegainHealthEvent event) - { - if (event.getRegainReason() == RegainReason.SATIATED) - event.setCancelled(true); - } - - @EventHandler - public void gappleDrop(EntityDeathEvent event) - { - if (event.getEntity() instanceof Player) - { - event.getDrops().add(new ItemStack(Material.GOLDEN_APPLE, 1)); - } - } - - @EventHandler - public void giveItems(GameStateChangeEvent event) - { - if (event.GetState() == GameState.Live) - { - for (Player player : GetPlayers(true)) - { - player.getInventory().addItem(new ItemStack(Material.GOLDEN_APPLE, 3)); - } - } - } - - @EventHandler - public void headPlaceCancel(BlockPlaceEvent event) - { - if (event.getItemInHand().getType() == Material.SKULL || event.getItemInHand().getType() == Material.SKULL_ITEM) - event.setCancelled(true); - } - - @EventHandler(priority = EventPriority.MONITOR) - public void headPickup(PlayerPickupItemEvent event) - { - if (!IsLive()) - return; - - if (event.isCancelled()) - return; - - if (event.getItem().getItemStack().getType() == Material.SKULL_ITEM) - { - UtilPlayer.message(event.getPlayer(), " "); - UtilPlayer.message(event.getPlayer(), C.cGreen + C.Bold + "You picked up a Player Head!"); - UtilPlayer.message(event.getPlayer(), C.cWhite + "Use the recipe for Golden Apple, but Head replaces Apple."); - UtilPlayer.message(event.getPlayer(), " "); - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void craftGoldenAppleDeny(PrepareItemCraftEvent event) - { - if (event.getRecipe().getResult() == null) - return; - - Material type = event.getRecipe().getResult().getType(); - - if (type != Material.GOLDEN_APPLE) - return; - - if (!(event.getInventory() instanceof CraftingInventory)) - return; - - CraftingInventory inv = (CraftingInventory) event.getInventory(); - - for (ItemStack item : inv.getMatrix()) - if (item != null && item.getType() != Material.AIR) - if (item.getType() == Material.GOLD_INGOT) - return; - - inv.setResult(null); - } - - @Override - public String GetMode() - { - return "UHC Bridges"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/kits/KitBrawlAppler.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/kits/KitBrawlAppler.java deleted file mode 100644 index 4c8ba9f8a..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/modes/kits/KitBrawlAppler.java +++ /dev/null @@ -1,36 +0,0 @@ -package nautilus.game.arcade.game.games.bridge.modes.kits; - -import org.bukkit.entity.Player; - -import mineplex.core.game.kit.GameKit; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.game.games.bridge.kits.KitApple; -import nautilus.game.arcade.kit.Kit; -import nautilus.game.arcade.kit.Perk; -import nautilus.game.arcade.kit.perks.PerkApple; - -/** - * KitBrawlAppler is a variation of the Kit [{@link KitApple} which has a shorter delay of spawning apples - * - * @author xXVevzZXx - */ -public class KitBrawlAppler extends Kit -{ - - private static final Perk[] PERKS = - { - new PerkApple(3000) - }; - - public KitBrawlAppler(ArcadeManager manager) - { - super(manager, GameKit.BRIDGES_APPLER, PERKS); - } - - @Override - public void GiveItems(Player player) - { - - } -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/build/modes/DukesOfDecoration.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/build/modes/DukesOfDecoration.java deleted file mode 100644 index 43c444190..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/build/modes/DukesOfDecoration.java +++ /dev/null @@ -1,232 +0,0 @@ -package nautilus.game.arcade.game.games.build.modes; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.bukkit.Bukkit; -import org.bukkit.Effect; -import org.bukkit.GameMode; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockDamageEvent; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilInv; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.recharge.Recharge; -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.games.build.Build; -import net.md_5.bungee.api.ChatColor; - -/** - * DukesOfDecoration gamemode for Master Builders - * - * @author xXVevzZXx - */ -public class DukesOfDecoration extends Build -{ - private List _blocks; - - public DukesOfDecoration(ArcadeManager manager) - { - super(manager, GameType.Brawl); - - List notAllowed = Arrays.asList(new Material[]{ - Material.COMMAND, - Material.COMMAND_MINECART, - Material.BARRIER, - Material.BURNING_FURNACE, - Material.MOB_SPAWNER, - Material.FURNACE, - Material.DRAGON_EGG, - Material.ENDER_PORTAL, - Material.ENDER_PORTAL_FRAME, - Material.SOIL, - Material.PORTAL, - Material.GLOWING_REDSTONE_ORE, - Material.SUGAR_CANE_BLOCK, - Material.IRON_DOOR_BLOCK, - Material.DOUBLE_STEP, - Material.DOUBLE_PLANT, - Material.DOUBLE_STONE_SLAB2, - Material.WOOD_DOUBLE_STEP, - Material.BREWING_STAND, - Material.WALL_SIGN, - Material.YELLOW_FLOWER, - Material.RED_ROSE, - Material.SAPLING, - Material.RED_MUSHROOM, - Material.BROWN_MUSHROOM, - Material.DIODE_BLOCK_ON, - Material.DIODE_BLOCK_OFF, - Material.WATER, - Material.STATIONARY_WATER, - Material.LAVA, - Material.STATIONARY_WATER, - Material.SIGN_POST, - Material.REDSTONE_LAMP_ON, - Material.PISTON_EXTENSION, - Material.MELON_STEM, - Material.BED_BLOCK, - Material.POTATO, - Material.CARROT, - Material.COCOA, - Material.REDSTONE_WIRE, - Material.SKULL, - Material.CROPS, - Material.FLOWER_POT, - Material.HUGE_MUSHROOM_1, - Material.HUGE_MUSHROOM_2, - Material.FIRE - }); - _blocks = new ArrayList<>(); - - for (int i = 0; i < 8; i++) - { - Material mat = Material.values()[1 + UtilMath.r(174)]; - while (_blocks.contains(mat) || notAllowed.contains(mat)) - { - mat = Material.values()[1 + UtilMath.r(174)]; - } - System.out.println(mat.toString()); - _blocks.add(mat); - } - } - - @Override - @EventHandler - public void prepare(PlayerPrepareTeleportEvent event) - { - event.GetPlayer().setGameMode(GameMode.SURVIVAL); - event.GetPlayer().setAllowFlight(true); - event.GetPlayer().setFlying(true); - event.GetPlayer().setFlySpeed(0.04f); - } - - @EventHandler - public void blockDamage(BlockDamageEvent event) - { - if (!IsLive()) - return; - - if(!Recharge.Instance.usable(event.getPlayer(), "Block Break")) - return; - - Block block = event.getBlock(); - BlockBreakEvent breakEvent = new BlockBreakEvent(block, event.getPlayer()); - Bukkit.getPluginManager().callEvent(breakEvent); - - if (breakEvent.isCancelled()) - return; - - block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getTypeId()); - block.setTypeId(0); - - Recharge.Instance.use(event.getPlayer(), "Block Break", 100, false, false); - } - - @EventHandler - public void keepBlocks(BlockPlaceEvent event) - { - if (!IsLive()) - return; - - ItemStack item = event.getPlayer().getItemInHand().clone(); - int slot = event.getPlayer().getInventory().getHeldItemSlot(); - event.getPlayer().getInventory().setItem(slot, item); - } - - @EventHandler - public void giveBlocks(GameStateChangeEvent event) - { - if (event.GetState() != GameState.Live) - return; - - for (Player player : GetPlayers(true)) - { - giveBlocks(player); - } - } - - @EventHandler - public void giveBlockCommand(PlayerCommandPreprocessEvent event) - { - if(!IsLive()) - return; - - if (!IsPlaying(event.getPlayer())) - return; - - if (!event.getMessage().equalsIgnoreCase("/giveblocks")) - return; - - event.setCancelled(true); - - UtilInv.Clear(event.getPlayer()); - giveBlocks(event.getPlayer()); - } - - public void giveBlocks(Player player) - { - Manager.runSyncLater(new Runnable() - { - - @Override - public void run() - { - for (Material mat : _blocks) - { - UtilInv.insert(player, buildingBlock(new ItemStack(mat))); - } - - UtilPlayer.message(player, F.main("Game", "You have been given your building blocks. If you want to get them once again type " + F.game("/giveblocks"))); - } - - }, 10); - } - - @EventHandler - public void placeBlock(BlockPlaceEvent event) - { - if (!_blocks.contains(event.getBlockPlaced().getType()) - || (event.getBlockPlaced().getType() == Material.WOOL && event.getBlock().getData() != 0 - || event.getBlockPlaced().getType() == Material.STAINED_CLAY && event.getBlock().getData() != 0 - || event.getBlockPlaced().getType() == Material.STAINED_GLASS && event.getBlock().getData() != 0 - || event.getBlockPlaced().getType() == Material.STAINED_GLASS_PANE && event.getBlock().getData() != 0)) - { - event.setCancelled(true); - UtilPlayer.message(event.getPlayer(), F.main("Game", "You can not place this Block")); - } - } - - private ItemStack buildingBlock(ItemStack item) - { - ItemMeta meta = item.getItemMeta(); - ChatColor color = ChatColor.values()[UtilMath.r(14)]; - - if(color == ChatColor.BLACK || color == ChatColor.GRAY || color == ChatColor.DARK_GRAY || color == ChatColor.WHITE) - color = ChatColor.RED; - - meta.setLore(Arrays.asList(new String[]{color + "" + ChatColor.BOLD + "Building block"})); - item.setItemMeta(meta); - return item; - } - - @Override - public String GetMode() - { - return "Dukes Of Decoration"; - } -} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/build/modes/TeamBuild.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/build/modes/TeamBuild.java deleted file mode 100644 index 5a58362ca..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/build/modes/TeamBuild.java +++ /dev/null @@ -1,190 +0,0 @@ -package nautilus.game.arcade.game.games.build.modes; - -import java.util.AbstractMap; -import java.util.ArrayList; -import java.util.List; -import java.util.Map.Entry; - -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; - -import mineplex.core.common.util.C; -import mineplex.core.common.util.UtilTextMiddle; -import mineplex.core.common.util.UtilTime; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.GameTeam; -import nautilus.game.arcade.game.games.build.Build; -import nautilus.game.arcade.game.games.build.BuildData; -import nautilus.game.arcade.game.games.build.BuildQuality; -import nautilus.game.arcade.game.team.NamedTeamsModule; -import nautilus.game.arcade.game.team.TeamRequestsModule; -import nautilus.game.arcade.game.team.selectors.FillToSelector; - -/** - * TeamBuild gamemode for Master builders - * - * @author xXVevzZXx - */ -public class TeamBuild extends Build -{ - private List _winners; - private List> _scoreboardPlaces = new ArrayList<>(); - - public TeamBuild(ArcadeManager manager) - { - super(manager, GameType.Brawl); - - _teamSelector = new FillToSelector(this, 2); - - new NamedTeamsModule() - .setTeamPerSpawn(true) - .register(this); - - new TeamRequestsModule() - .register(this); - - _winners = new ArrayList<>(); - } - - @Override - @EventHandler - public void prepare(GameStateChangeEvent event) - { - if (event.GetState() == GameState.Live) - { - for (GameTeam team : GetTeamList()) - { - Location spawn = team.GetSpawns().get(0); - - BuildData data = new BuildData(team, spawn, WorldData.GetDataLocs("YELLOW")); - - for (Player player : team.GetPlayers(true)) - { - getData().put(player, data); - player.setFlySpeed(0.1f); - } - } - - setWord(getNextWord()); - - UtilTextMiddle.display(null, C.cYellow + "Build " + C.cWhite + getWord(), 0, 80, 5); - - this.WorldTimeSet = -1; - } - } - - public void writeScoreboard() - { - //Wipe Last - Scoreboard.reset(); - - Scoreboard.writeNewLine(); - Scoreboard.write(C.cYellow + C.Bold + "Build Theme"); - Scoreboard.write(getWord()); - - - Scoreboard.writeNewLine(); - - if (getBuildGameState() == 0) - { - Scoreboard.write(C.cYellow + C.Bold + "Build Time"); - Scoreboard.write(UtilTime.MakeStr(Math.max(0, getBuildTime() - (System.currentTimeMillis() - this.GetStateTime())), 0)); - } - else if (getBuildGameState() == 2) - { - Scoreboard.write(C.cYellow + C.Bold + "Vote Time"); - Scoreboard.write(UtilTime.MakeStr(Math.max(0, getVoteTime() - (System.currentTimeMillis() - getBuildStateTime())), 0)); - } - else if (getBuildGameState() == 4) - { - for (Entry score : _scoreboardPlaces) - { - Scoreboard.write(BuildQuality.getFinalQuality(score.getValue()).getColor() + (int)(score.getValue().intValue()/10) + " " + ChatColor.RESET + score.getKey().getDisplayName()); - } - } - - - Scoreboard.draw(); - } - - @Override - public void calculatePlaces() - { - List places = new ArrayList<>(); - - //Calculate Places - boolean first = true; - while (!getData().isEmpty()) - { - GameTeam bestTeam = null; - double bestPoints = 0; - - for (Player player : getData().keySet()) - { - double points = getData().get(player).getPoints(); - - if (bestTeam == null || points > bestPoints) - { - bestTeam = getData().get(player).Team; - bestPoints = points; - } - } - - BuildData data = null; - //Average points per player is 1000, so divided by 50 = 20 gems - for (Player player : bestTeam.GetPlayers(true)) - { - AddGems(player, bestPoints / 50, "Build Votes", false, false); - - data = getData().remove(player); - } - - //Teleport to winner - if (first) - { - teleportPlayers(data); - first = false; - } - - places.add(bestTeam); - _scoreboardPlaces.add(new AbstractMap.SimpleEntry(bestTeam, bestPoints)); - } - - //Announce - AnnounceEnd(places.get(0)); - - //Gems - if (places.size() >= 1) - { - for (Player player : places.get(0).GetPlayers(true)) - { - _winners.add(player); - AddGems(player, 20, "1st Place", false, false); - } - } - - for (Player player : GetPlayers(false)) - { - if (player.isOnline()) - { - AddGems(player, 10, "Participation", false, false); - } - } - } - - @Override - public List getWinners() - { - return _winners; - } - - @Override - public String GetMode() - { - return "Team Master Builders"; - } -} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/modes/SmashDom.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/modes/SmashDom.java deleted file mode 100644 index a5a158191..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/modes/SmashDom.java +++ /dev/null @@ -1,107 +0,0 @@ -package nautilus.game.arcade.game.games.champions.modes; - -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.entity.EntityDamageEvent.DamageCause; - -import mineplex.minecraft.game.core.damage.CustomDamageEvent; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.game.games.common.Domination; -import nautilus.game.arcade.game.games.smash.kits.KitBlaze; -import nautilus.game.arcade.game.games.smash.kits.KitChicken; -import nautilus.game.arcade.game.games.smash.kits.KitCow; -import nautilus.game.arcade.game.games.smash.kits.KitCreeper; -import nautilus.game.arcade.game.games.smash.kits.KitEnderman; -import nautilus.game.arcade.game.games.smash.kits.KitGolem; -import nautilus.game.arcade.game.games.smash.kits.KitMagmaCube; -import nautilus.game.arcade.game.games.smash.kits.KitPig; -import nautilus.game.arcade.game.games.smash.kits.KitSheep; -import nautilus.game.arcade.game.games.smash.kits.KitSkeletalHorse; -import nautilus.game.arcade.game.games.smash.kits.KitSkeleton; -import nautilus.game.arcade.game.games.smash.kits.KitSkySquid; -import nautilus.game.arcade.game.games.smash.kits.KitSlime; -import nautilus.game.arcade.game.games.smash.kits.KitSnowman; -import nautilus.game.arcade.game.games.smash.kits.KitSpider; -import nautilus.game.arcade.game.games.smash.kits.KitWitch; -import nautilus.game.arcade.game.games.smash.kits.KitWitherSkeleton; -import nautilus.game.arcade.game.games.smash.kits.KitWolf; -import nautilus.game.arcade.game.games.smash.kits.KitZombie; -import nautilus.game.arcade.kit.Kit; - -/** - * SmashDom - * - * @author xXVevzZXx - */ -public class SmashDom extends Domination -{ - - public SmashDom(ArcadeManager manager) - { - super(manager, GameType.Brawl, new Kit[] - { - new KitSkeleton(manager), - new KitGolem(manager), - new KitSpider(manager), - new KitSlime(manager), - - new KitCreeper(manager), - new KitEnderman(manager), - new KitSnowman(manager), - new KitWolf(manager), - - - new KitBlaze(manager), - new KitWitch(manager), - new KitChicken(manager), - new KitSkeletalHorse(manager), - new KitPig(manager), - new KitSkySquid(manager), - new KitWitherSkeleton(manager), - new KitMagmaCube(manager), - new KitZombie(manager), - new KitCow(manager), - - new KitSheep(manager) - }); - - - Manager.GetDamage().UseSimpleWeaponDamage = false; - Manager.getCosmeticManager().setHideParticles(true); - - Manager.getClassManager().GetItemFactory().getProximityManager().setProxyLimit(6); - Manager.getClassManager().deregisterSelf(); - - InventoryOpenChest = true; - - EnableSupply = false; - } - - @EventHandler(priority = EventPriority.LOWEST) - public void noFallDamage(CustomDamageEvent event) - { - if (event.IsCancelled()) - return; - - if (event.GetCause() == DamageCause.FALL) - event.SetCancelled("No Fall Damage"); - } - - @EventHandler(priority = EventPriority.HIGH) - public void customKnockback(CustomDamageEvent event) - { - if (event.IsCancelled()) - return; - - if (event.GetDamageePlayer() != null) - event.AddKnockback("Smash Knockback", 1 + 0.1 * (20 - event.GetDamageePlayer().getHealth())); - } - - @Override - public String GetMode() - { - return "Smash Dominate"; - } - -} 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 deleted file mode 100644 index 9cc14d14a..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/ChampionsGladiators.java +++ /dev/null @@ -1,99 +0,0 @@ -package nautilus.game.arcade.game.games.gladiators.modes; - -import org.bukkit.Sound; -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; -import nautilus.game.arcade.game.games.champions.kits.KitAssassin; -import nautilus.game.arcade.game.games.champions.kits.KitBrute; -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.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.game.modules.ChampionsModule; -import nautilus.game.arcade.kit.Kit; - -/** - * ChampionsGladiators gamemode for Gladiators - * - * @author xXVevzZXx - */ -public class ChampionsGladiators extends Gladiators -{ - - public ChampionsGladiators(ArcadeManager manager) - { - super(manager, new Kit[] - { - new KitBrute(manager), - new KitRanger(manager), - new KitKnight(manager), - new KitMage(manager), - new KitAssassin(manager), - }, GameType.Brawl); - - Manager.GetDamage().UseSimpleWeaponDamage = false; - Manager.getCosmeticManager().setHideParticles(true); - - Manager.getClassManager().GetItemFactory().getProximityManager().setProxyLimit(6); - - new ChampionsModule().register(this); - - manager.enableChampionsModules(); - } - - @Override - protected void giveLoadout(Player p, ArenaType type) - { - if (!GetPlayers(true).contains(p)) - return; - - GetKit(p).ApplyKit(p); - - p.playSound(p.getLocation(), Sound.LEVEL_UP, 1f, 1f); - } - - @EventHandler - public void end(GameStateChangeEvent event) - { - if (event.GetState() != GameState.End) - return; - - Manager.disableChampionsModules(); - } - - @EventHandler - public void healthDisable(EntityRegainHealthEvent event) - { - if(!(event.getEntity() instanceof Player)) - return; - - Player player = (Player) event.getEntity(); - - Arena arena = getPlayerArenas().get(player); - if(arena.isPoisoned()) - event.setCancelled(true); - } - - @Override - public String GetMode() - { - return "Champions Gladiators"; - } - - @EventHandler - public void skill(SkillTriggerEvent event) - { - if (getRoundState() != RoundState.FIGHTING) - event.SetCancelled(true); - } -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/OverpoweredGladiators.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/OverpoweredGladiators.java deleted file mode 100644 index 13428a4b0..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/OverpoweredGladiators.java +++ /dev/null @@ -1,109 +0,0 @@ -package nautilus.game.arcade.game.games.gladiators.modes; - -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.player.PlayerChatEvent; -import org.bukkit.inventory.ItemStack; - -import mineplex.core.common.util.UtilInv; -import mineplex.core.common.util.UtilItem; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -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.hotbar.HotbarLayout; -import nautilus.game.arcade.game.games.gladiators.kits.KitGladiator; -import nautilus.game.arcade.kit.Kit; - -/** - * OverpoweredGladiators gamemode for Gladiators - * - * @author xXVevzZXx - */ -public class OverpoweredGladiators extends Gladiators -{ - - public OverpoweredGladiators(ArcadeManager manager) - { - super(manager, new Kit[] - { - new KitGladiator(manager) - }, - GameType.Brawl); - } - - @Override - protected void giveLoadout(Player p, ArenaType type) - { - if (!GetPlayers(true).contains(p)) - return; - - HotbarLayout layout = getHotbarEditor().getLayout(p); - - int round = 0; - - if (type == ArenaType.GREEN) - round = 1; - else if (type == ArenaType.YELLOW) - round = 2; - else if (type == ArenaType.ORANGE) - round = 3; - else if(type == ArenaType.RED) - round = 4; - - UtilInv.Clear(p); - - p.getInventory().clear(); - p.getInventory().setArmorContents(null); - - p.getInventory().setItem(layout.getRod(), UtilItem.makeUnbreakable(type.getLoadout().getRod())); - p.getInventory().setItem(layout.getArrows(), new ItemStack(Material.ARROW, round * 5)); - - ItemStack sword = new ItemStack(Material.DIAMOND_SWORD); - - ItemStack bow = new ItemStack(Material.BOW); - - ItemStack helmet = new ItemStack(Material.DIAMOND_HELMET); - ItemStack chest = new ItemStack(Material.DIAMOND_CHESTPLATE); - ItemStack leggings = new ItemStack(Material.DIAMOND_LEGGINGS); - ItemStack boots = new ItemStack(Material.DIAMOND_BOOTS); - - - if (round != 0) - { - sword.addEnchantment(Enchantment.DAMAGE_ALL, round); - bow.addEnchantment(Enchantment.ARROW_DAMAGE, round); - helmet.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, round); - chest.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, round); - leggings.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, round); - boots.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, round); - } - - p.getInventory().setItem(layout.getSword(), UtilItem.makeUnbreakable(sword)); - - p.getInventory().setItem(layout.getBow(), UtilItem.makeUnbreakable(bow)); - - p.getInventory().setHelmet(UtilItem.makeUnbreakable(helmet)); - p.getInventory().setChestplate(UtilItem.makeUnbreakable(chest)); - p.getInventory().setLeggings(UtilItem.makeUnbreakable(leggings)); - p.getInventory().setBoots(UtilItem.makeUnbreakable(boots)); - - if (round >= 4) - { - UtilInv.insert(p, new ItemStack(Material.GOLDEN_APPLE,1 , (short) 1)); - } - - p.playSound(p.getLocation(), Sound.LEVEL_UP, 1f, 1f); - } - - @Override - public String GetMode() - { - return "OP Gladiators"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/SmashGladiators.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/SmashGladiators.java deleted file mode 100644 index fc7be6e29..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/modes/SmashGladiators.java +++ /dev/null @@ -1,109 +0,0 @@ -package nautilus.game.arcade.game.games.gladiators.modes; - -import org.bukkit.Sound; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.entity.EntityDamageEvent.DamageCause; - -import mineplex.minecraft.game.core.damage.CustomDamageEvent; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.game.games.gladiators.ArenaType; -import nautilus.game.arcade.game.games.gladiators.Gladiators; -import nautilus.game.arcade.game.games.smash.kits.KitBlaze; -import nautilus.game.arcade.game.games.smash.kits.KitChicken; -import nautilus.game.arcade.game.games.smash.kits.KitCow; -import nautilus.game.arcade.game.games.smash.kits.KitCreeper; -import nautilus.game.arcade.game.games.smash.kits.KitEnderman; -import nautilus.game.arcade.game.games.smash.kits.KitGolem; -import nautilus.game.arcade.game.games.smash.kits.KitMagmaCube; -import nautilus.game.arcade.game.games.smash.kits.KitPig; -import nautilus.game.arcade.game.games.smash.kits.KitSheep; -import nautilus.game.arcade.game.games.smash.kits.KitSkeletalHorse; -import nautilus.game.arcade.game.games.smash.kits.KitSkeleton; -import nautilus.game.arcade.game.games.smash.kits.KitSkySquid; -import nautilus.game.arcade.game.games.smash.kits.KitSlime; -import nautilus.game.arcade.game.games.smash.kits.KitSnowman; -import nautilus.game.arcade.game.games.smash.kits.KitSpider; -import nautilus.game.arcade.game.games.smash.kits.KitWitch; -import nautilus.game.arcade.game.games.smash.kits.KitWitherSkeleton; -import nautilus.game.arcade.game.games.smash.kits.KitWolf; -import nautilus.game.arcade.game.games.smash.kits.KitZombie; -import nautilus.game.arcade.kit.Kit; - -/** - * SmashGladiators - * - * @author xXVevzZXx - */ -public class SmashGladiators extends Gladiators -{ - public SmashGladiators(ArcadeManager manager) - { - super(manager, new Kit[] - { - new KitSkeleton(manager), - new KitGolem(manager), - new KitSpider(manager), - new KitSlime(manager), - - new KitCreeper(manager), - new KitEnderman(manager), - new KitSnowman(manager), - new KitWolf(manager), - - - new KitBlaze(manager), - new KitWitch(manager), - new KitChicken(manager), - new KitSkeletalHorse(manager), - new KitPig(manager), - new KitSkySquid(manager), - new KitWitherSkeleton(manager), - new KitMagmaCube(manager), - new KitZombie(manager), - new KitCow(manager), - - new KitSheep(manager) - }, GameType.Brawl); - } - - @EventHandler(priority = EventPriority.LOWEST) - public void noFallDamage(CustomDamageEvent event) - { - if (event.IsCancelled()) - return; - - if (event.GetCause() == DamageCause.FALL) - event.SetCancelled("No Fall Damage"); - } - - @EventHandler(priority = EventPriority.HIGH) - public void customKnockback(CustomDamageEvent event) - { - if (event.IsCancelled()) - return; - - if (event.GetDamageePlayer() != null) - event.AddKnockback("Smash Knockback", 1 + 0.1 * (20 - event.GetDamageePlayer().getHealth())); - } - - - @Override - protected void giveLoadout(Player p, ArenaType type) - { - if (!GetPlayers(true).contains(p)) - return; - - GetKit(p).ApplyKit(p); - - p.playSound(p.getLocation(), Sound.LEVEL_UP, 1f, 1f); - } - - @Override - public String GetMode() - { - return "Smash Gladiators"; - } -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/modes/Countdown.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/modes/Countdown.java deleted file mode 100644 index 29c77670c..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/modes/Countdown.java +++ /dev/null @@ -1,138 +0,0 @@ -package nautilus.game.arcade.game.games.hideseek.modes; - -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; - -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.common.util.UtilServer; -import mineplex.core.common.util.UtilTextBottom; -import mineplex.core.common.util.UtilTime; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.games.hideseek.HideSeek; -import nautilus.game.arcade.game.games.hideseek.forms.BlockForm; -import nautilus.game.arcade.game.games.hideseek.forms.Form; -import nautilus.game.arcade.game.games.hideseek.kits.*; -import nautilus.game.arcade.kit.Kit; -import nautilus.game.arcade.kit.NullKit; - -/** - * Countdown gammeode for Blockhunt - * - * @author xXVevzZXx - */ -public class Countdown extends HideSeek -{ - - private int _changeInterval; - - private long _lastChanged = 0; - - public Countdown(ArcadeManager manager) - { - super(manager, - new Kit[] - { - new KitHiderQuick(manager), new KitHiderSwapper(manager), new KitHiderInfestor(manager), - new KitHiderShocker(manager), new NullKit(manager), new KitSeekerLeaper(manager), - new KitSeekerTNT(manager), new KitSeekerRadar(manager), - }); - - _changeInterval = 30; - } - - @EventHandler - public void gameState(GameStateChangeEvent event) - { - if (event.GetState() != GameState.Live) - return; - - _lastChanged = System.currentTimeMillis(); - } - - @EventHandler - public void countdown(UpdateEvent event) - { - if (!IsLive()) - return; - - if (event.getType() == UpdateType.SEC) - { - if (System.currentTimeMillis() > _lastChanged + 25000) - { - for (Player player : UtilServer.getPlayers()) - { - player.playSound(player.getLocation(), Sound.NOTE_PLING, 2F, 2F); - } - } - } - - if (event.getType() != UpdateType.TICK) - return; - - double percentage = (double) (System.currentTimeMillis() - _lastChanged) / (_changeInterval*1000); - - for (Player player : UtilServer.getPlayers()) - { - UtilTextBottom.displayProgress("Block change", percentage, - UtilTime.MakeStr(Math.max(0, (_changeInterval*1000) - (System.currentTimeMillis() - _lastChanged))), player); - } - } - - @EventHandler - public void changeForms(UpdateEvent event) - { - if (!IsLive()) - return; - - if (event.getType() != UpdateType.SEC) - return; - - if (UtilTime.elapsed(_lastChanged, _changeInterval*1000)) - { - _lastChanged = System.currentTimeMillis(); - - Material mat = getAllowedBlocks().get(UtilMath.r(getAllowedBlocks().size())); - - for (Player player : GetPlayers(true)) - { - if (!getForms().containsKey(player)) - { - UtilPlayer.message(player, F.main("Game", "Hiders have changed forms!")); - continue; - } - - getForms().get(player).Remove(); - - Form form = new BlockForm(this, player, mat); - - getForms().put(player, form); - - form.Apply(); - - Bukkit.getPluginManager().callEvent(new PlayerChangeFormEvent(player, form)); - } - - } - } - - @Override - public boolean inform() - { - return false; - } - - @Override - public String GetMode() - { - return "Countdown"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/milkcow/MilkCow.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/milkcow/MilkCow.java index 9ec8c6961..3380f78bc 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/milkcow/MilkCow.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/milkcow/MilkCow.java @@ -299,7 +299,7 @@ public class MilkCow extends SoloGame } event.setCancelled(true); - itemStack.setType(Material.MILK_BUCKET); + player.setItemInHand(new ItemStack(Material.MILK_BUCKET)); player.updateInventory(); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/minestrike/modes/SuperPaintstrike.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/minestrike/modes/SuperPaintstrike.java deleted file mode 100644 index 7318ef6a6..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/minestrike/modes/SuperPaintstrike.java +++ /dev/null @@ -1,657 +0,0 @@ -package nautilus.game.arcade.game.games.minestrike.modes; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; - -import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -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.craftbukkit.v1_8_R3.entity.CraftPlayer; -import org.bukkit.entity.Arrow; -import org.bukkit.entity.EnderPearl; -import org.bukkit.entity.Player; -import org.bukkit.entity.Snowball; -import org.bukkit.entity.ThrownPotion; -import org.bukkit.event.Cancellable; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.entity.EntityDamageEvent.DamageCause; -import org.bukkit.event.entity.EntityRegainHealthEvent; -import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; -import org.bukkit.event.entity.ProjectileHitEvent; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.player.PlayerInteractAtEntityEvent; -import org.bukkit.event.player.PlayerInteractEntityEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerTeleportEvent; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.LeatherArmorMeta; -import org.bukkit.potion.PotionEffect; -import org.bukkit.potion.PotionEffectType; -import org.bukkit.scoreboard.NameTagVisibility; -import org.bukkit.scoreboard.Team; -import org.bukkit.util.Vector; - -import mineplex.core.common.util.C; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilAction; -import mineplex.core.common.util.UtilBlock; -import mineplex.core.common.util.UtilEvent; -import mineplex.core.common.util.UtilEvent.ActionType; -import mineplex.core.common.util.UtilGear; -import mineplex.core.common.util.UtilInv; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.common.util.UtilServer; -import mineplex.core.hologram.Hologram.HologramTarget; -import mineplex.core.recharge.Recharge; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; -import mineplex.minecraft.game.core.condition.Condition.ConditionType; -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.PlayerKitGiveEvent; -import nautilus.game.arcade.events.PlayerPrepareTeleportEvent; -import nautilus.game.arcade.game.GameTeam; -import nautilus.game.arcade.game.GameTeam.PlayerState; -import nautilus.game.arcade.game.games.minestrike.Minestrike; -import nautilus.game.arcade.game.games.paintball.Paintball; -import nautilus.game.arcade.game.games.paintball.PlayerCopyPaintball; -import nautilus.game.arcade.game.games.paintball.events.PaintballEvent; -import nautilus.game.arcade.game.games.paintball.events.ReviveEvent; -import nautilus.game.arcade.game.games.paintball.kits.KitMachineGun; -import nautilus.game.arcade.game.games.paintball.kits.KitRifle; -import nautilus.game.arcade.game.games.paintball.kits.KitShotgun; -import nautilus.game.arcade.game.games.paintball.kits.KitSniper; -import nautilus.game.arcade.kit.Kit; - -/** - * SuperPaintstrike is a mode of {@link Minestrike} which implements {@link Paintball} kits - * - * @author xXVevzZXx - */ -public class SuperPaintstrike extends Minestrike -{ - private HashMap _doubles = new HashMap(); - - public SuperPaintstrike(ArcadeManager manager) - { - super(manager, new Kit[] - { - new KitRifle(manager), - new KitShotgun(manager), - new KitMachineGun(manager), - new KitSniper(manager), - - }, GameType.Brawl); - - getShopManager().setDisabled(true); - getGunModule().setDisableDamage(true); - getGunModule().setEnableCleaning(false); - } - - @Override - @EventHandler - public void giveStartEquipment(PlayerKitGiveEvent event) - { - GameTeam team = GetTeam(event.getPlayer()); - if (team == null) - return; - - if (team.GetColor() == ChatColor.RED) - { - if (IsAlive(event.getPlayer())) - { - //Armor - giveTeamArmor(event.getPlayer(), Color.RED); - } - } - else if (team.GetColor() == ChatColor.AQUA) - { - if (IsAlive(event.getPlayer())) - { - //Armor - giveTeamArmor(event.getPlayer(), Color.AQUA); - } - } - } - - @EventHandler - public void onHeal(PlayerInteractEvent event) - { - if (!UtilEvent.isAction(event, ActionType.R)) - return; - - LaunchPotion(event.getPlayer(), event); - } - - @EventHandler - public void onHeal(PlayerInteractEntityEvent event) - { - LaunchPotion(event.getPlayer(), event); - } - - @EventHandler(ignoreCancelled = false) - public void onHeal(PlayerInteractAtEntityEvent event) - { - LaunchPotion(event.getPlayer(), event); - } - - public void LaunchPotion(Player player, Cancellable event) - { - if (!IsLive()) - return; - - if (!UtilGear.isMat(player.getItemInHand(), Material.POTION)) - return; - - event.setCancelled(true); - - if (!IsAlive(player) || UtilPlayer.isSpectator(player)) - return; - - if (!Recharge.Instance.use(player, "Water Potion", 250, false, false)) - return; - - UtilInv.UseItemInHand(player); - - ThrownPotion potion = player.launchProjectile(ThrownPotion.class); - potion.getEffects().clear(); - potion.getEffects().add(new PotionEffect(PotionEffectType.WATER_BREATHING, 100, 100)); - - Manager.runAsync(new Runnable() - { - @Override - public void run() - { - UtilInv.Update(player); - } - }); - } - - @EventHandler - public void removePotionEffect(UpdateEvent event) - { - if (event.getType() != UpdateType.TICK) - return; - - for (Player player : GetPlayers(true)) - player.removePotionEffect(PotionEffectType.WATER_BREATHING); - } - - public void cleanColorArmor(Player player) - { - Color color = Color.RED; - if (Manager.GetColor(player) != ChatColor.RED) - color = Color.AQUA; - - for (ItemStack stack : player.getEquipment().getArmorContents()) - { - if (!(stack.getItemMeta() instanceof LeatherArmorMeta)) - continue; - - LeatherArmorMeta meta = (LeatherArmorMeta)stack.getItemMeta(); - meta.setColor(color); - stack.setItemMeta(meta); - } - } - - @EventHandler - public void cleanHit(ProjectileHitEvent event) - { - if (!IsLive()) - return; - - if (!(event.getEntity() instanceof ThrownPotion)) - return; - - if (event.getEntity().getShooter() == null) - return; - - if (!(event.getEntity().getShooter() instanceof Player)) - return; - - Player thrower = (Player)event.getEntity().getShooter(); - if (!IsAlive(thrower)) - return; - - GameTeam throwerTeam = GetTeam(thrower); - if (throwerTeam == null) return; - - //Revive - Iterator copyIterator = _doubles.values().iterator(); - while (copyIterator.hasNext()) - { - PlayerCopyPaintball copy = copyIterator.next(); - - GameTeam otherTeam = GetTeam(copy.GetPlayer()); - if (otherTeam == null || !otherTeam.equals(throwerTeam)) - continue; - - if (UtilMath.offset(copy.GetEntity().getLocation().add(0,1,0), event.getEntity().getLocation()) > 3) - continue; - - playerIn(copy.GetPlayer(), copy); - - copyIterator.remove(); - - AddGems(thrower, 3, "Revived Ally", true, true); - - Bukkit.getPluginManager().callEvent(new ReviveEvent(thrower, copy.GetPlayer())); - } - - //Clean - for (Player player : GetPlayers(true)) - { - GameTeam otherTeam = GetTeam(player); - if (otherTeam == null || !otherTeam.equals(throwerTeam)) - continue; - - if (UtilMath.offset(player.getLocation().add(0,1,0), event.getEntity().getLocation()) > 3) - continue; - - playerIn(player, null); - } - } - - public void playerIn(final Player player, final PlayerCopyPaintball copy) - { - //State - SetPlayerState(player, PlayerState.IN); - player.setHealth(20); - - //Teleport - if (copy != null) - { - Location loc = player.getLocation(); - loc.setX(copy.GetEntity().getLocation().getX()); - loc.setY(copy.GetEntity().getLocation().getY()); - loc.setZ(copy.GetEntity().getLocation().getZ()); - player.teleport(loc); - } - - //Settings - if (player.getGameMode() == GameMode.SPECTATOR) - player.setSpectatorTarget(null); - - player.setGameMode(GameMode.SURVIVAL); - player.setAllowFlight(false); - player.setFlying(false); - ((CraftPlayer)player).getHandle().spectating = false; - ((CraftPlayer)player).getHandle().k = true; - - //Items - player.getInventory().remove(Material.WATCH); - player.getInventory().remove(Material.COMPASS); - - //Clean Armor - cleanColorArmor(player); - - //Inform - UtilPlayer.message(player, F.main("Game", "You have been cleaned!")); - - //Delayed Visibility - if (copy != null) - { - UtilServer.getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() - { - public void run() - { - //Remove Invis - if (IsAlive(player)) - Manager.GetCondition().EndCondition(player, ConditionType.CLOAK, null); - - //Remove Copy - copy.GetEntity().remove(); - copy.GetHolo().stop(); - copy.GetSaveMe().stop(); - } - }, 4); - } - } - - @EventHandler - public void updateCloneHolograms(UpdateEvent event) - { - if (event.getType() != UpdateType.FAST) - return; - - for (PlayerCopyPaintball clone : _doubles.values()) - { - if (clone.GetHolo().getHologramTarget() == HologramTarget.WHITELIST) - { - //Other team blacklist - clone.GetHolo().setHologramTarget(HologramTarget.BLACKLIST); - - for (Player cur : GetPlayers(false)) - { - if (!IsAlive(cur)) - { - if (clone.GetHolo().containsPlayer(cur)) - clone.GetHolo().removePlayer(cur); - } - } - clone.GetHolo().start(); - } - - clone.setSaveMeFlop(!clone.getSaveMeFlop()); - clone.GetSaveMe().setText((clone.getSaveMeFlop() ? C.cRedB : C.cWhiteB) + "SAVE ME!"); - - for (Player player : GetTeam(clone.GetPlayer()).GetPlayers(false)) - { - if (!IsAlive(player)) // Remove if it's not alive - { - if (clone.GetSaveMe().containsPlayer(player)) - clone.GetSaveMe().removePlayer(player); - } - else - { - boolean hasPotion = UtilInv.contains(player, Material.POTION, (byte) -1, 1); - if (clone.GetSaveMe().containsPlayer(player)) - { - if (!hasPotion) // No potions left - { - clone.GetSaveMe().removePlayer(player); - } - } - else if (hasPotion) - { - clone.GetSaveMe().addPlayer(player); - } - } - } - } - } - - @EventHandler - public void CustomTeamGeneration(GameStateChangeEvent event) - { - if (event.GetState() != GameState.Recruit) - return; - - this.GetTeamList().get(0).SetColor(ChatColor.AQUA); - this.GetTeamList().get(0).SetName("Frost"); - - this.GetTeamList().get(1).SetColor(ChatColor.RED); - this.GetTeamList().get(1).SetName("Nether"); - } - - @EventHandler - public void onNameTag(GameStateChangeEvent event) - { - if (event.GetState() == GameState.Prepare) - for (Team team : Scoreboard.getScoreboard().getTeams()) - team.setNameTagVisibility(NameTagVisibility.HIDE_FOR_OTHER_TEAMS); - } - - @EventHandler(priority = EventPriority.HIGHEST) - public void colorArmor(PlayerPrepareTeleportEvent event) - { - cleanColorArmor(event.GetPlayer()); - } - - @EventHandler - public void healthRegen(EntityRegainHealthEvent event) - { - if (event.getRegainReason() == RegainReason.SATIATED) - event.setCancelled(true); - } - - @EventHandler - public void teleport(PlayerTeleportEvent event) - { - if (event.getCause() == TeleportCause.ENDER_PEARL) - event.setCancelled(true); - } - - @SuppressWarnings("deprecation") - @EventHandler - public void paint(final ProjectileHitEvent event) - { - if (IsLive() || GetState() == GameState.End) - { - if (event.getEntity() instanceof ThrownPotion) - return; - - final byte color = (byte) (event.getEntity() instanceof EnderPearl || (event.getEntity() instanceof Arrow && event.getEntity().hasMetadata("color") && ChatColor.values()[event.getEntity().getMetadata("color").get(0).asInt()] == ChatColor.RED) ? 14 : 3); - - event.getEntity().setVelocity(event.getEntity().getVelocity().normalize().multiply(1.2)); - - PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(new int[]{event.getEntity().getEntityId()}); - for (Player player : UtilServer.getPlayers()) - UtilPlayer.sendPacket(player, destroy); - - Manager.runSyncLater(new Runnable() // Stupid thing I have to do to make sure the arrow's location is accounted for. Stupid mojang. - Myst - { - @Override - public void run() - { - Location loc = event.getEntity().getLocation(); - // loc.add(event.getEntity().getVelocity().clone().normalize().multiply(.5)); - - for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet()) - { - if (block.getType() != Material.WOOL && block.getType() != Material.STAINED_CLAY && block.getType() != Material.HARD_CLAY) - continue; - - if (block.getType() == Material.HARD_CLAY) - block.setType(Material.STAINED_CLAY); - - block.setData(color); - } - - if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8); - else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10); - - event.getEntity().remove(); - } - }, 0); - } - } - - @EventHandler - public void onQuit(PlayerQuitEvent event) - { - Player player = event.getPlayer(); - - if (_doubles.containsKey(player)) - { - PlayerCopyPaintball copy = _doubles.remove(player); - copy.GetEntity().remove(); - copy.GetHolo().stop(); - copy.GetSaveMe().stop(); - } - } - - @EventHandler - public void damageCancel(CustomDamageEvent event) - { - if (event.GetDamageePlayer() == null) - event.SetCancelled("Not Player"); - - // Fixed void damage being blocked from this check. - - if (event.GetProjectile() == null && event.GetCause() != DamageCause.VOID) - event.SetCancelled("No Projectile"); - } - - @EventHandler(priority = EventPriority.LOW) - public void paintballDamage(CustomDamageEvent event) - { - if (!IsLive()) - return; - - if (event.GetProjectile() == null) - return; - - if (!(event.GetProjectile() instanceof Snowball) && !(event.GetProjectile() instanceof EnderPearl) && !(event.GetProjectile() instanceof Arrow)) - return; - - //Negate - - event.AddMod("Negate", "Negate", -event.GetDamageInitial(), false); - - event.AddMod("Paintball", "Paintball", 2, true); - event.AddKnockback("Paintball", 2); - - event.setShowArrows(false); - - Player damagee = event.GetDamageePlayer(); - if (damagee == null) - return; - - Player damager = event.GetDamagerPlayer(true); - if (damager == null) - return; - - GameTeam damageeTeam = GetTeam(damagee); - if (damageeTeam == null) - return; - - GameTeam damagerTeam = GetTeam(damager); - if (damagerTeam == null) - return; - - if (damagerTeam.equals(damageeTeam)) - return; - - //Count - int count = 1; - if (GetKit(damager) != null) - { - if (GetKit(damager) instanceof KitRifle) - { - count = 3; - } - if (GetKit(damager) instanceof KitSniper && event.GetProjectile() instanceof Arrow) - { - count = ((KitSniper) GetKit(damager)).getPaintDamage((Arrow) event.GetProjectile()); - - if (count == -1) - count = 1; - } - } - - //Out - if (color(damagee, count)) - { - for (Player player : UtilServer.getPlayers()) - UtilPlayer.message(player, damageeTeam.GetColor() + damagee.getName() + ChatColor.RESET + " was painted by " + - damagerTeam.GetColor() + damager.getName() + ChatColor.RESET + "!"); - - playerOut(damagee, damager); - - AddGems(damager, 2, "Kills", true, true); - - AddStat(damager, "Kills", 1, false, false); - AddStat(damagee, "Deaths", 1, false, false); - - Bukkit.getPluginManager().callEvent(new PaintballEvent(damagee, damager)); - } - - //Hit Sound - Player player = event.GetDamagerPlayer(true); - if (player != null) - player.playSound(player.getLocation(), Sound.ORB_PICKUP, 1f, 3f); - } - - @EventHandler - public void armorRemoveCancel(InventoryClickEvent event) - { - if (IsLive()) - event.setCancelled(true); - } - - public boolean color(Player player, int amount) - { - //Get Non-Coloured - ArrayList nonColored = new ArrayList(); - for (ItemStack stack : player.getInventory().getArmorContents()) - { - if (!(stack.getItemMeta() instanceof LeatherArmorMeta)) - continue; - - LeatherArmorMeta meta = (LeatherArmorMeta)stack.getItemMeta(); - - if (meta.getColor().equals(Color.RED) || meta.getColor().equals(Color.AQUA)) - nonColored.add(stack); - } - - //Color Piece - for (int i=0 ; i copyIterator = _doubles.values().iterator(); - while (copyIterator.hasNext()) - { - PlayerCopyPaintball copy = copyIterator.next(); - - copy.GetEntity().remove(); - copy.GetHolo().stop(); - copy.GetSaveMe().stop(); - - copyIterator.remove(); - } - } - - @Override - public String GetMode() - { - return "Super Paintstrike"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/BunnyHop.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/BunnyHop.java deleted file mode 100644 index be56fecb7..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/BunnyHop.java +++ /dev/null @@ -1,100 +0,0 @@ -package nautilus.game.arcade.game.games.quiver.modes; - -import org.bukkit.Sound; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; - -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.itemstack.ItemStackFactory; -import mineplex.minecraft.game.core.combat.event.CombatDeathEvent; -import mineplex.minecraft.game.core.condition.Condition.ConditionType; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.games.quiver.Quiver; -import nautilus.game.arcade.game.games.quiver.kits.KitSlamShot; -import nautilus.game.arcade.game.games.quiver.modes.kits.KitModedLeaper; -import nautilus.game.arcade.kit.Kit; - -/** - * BunnyHop gamemode for One in the quiver - * - * @author xXVevzZXx - */ -public class BunnyHop extends Quiver -{ - - private int _arrowAmount; - - public BunnyHop(ArcadeManager manager) - { - super(manager, new Kit[] - { - new KitModedLeaper(manager) - }, GameType.Brawl); - - _arrowAmount = 2; - } - - @Override - @EventHandler(priority = EventPriority.HIGH) - public void GameStateChange(GameStateChangeEvent event) - { - if (event.GetState() != GameState.Live) - return; - - for (Player player : GetPlayers(true)) - { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(262, (byte)0, 2, F.item("Super Arrow"))); - player.playSound(player.getLocation(), Sound.PISTON_EXTEND, 3f, 2f); - } - } - - @Override - @EventHandler - public void Death(CombatDeathEvent event) - { - if (event.GetEvent().getEntity() instanceof Player) - { - getDeathTime().put((Player) event.GetEvent().getEntity(), System.currentTimeMillis()); - } - - if (event.GetLog().GetKiller() == null) - return; - - if (!event.GetLog().GetKiller().IsPlayer()) - return; - - Player player = UtilPlayer.searchExact(event.GetLog().GetKiller().GetName()); - if (player == null) - return; - - int amount = _arrowAmount; - - if (GetKit(player) instanceof KitSlamShot) - { - if (Manager.GetCondition().HasCondition(event.GetEvent().getEntity(), - ConditionType.FALLING, null)) - { - amount = _arrowAmount * 2; - } - } - - //New Arrow - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(262, (byte) 0, amount, - F.item("Super Arrow"))); - player.playSound(player.getLocation(), Sound.PISTON_EXTEND, 3f, 2f); - - //Score - AddKill(player); - } - - @Override - public String GetMode() - { - return "Bunny Hop"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/UltimateOITQ.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/UltimateOITQ.java deleted file mode 100644 index 86722cffa..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/UltimateOITQ.java +++ /dev/null @@ -1,81 +0,0 @@ -package nautilus.game.arcade.game.games.quiver.modes; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.inventory.ItemStack; - -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.game.games.quiver.Quiver; -import nautilus.game.arcade.game.games.quiver.QuiverTeamBase; -import nautilus.game.arcade.game.games.quiver.kits.KitBarrage; -import nautilus.game.arcade.game.games.quiver.kits.KitBeserker; -import nautilus.game.arcade.game.games.quiver.kits.KitNecromancer; -import nautilus.game.arcade.game.games.quiver.kits.KitNewNinja; -import nautilus.game.arcade.game.games.quiver.kits.KitPyromancer; -import nautilus.game.arcade.game.games.quiver.kits.KitSkyWarrior; -import nautilus.game.arcade.game.games.quiver.modes.module.ModuleStandaloneUltimate; -import nautilus.game.arcade.kit.Kit; - -/** - * UltimateOITQ is a mode of {@link Quiver} which implements the ultimate kits from {@link QuiverTeamBase} - * - * @author xXVevzZXx - */ -public class UltimateOITQ extends Quiver -{ - - public UltimateOITQ(ArcadeManager manager) - { - super(manager, new Kit[] - { - new KitBeserker(manager), - new KitNewNinja(manager), - new KitBarrage(manager), - new KitSkyWarrior(manager), - new KitPyromancer(manager), - new KitNecromancer(manager) - }, GameType.Brawl); - - registerModule(new ModuleStandaloneUltimate(30F)); - } - - @EventHandler - public void clearArmor(UpdateEvent event) - { - if (!IsLive()) - return; - - if (Manager.GetGame() == null) - return; - - if (event.getType() != UpdateType.FASTER) - return; - - for (Player player : GetPlayers(true)) - { - if (player.getInventory().getBoots() != null && player.getInventory().getBoots().getType() == Material.LEATHER_BOOTS) - player.getInventory().setBoots(null); - - if (player.getInventory().getLeggings() != null && player.getInventory().getLeggings().getType() == Material.LEATHER_LEGGINGS) - player.getInventory().setLeggings(null); - - if (player.getInventory().getChestplate() != null && player.getInventory().getChestplate().getType() == Material.LEATHER_CHESTPLATE) - player.getInventory().setChestplate(null); - - if (player.getInventory().getHelmet() != null && player.getInventory().getHelmet().getType() == Material.LEATHER_HELMET) - player.getInventory().setHelmet(null); - } - } - - @Override - public String GetMode() - { - return "Ultimate OITQ"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/kits/KitModedLeaper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/kits/KitModedLeaper.java deleted file mode 100644 index 199e1b904..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/kits/KitModedLeaper.java +++ /dev/null @@ -1,46 +0,0 @@ -package nautilus.game.arcade.game.games.quiver.modes.kits; - -import org.bukkit.Material; -import org.bukkit.entity.Player; - -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilInv; -import mineplex.core.common.util.UtilServer; -import mineplex.core.game.kit.GameKit; -import mineplex.core.itemstack.ItemStackFactory; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.game.Game.GameState; -import nautilus.game.arcade.kit.Kit; -import nautilus.game.arcade.kit.perks.PerkTripleJump; - -public class KitModedLeaper extends Kit -{ - - public KitModedLeaper(ArcadeManager manager) - { - super(manager, GameKit.OITQ_LEAPER, new PerkTripleJump("Triple Jump", 1.2, 0.9, true)); - } - - @Override - public void GiveItems(Player player) - { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_AXE)); - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW)); - - if (Manager.GetGame().GetState() == GameState.Live) - { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(262, (byte)0, 2, F.item("Super Arrow"))); - - final Player fPlayer = player; - - UtilServer.getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() - { - public void run() - { - UtilInv.Update(fPlayer); - } - }, 10); - } - } -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/module/ModuleStandaloneUltimate.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/module/ModuleStandaloneUltimate.java deleted file mode 100644 index f839b70e6..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/modes/module/ModuleStandaloneUltimate.java +++ /dev/null @@ -1,241 +0,0 @@ -package nautilus.game.arcade.game.games.quiver.modes.module; - -import java.text.DecimalFormat; -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.player.PlayerToggleSneakEvent; - -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.UtilTextBottom; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; -import mineplex.minecraft.game.core.combat.CombatComponent; -import mineplex.minecraft.game.core.combat.event.CombatDeathEvent; - -import nautilus.game.arcade.game.games.quiver.QuiverTeamBase; -import nautilus.game.arcade.game.games.quiver.module.ModuleUltimate; -import nautilus.game.arcade.game.games.quiver.ultimates.UltimatePerk; -import nautilus.game.arcade.game.modules.Module; -import nautilus.game.arcade.kit.Kit; -import nautilus.game.arcade.kit.Perk; - -/** - * Stanalone version of the QuiverTeamBase Module {@link ModuleUltimate} - * This needed to be done because the {@link QuiverTeamBase} Module - * is made for QuiverTeamBase only - * - * @author xXVevzZXx - */ -public class ModuleStandaloneUltimate extends Module -{ - private static final int ULTIMATE_PERCENTAGE_INCREASE_KILL = 5; - private static final int ULTIMATE_PERCENTAGE_INCREASE_ASSIST = 2; - - private float _percentage; - - private Map _ultimatePercentage = new HashMap<>(); - - private boolean _colouredMessage; - - public ModuleStandaloneUltimate(float percentage) - { - _percentage = percentage; - } - - @EventHandler - public void update(UpdateEvent event) - { - if (event.getType() != UpdateType.SEC) - { - return; - } - - _colouredMessage = !_colouredMessage; - - for (Player player : getGame().GetPlayers(true)) - { - Kit kit = getGame().GetKit(player); - - if (kit == null || UtilPlayer.isSpectator(player)) - { - continue; - } - - if (!_ultimatePercentage.containsKey(player.getUniqueId())) - { - _ultimatePercentage.put(player.getUniqueId(), 0F); - } - - double percentage = _ultimatePercentage.get(player.getUniqueId()); - - if (percentage >= _percentage) - { - UtilTextBottom.display((_colouredMessage ? C.cWhiteB : C.cAquaB) + "ULTIMATE READY (PRESS SNEAK)", player); - player.setExp(0.999F); - player.setLevel(100); - continue; - } - - String percentageFormatted = new DecimalFormat("0.0").format(percentage/_percentage*100); - - UtilTextBottom.displayProgress("Ultimate", percentage / _percentage, percentageFormatted + "%", player); - player.setExp((float) percentage / _percentage); - player.setLevel((int) Math.round(percentage/_percentage*100)); - - for (Perk perk : kit.GetPerks()) - { - if (perk instanceof UltimatePerk) - { - UltimatePerk ultimate = (UltimatePerk) perk; - - if (ultimate.isUsingUltimate(player)) - { - continue; - } - - incrementUltimate(player, ultimate.getChargePassive()); - } - } - } - } - - @EventHandler - public void onCombatDeath(CombatDeathEvent event) - { - if (event.GetEvent().getEntity() == null || event.GetLog().GetKiller() == null) - { - return; - } - - if (!(event.GetEvent().getEntity() instanceof Player)) - { - return; - } - - Player player = UtilPlayer.searchExact(event.GetLog().GetKiller().GetName()); - - if (player == null) - { - return; - } - - incrementUltimate(player, ULTIMATE_PERCENTAGE_INCREASE_KILL); - - for (CombatComponent combatComponent : event.GetLog().GetAttackers()) - { - if (event.GetLog().GetKiller() != null && combatComponent.equals(event.GetLog().GetKiller())) - { - continue; - } - - if (combatComponent.IsPlayer()) - { - Player assitedPlayer = UtilPlayer.searchExact(event.GetLog().GetKiller().GetName()); - - if (assitedPlayer != null) - { - incrementUltimate(assitedPlayer, ULTIMATE_PERCENTAGE_INCREASE_ASSIST); - } - } - } - } - - public void incrementUltimate(Player player, float percentage) - { - Kit kit = getGame().GetKit(player); - - for (Perk perk : kit.GetPerks()) - { - if (perk instanceof UltimatePerk) - { - UltimatePerk ultimate = (UltimatePerk) perk; - - if (ultimate.isUsingUltimate(player)) - { - return; - } - } - } - - _ultimatePercentage.put(player.getUniqueId(), _ultimatePercentage.get(player.getUniqueId()) + percentage); - } - - public void resetUltimate(Player player, boolean inform) - { - if (inform) - { - player.sendMessage(F.main("Game", "Your Ultimate charge has been reset!")); - } - - _ultimatePercentage.put(player.getUniqueId(), 0F); - } - - @EventHandler - public void onPlayerToggleSneak(PlayerToggleSneakEvent event) - { - if (!getGame().IsLive()) - { - return; - } - - Player player = event.getPlayer(); - Kit kit = getGame().GetKit(player); - - if (!event.isSneaking() || kit == null || UtilPlayer.isSpectator(player)) - { - return; - } - - if (_ultimatePercentage.get(player.getUniqueId()) < _percentage) - { - return; - } - - for (Perk perk : kit.GetPerks()) - { - if (perk instanceof UltimatePerk) - { - UltimatePerk ultimate = (UltimatePerk) perk; - - if (ultimate.isUsable(player)) - { - ultimate.activate(player); - resetUltimate(player, false); - } - } - } - } - - @Override - public void cleanup() - { - UtilServer.Unregister(this); - - for (UUID uuid : _ultimatePercentage.keySet()) - { - Player player = UtilPlayer.searchExact(uuid); - - for (Perk perk : getGame().GetKit(player).GetPerks()) - { - if (!(perk instanceof UltimatePerk)) - { - continue; - } - - UltimatePerk ultimate = (UltimatePerk) perk; - - if (ultimate.isUsingUltimate(player)) - { - ultimate.cancel(player); - } - } - } - } -} 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 deleted file mode 100644 index 87db4ada4..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/EweHeroes.java +++ /dev/null @@ -1,94 +0,0 @@ -package nautilus.game.arcade.game.games.sheep.modes; - -import org.bukkit.Material; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.inventory.ItemStack; - -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.games.champions.kits.KitAssassin; -import nautilus.game.arcade.game.games.champions.kits.KitBrute; -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.ChampionsModule; -import nautilus.game.arcade.game.modules.TeamArmorModule; -import nautilus.game.arcade.kit.Kit; - -/** - * EweHeroes gaemode for Sheep quest - * - * @author xXVevzZXx - */ -public class EweHeroes extends SheepGame -{ - - public EweHeroes(ArcadeManager manager) - { - super(manager, - - new Kit[] - { - new KitBrute(manager), - new KitRanger(manager), - new KitKnight(manager), - new KitMage(manager), - new KitAssassin(manager), - }, GameType.Brawl); - - Manager.GetDamage().UseSimpleWeaponDamage = false; - Manager.getCosmeticManager().setHideParticles(true); - - Manager.getClassManager().GetItemFactory().getProximityManager().setProxyLimit(6); - - getModule(TeamArmorModule.class) - .dontGiveTeamArmor(); - - new ChampionsModule().register(this); - - manager.enableChampionsModules(); - } - - @EventHandler - public void saddle(UpdateEvent event) - { - if (event.getType() != UpdateType.FASTER) - return; - - if (!IsLive()) - return; - - for (Player player : GetPlayers(true)) - { - player.getInventory().setItem(7, new ItemStack(Material.SADDLE)); - } - } - - @EventHandler - public void end(GameStateChangeEvent event) - { - if (event.GetState() != GameState.End) - return; - - Manager.disableChampionsModules(); - } - - @Override - public void inventoryWool(Player player, int count, Entity sheep) - { - - } - - @Override - public String GetMode() - { - return "Heroes Of The Ewe"; - } - -} 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 deleted file mode 100644 index a613bbf26..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/OverpoweredSheepQuest.java +++ /dev/null @@ -1,39 +0,0 @@ -package nautilus.game.arcade.game.games.sheep.modes; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.game.modules.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; - -/** - * OverpoweredSheepQuest - * - * @author xXVevzZXx - */ -public class OverpoweredSheepQuest extends SheepGame -{ - - public OverpoweredSheepQuest(ArcadeManager manager) - { - super(manager, new Kit[] - { - new KitShepherd(manager) - }, GameType.Brawl); - - getModule(TeamArmorModule.class) - .dontGiveTeamArmor(); - - new AbsorptionFix() - .register(this); - } - - @Override - public String GetMode() - { - return "OP Sheep Quest"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/SheepMania.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/SheepMania.java deleted file mode 100644 index 13492b04f..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/SheepMania.java +++ /dev/null @@ -1,77 +0,0 @@ -package nautilus.game.arcade.game.games.sheep.modes; - -import org.bukkit.event.EventHandler; - -import mineplex.core.common.Pair; -import mineplex.core.common.util.C; -import mineplex.core.common.util.UtilTime; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.games.sheep.SheepGame; - -/** - * SheepMania is a mode of {@link SheepGame} in which only one Sheep will spawn - * - * @author xXVevzZXx - */ -public class SheepMania extends SheepGame -{ - - public SheepMania(ArcadeManager manager) - { - super(manager, GameType.Brawl); - - setSheepDelay(GameTimeout); - } - - @Override - @EventHandler - public void ScoreboardUpdate(UpdateEvent event) - { - if (event.getType() != UpdateType.FAST) - return; - - if (!InProgress()) - return; - - Scoreboard.reset(); - Scoreboard.writeNewLine(); - - Scoreboard.writeGroup(getSheepPens().keySet(), team -> - { - getTeamScores().put(team, getSheepCount(team)); - return Pair.create(team.GetColor() + team.GetName(), getSheepCount(team)); - }, true); - - if (!IsLive()) - return; - - long time = getGameTime() - - (System.currentTimeMillis() - this.GetStateTime()); - - Scoreboard.writeNewLine(); - Scoreboard.write(C.cYellow + C.Bold + "Time Left"); - Scoreboard.write(UtilTime.MakeStr(Math.max(0, time), 0)); - - Scoreboard.draw(); - } - - @Override - @EventHandler - public void SheepSpawnStart(GameStateChangeEvent event) - { - if (event.GetState() == GameState.Live) - SheepSpawn(); - } - - @Override - public String GetMode() - { - return "Sheep Mania"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/SmashSheep.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/SmashSheep.java deleted file mode 100644 index 9d04af1f3..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/SmashSheep.java +++ /dev/null @@ -1,116 +0,0 @@ -package nautilus.game.arcade.game.games.sheep.modes; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.entity.EntityDamageEvent.DamageCause; -import org.bukkit.inventory.ItemStack; - -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; -import mineplex.minecraft.game.core.damage.CustomDamageEvent; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.game.games.sheep.SheepGame; -import nautilus.game.arcade.game.games.smash.kits.KitBlaze; -import nautilus.game.arcade.game.games.smash.kits.KitChicken; -import nautilus.game.arcade.game.games.smash.kits.KitCow; -import nautilus.game.arcade.game.games.smash.kits.KitCreeper; -import nautilus.game.arcade.game.games.smash.kits.KitEnderman; -import nautilus.game.arcade.game.games.smash.kits.KitGolem; -import nautilus.game.arcade.game.games.smash.kits.KitMagmaCube; -import nautilus.game.arcade.game.games.smash.kits.KitPig; -import nautilus.game.arcade.game.games.smash.kits.KitSheep; -import nautilus.game.arcade.game.games.smash.kits.KitSkeletalHorse; -import nautilus.game.arcade.game.games.smash.kits.KitSkeleton; -import nautilus.game.arcade.game.games.smash.kits.KitSkySquid; -import nautilus.game.arcade.game.games.smash.kits.KitSlime; -import nautilus.game.arcade.game.games.smash.kits.KitSnowman; -import nautilus.game.arcade.game.games.smash.kits.KitSpider; -import nautilus.game.arcade.game.games.smash.kits.KitWitch; -import nautilus.game.arcade.game.games.smash.kits.KitWitherSkeleton; -import nautilus.game.arcade.game.games.smash.kits.KitWolf; -import nautilus.game.arcade.game.games.smash.kits.KitZombie; -import nautilus.game.arcade.kit.Kit; - -/** - * SheepSmash - * - * @author xXVevzZXx - */ -public class SmashSheep extends SheepGame -{ - - public SmashSheep(ArcadeManager manager) - { - super(manager, new Kit[] - { - new KitSkeleton(manager), - new KitGolem(manager), - new KitSpider(manager), - new KitSlime(manager), - - new KitCreeper(manager), - new KitEnderman(manager), - new KitSnowman(manager), - new KitWolf(manager), - - - new KitBlaze(manager), - new KitWitch(manager), - new KitChicken(manager), - new KitSkeletalHorse(manager), - new KitPig(manager), - new KitSkySquid(manager), - new KitWitherSkeleton(manager), - new KitMagmaCube(manager), - new KitZombie(manager), - new KitCow(manager), - - new KitSheep(manager) - }, GameType.Brawl); - } - - @EventHandler - public void saddle(UpdateEvent event) - { - if (event.getType() != UpdateType.FASTER) - return; - - if (!IsLive()) - return; - - for (Player player : GetPlayers(true)) - { - player.getInventory().setItem(7, new ItemStack(Material.SADDLE)); - } - } - - @EventHandler(priority = EventPriority.LOWEST) - public void noFallDamage(CustomDamageEvent event) - { - if (event.IsCancelled()) - return; - - if (event.GetCause() == DamageCause.FALL) - event.SetCancelled("No Fall Damage"); - } - - @EventHandler(priority = EventPriority.HIGH) - public void customKnockback(CustomDamageEvent event) - { - if (event.IsCancelled()) - return; - - if (event.GetDamageePlayer() != null) - event.AddKnockback("Smash Knockback", 1 + 0.1 * (20 - event.GetDamageePlayer().getHealth())); - } - - @Override - public String GetMode() - { - return "Smash Sheep"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/kits/KitShepherd.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/kits/KitShepherd.java deleted file mode 100644 index be9f27610..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/modes/kits/KitShepherd.java +++ /dev/null @@ -1,49 +0,0 @@ -package nautilus.game.arcade.game.games.sheep.modes.kits; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - -import mineplex.core.common.util.C; -import mineplex.core.game.kit.GameKit; -import mineplex.core.itemstack.ItemStackFactory; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.kit.Kit; -import nautilus.game.arcade.kit.Perk; -import nautilus.game.arcade.kit.perks.PerkDoubleJump; -import nautilus.game.arcade.kit.perks.PerkFletcher; - -public class KitShepherd extends Kit -{ - - private static final Perk[] PERKS = - { - new PerkDoubleJump("Double Jump", 1.2, 1.2, true, 8000, true), - new PerkFletcher(4, 10, true) - }; - - private static final ItemStack[] PLAYER_ITEMS = { - ItemStackFactory.Instance.CreateStack(Material.DIAMOND_SWORD), - ItemStackFactory.Instance.CreateStack(Material.GOLDEN_APPLE, 2), - ItemStackFactory.Instance.CreateStack(Material.BOW), - ItemStackFactory.Instance.CreateStack(Material.SADDLE, (byte) 0, 1, - C.cYellow + C.Bold + "Hold This" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Grab/Hold Sheep") - }; - - public KitShepherd(ArcadeManager manager) - { - super(manager, GameKit.SHEEP_QUEST_BRUTE, PERKS); - } - - @Override - public void GiveItems(Player player) - { - player.getInventory().addItem(PLAYER_ITEMS); - - player.getInventory().setHelmet(new ItemStack(Material.DIAMOND_HELMET)); - player.getInventory().setChestplate(new ItemStack(Material.DIAMOND_CHESTPLATE)); - player.getInventory().setLeggings(new ItemStack(Material.DIAMOND_LEGGINGS)); - player.getInventory().setBoots(new ItemStack(Material.DIAMOND_BOOTS)); - } -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/modes/OverpoweredSkywars.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/modes/OverpoweredSkywars.java deleted file mode 100644 index 9ed8d421e..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/modes/OverpoweredSkywars.java +++ /dev/null @@ -1,30 +0,0 @@ -package nautilus.game.arcade.game.games.skywars.modes; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.game.modules.AbsorptionFix; -import nautilus.game.arcade.game.games.skywars.TeamSkywars; - -/** - * OverpoweredSkywars gamemode for Skywars - * - * @author xXVevzZXx - */ -public class OverpoweredSkywars extends TeamSkywars -{ - - public OverpoweredSkywars(ArcadeManager manager) - { - super(manager, GameType.Brawl); - - new AbsorptionFix() - .register(this); - } - - @Override - public String GetMode() - { - return "OP Skywars"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/modes/SkySmash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/modes/SkySmash.java deleted file mode 100644 index bc3ac34ed..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/modes/SkySmash.java +++ /dev/null @@ -1,121 +0,0 @@ -package nautilus.game.arcade.game.games.skywars.modes; - -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.entity.EntityDamageEvent.DamageCause; - -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.recharge.Recharge; -import mineplex.minecraft.game.core.damage.CustomDamageEvent; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.game.games.skywars.SoloSkywars; -import nautilus.game.arcade.game.games.smash.kits.KitBlaze; -import nautilus.game.arcade.game.games.smash.kits.KitChicken; -import nautilus.game.arcade.game.games.smash.kits.KitCow; -import nautilus.game.arcade.game.games.smash.kits.KitCreeper; -import nautilus.game.arcade.game.games.smash.kits.KitEnderman; -import nautilus.game.arcade.game.games.smash.kits.KitGolem; -import nautilus.game.arcade.game.games.smash.kits.KitMagmaCube; -import nautilus.game.arcade.game.games.smash.kits.KitPig; -import nautilus.game.arcade.game.games.smash.kits.KitSheep; -import nautilus.game.arcade.game.games.smash.kits.KitSkeletalHorse; -import nautilus.game.arcade.game.games.smash.kits.KitSkeleton; -import nautilus.game.arcade.game.games.smash.kits.KitSkySquid; -import nautilus.game.arcade.game.games.smash.kits.KitSlime; -import nautilus.game.arcade.game.games.smash.kits.KitSnowman; -import nautilus.game.arcade.game.games.smash.kits.KitSpider; -import nautilus.game.arcade.game.games.smash.kits.KitWitch; -import nautilus.game.arcade.game.games.smash.kits.KitWitherSkeleton; -import nautilus.game.arcade.game.games.smash.kits.KitWolf; -import nautilus.game.arcade.game.games.smash.kits.KitZombie; -import nautilus.game.arcade.kit.Kit; - -/** - * SkySmash - * - * @author xXVevzZXx - */ -public class SkySmash extends SoloSkywars -{ - - public SkySmash(ArcadeManager manager) - { - super(manager, new Kit[] - { - new KitSkeleton(manager), - new KitGolem(manager), - new KitSpider(manager), - new KitSlime(manager), - - new KitCreeper(manager), - new KitEnderman(manager), - new KitSnowman(manager), - new KitWolf(manager), - - - new KitBlaze(manager), - new KitWitch(manager), - new KitChicken(manager), - new KitSkeletalHorse(manager), - new KitPig(manager), - new KitSkySquid(manager), - new KitWitherSkeleton(manager), - new KitMagmaCube(manager), - new KitZombie(manager), - new KitCow(manager), - - new KitSheep(manager) - }, GameType.Brawl); - } - - @EventHandler(priority = EventPriority.LOWEST) - public void noFallDamage(CustomDamageEvent event) - { - if (event.IsCancelled()) - return; - - if (event.GetCause() == DamageCause.FALL) - event.SetCancelled("No Fall Damage"); - } - - @EventHandler(priority = EventPriority.HIGH) - public void customKnockback(CustomDamageEvent event) - { - if (event.IsCancelled()) - return; - - if (event.GetDamageePlayer() != null) - event.AddKnockback("Smash Knockback", 1 + 0.1 * (20 - event.GetDamageePlayer().getHealth())); - } - - @EventHandler(priority = EventPriority.MONITOR) - public void hungerOnHit(CustomDamageEvent event) - { - if (event.IsCancelled()) - return; - - Player damager = event.GetDamagerPlayer(true); - if (damager == null) - return; - - if (damager.equals(event.GetDamageeEntity())) - return; - - if (!(event.GetDamageeEntity() instanceof Player)) - return; - - if (!Recharge.Instance.use(damager, "Hunger Restore", 250, false, false)) - return; - - int amount = Math.max(1, (int)(event.GetDamage()/2)); - UtilPlayer.hunger(damager, amount); - } - - @Override - public String GetMode() - { - return "Sky Smash"; - } -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/modes/UHCSkywars.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/modes/UHCSkywars.java deleted file mode 100644 index 43dfe52b0..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/modes/UHCSkywars.java +++ /dev/null @@ -1,89 +0,0 @@ -package nautilus.game.arcade.game.games.skywars.modes; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityRegainHealthEvent; -import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; -import org.bukkit.inventory.ItemStack; -import org.bukkit.scoreboard.DisplaySlot; -import org.bukkit.scoreboard.Objective; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.modules.AbsorptionFix; -import nautilus.game.arcade.game.games.skywars.SoloSkywars; - -/** - * UHCSkywars gamemode for Skywars - * - * @author xXVevzZXx - */ -public class UHCSkywars extends SoloSkywars -{ - - public UHCSkywars(ArcadeManager manager) - { - super(manager, GameType.Brawl); - - SoupEnabled = false; - - new AbsorptionFix() - .register(this); - } - - @EventHandler - public void registerObj(GameStateChangeEvent event) - { - if(event.GetState() == GameState.Prepare) - { - Objective objective = Scoreboard.getScoreboard().registerNewObjective("Health", "health"); - objective.setDisplaySlot(DisplaySlot.PLAYER_LIST); - } - - if(event.GetState() == GameState.Live) - { - for(Player player : GetPlayers(true)) - { - player.damage(2); - } - - Manager.runSyncLater(new Runnable() - { - @Override - public void run() - { - for(Player player : GetPlayers(true)) - { - player.setHealth(player.getMaxHealth()); - } - } - }, 10); - } - } - - @EventHandler - public void regenHealth(EntityRegainHealthEvent event) - { - if(event.getRegainReason() == RegainReason.SATIATED) - event.setCancelled(true); - } - - @EventHandler - public void gappleDrop(EntityDeathEvent event) - { - if(event.getEntity() instanceof Player) - { - event.getDrops().add(new ItemStack(Material.GOLDEN_APPLE)); - } - } - - @Override - public String GetMode() - { - return "UHC Skywars"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/modes/RandomKitSSM.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/modes/RandomKitSSM.java deleted file mode 100644 index c47040297..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/modes/RandomKitSSM.java +++ /dev/null @@ -1,154 +0,0 @@ -package nautilus.game.arcade.game.games.smash.modes; - -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.HandlerList; -import org.bukkit.event.entity.EntityDeathEvent; - -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilServer; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.games.smash.SoloSuperSmash; -import nautilus.game.arcade.game.games.smash.kits.KitBlaze; -import nautilus.game.arcade.game.games.smash.kits.KitChicken; -import nautilus.game.arcade.game.games.smash.kits.KitCow; -import nautilus.game.arcade.game.games.smash.kits.KitCreeper; -import nautilus.game.arcade.game.games.smash.kits.KitEnderman; -import nautilus.game.arcade.game.games.smash.kits.KitGolem; -import nautilus.game.arcade.game.games.smash.kits.KitGuardian; -import nautilus.game.arcade.game.games.smash.kits.KitMagmaCube; -import nautilus.game.arcade.game.games.smash.kits.KitPig; -import nautilus.game.arcade.game.games.smash.kits.KitSheep; -import nautilus.game.arcade.game.games.smash.kits.KitSkeletalHorse; -import nautilus.game.arcade.game.games.smash.kits.KitSkeleton; -import nautilus.game.arcade.game.games.smash.kits.KitSkySquid; -import nautilus.game.arcade.game.games.smash.kits.KitSlime; -import nautilus.game.arcade.game.games.smash.kits.KitSnowman; -import nautilus.game.arcade.game.games.smash.kits.KitSpider; -import nautilus.game.arcade.game.games.smash.kits.KitWitch; -import nautilus.game.arcade.game.games.smash.kits.KitWitherSkeleton; -import nautilus.game.arcade.game.games.smash.kits.KitWolf; -import nautilus.game.arcade.game.games.smash.kits.KitZombie; -import nautilus.game.arcade.game.games.smash.modes.kits.KitHipster; -import nautilus.game.arcade.kit.Kit; -import nautilus.game.arcade.kit.Perk; - -/** - * RandomKitSSM gamemode for SSM - * - * @author xXVevzZXx - */ -public class RandomKitSSM extends SoloSuperSmash -{ - - private Kit[] _kits; - - private int _maxLives; - - public RandomKitSSM(ArcadeManager manager) - { - super(manager, new Kit[]{new KitHipster(manager)}, GameType.Brawl); - - _maxLives = 5; - - _kits = new Kit[] - { - - new KitSkeleton(manager), - new KitGolem(manager), - new KitSpider(manager), - new KitSlime(manager), - new KitCreeper(manager), - new KitEnderman(manager), - new KitSnowman(manager), - new KitWolf(manager), - new KitBlaze(manager), - new KitWitch(manager), - new KitChicken(manager), - new KitSkeletalHorse(manager), - new KitPig(manager), - new KitSkySquid(manager), - new KitWitherSkeleton(manager), - new KitMagmaCube(manager), - new KitZombie(manager), - new KitCow(manager), - new KitSheep(manager), - new KitGuardian(manager) - - }; - } - - @Override - @EventHandler(priority = EventPriority.HIGH) - public void gameStart(GameStateChangeEvent event) - { - super.gameStart(event); - - if (event.GetState() != GameState.Prepare) - return; - - for (Player player : GetPlayers(true)) - { - getLiveMap().put(player, _maxLives); - - Kit kit = _kits[UtilMath.r(_kits.length)]; - SetKit(player, kit, true); - } - } - - @EventHandler - public void KitRegister(GameStateChangeEvent event) - { - if (event.GetState() != event.GetGame().KitRegisterState) - return; - - for (Kit kit : _kits) - { - UtilServer.getServer().getPluginManager().registerEvents(kit, Manager.getPlugin()); - - for (Perk perk : kit.GetPerks()) - { - UtilServer.getServer().getPluginManager().registerEvents(perk, Manager.getPlugin()); - perk.registeredEvents(); - } - } - } - - @EventHandler - public void end(GameStateChangeEvent event) - { - if (event.GetState() != GameState.Dead) - return; - - for (Kit kit : _kits) - { - HandlerList.unregisterAll(kit); - - for (Perk perk : kit.GetPerks()) - { - HandlerList.unregisterAll(perk); - perk.unregisteredEvents(); - } - } - } - - @EventHandler - public void kitSwitch(EntityDeathEvent event) - { - if (!(event.getEntity() instanceof Player)) - return; - - Kit kit = _kits[UtilMath.r(_kits.length)]; - SetKit((Player) event.getEntity(), kit, true); - } - - @Override - public String GetMode() - { - return "Random Kit SSM"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/modes/kits/KitHipster.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/modes/kits/KitHipster.java deleted file mode 100644 index dbd2fbf04..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/modes/kits/KitHipster.java +++ /dev/null @@ -1,30 +0,0 @@ -package nautilus.game.arcade.game.games.smash.modes.kits; - -import org.bukkit.entity.Player; - -import mineplex.core.game.kit.GameKit; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.game.games.smash.perks.SmashKit; -import nautilus.game.arcade.kit.Perk; - -/** - * KitPlayer - * - * @author xXVevzZXx - */ -public class KitHipster extends SmashKit -{ - - public KitHipster(ArcadeManager manager) - { - super(manager, GameKit.NULL_PLAYER, new Perk[0], null); - } - - @Override - public void GiveItems(Player player) - { - - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/modes/Assassins.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/modes/Assassins.java deleted file mode 100644 index 34d732d6c..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/modes/Assassins.java +++ /dev/null @@ -1,121 +0,0 @@ -package nautilus.game.arcade.game.games.uhc.modes; - -import java.util.HashMap; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.entity.PlayerDeathEvent; - -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilInv; -import mineplex.core.common.util.UtilMath; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.itemstack.ItemStackFactory; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.events.GameStateChangeEvent; -import nautilus.game.arcade.game.Game.GameState; -import nautilus.game.arcade.game.games.uhc.UHCSolo; - -/** - * Assassins gamemode for UHC - * - * @author xXVevzZXx - */ -public class Assassins extends UHCSolo -{ - - private HashMap _assassins; - - public Assassins(ArcadeManager manager) - { - super(manager, GameType.Brawl); - } - - @EventHandler - public void setTargets(GameStateChangeEvent event) - { - if (event.GetState() != GameState.Live) - return; - - for (Player player : GetPlayers(true)) - { - for (Player other : GetPlayers(true)) - { - if (GetTeam(player) == GetTeam(other)) - continue; - - if (_assassins.containsValue(other)) - continue; - - _assassins.put(player, other); - UtilPlayer.message(player, F.main("Game", "Your target is " + F.game(other.getName()) + ". If you kill another Player no loot will drop.")); - } - } - for (Player player : GetPlayers(true)) - { - if (!_assassins.containsKey(player)) - { - getNewTarget(player); - } - } - } - - @EventHandler - public void killPlayer(PlayerDeathEvent event) - { - Player player = event.getEntity(); - - for (Player other : _assassins.keySet()) - { - if (_assassins.get(other) == player) - { - UtilPlayer.message(other, F.main("Game", "Your target has died.")); - - Player newTarget = _assassins.get(player); - if (GetTeam(newTarget) != GetTeam(other)) - { - _assassins.put(other, newTarget); - } - else - { - getNewTarget(other); - } - } - } - - if (event.getEntity().getKiller() instanceof Player) - { - Player killer = event.getEntity().getKiller(); - if (_assassins.get(killer) != event.getEntity()) - { - event.getDrops().clear(); - event.setDroppedExp(0); - } - } - } - - public void getNewTarget(Player player) - { - Player other = GetPlayers(true).get(UtilMath.r(GetPlayers(true).size())); - - while (other == player || GetTeam(player) == GetTeam(other)) - { - other = GetPlayers(true).get(UtilMath.r(GetPlayers(true).size())); - } - - _assassins.put(player, other); - UtilPlayer.message(player, F.main("Game", "Your target is " + F.game(other.getName()) + ". If you kill another Player no loot will drop.")); - - UtilInv.insert(player, ItemStackFactory.Instance.CreateStack(Material.PAPER, (byte) 0, 1, "Your target is: " + F.game(other.getName()))); - } - - @Override - public String GetMode() - { - return "Assassins"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/modes/BloodDiamonds.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/modes/BloodDiamonds.java deleted file mode 100644 index 32daf6400..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/modes/BloodDiamonds.java +++ /dev/null @@ -1,49 +0,0 @@ -package nautilus.game.arcade.game.games.uhc.modes; - -import java.util.HashMap; - -import org.bukkit.Material; -import org.bukkit.event.EventHandler; -import org.bukkit.event.block.BlockBreakEvent; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.game.games.uhc.UHCSolo; - -/** - * BloodDiamonds gamemode for UHC - * - * @author xXVevzZXx - */ -public class BloodDiamonds extends UHCSolo -{ - - private HashMap _oreDamage; - - public BloodDiamonds(ArcadeManager manager) - { - super(manager, GameType.Brawl); - - _oreDamage = new HashMap<>(); - _oreDamage.put(Material.DIAMOND_ORE, 1D); - } - - @EventHandler - public void damageOres(BlockBreakEvent event) - { - for (Material mat : _oreDamage.keySet()) - { - if (event.getBlock().getType() == mat) - { - event.getPlayer().damage(_oreDamage.get(mat)); - } - } - } - - @Override - public String GetMode() - { - return "Blood Diamonds"; - } - -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/modes/GodBattles.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/modes/GodBattles.java deleted file mode 100644 index 1f566abf0..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/modes/GodBattles.java +++ /dev/null @@ -1,82 +0,0 @@ -package nautilus.game.arcade.game.games.uhc.modes; - -import java.util.List; -import java.util.Set; - -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.inventory.ItemStack; - -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; - -import mineplex.core.common.util.UtilBlock; -import mineplex.core.common.util.UtilItem; -import mineplex.core.common.util.UtilMath; -import mineplex.core.itemstack.ItemBuilder; - -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.GameType; -import nautilus.game.arcade.game.games.uhc.UHCSolo; -import nautilus.game.arcade.game.modules.CutCleanModule; -import nautilus.game.arcade.game.modules.ItemGiverModule; -import nautilus.game.arcade.game.modules.OreVeinEditorModule; - -/** - * GodBattles gamemode for UHC - */ -public class GodBattles extends UHCSolo -{ - // The set of materials which will be considered as an ore - private static final Set ORE_MATERIALS = Sets.newHashSet( - Material.COAL_ORE, - Material.REDSTONE_ORE, - Material.IRON_ORE, - Material.GOLD_ORE, - Material.DIAMOND_ORE - ); - - // The set of materials which will act as replacements - private static final List ORE_REPLACEMENTS = Lists.newArrayList( - Material.GOLD_ORE, - Material.DIAMOND_ORE - ); - - public GodBattles(ArcadeManager manager) - { - super(manager, GameType.Brawl); - - new CutCleanModule() - .associateBlockDrop( - Material.GOLD_ORE, - new ItemBuilder(Material.GOLD_BLOCK).build() - ) - .register(this); - - new ItemGiverModule() - .withItem(UtilItem.makeUnbreakable(new ItemStack(Material.DIAMOND_PICKAXE))) - .register(this); - - new OreVeinEditorModule() - .useFilter(block -> ORE_MATERIALS.contains(block.getType())) - .useEditor(vein -> - { - Material ore = ORE_REPLACEMENTS.get(UtilMath.r(ORE_REPLACEMENTS.size())); - for (Block block : vein) - { - if(!ORE_REPLACEMENTS.contains(block.getType())) - { - if(!UtilBlock.isVisible(block)) - block.setType(ore); - } - } - }) - .register(this); - } - - @Override - public String GetMode() - { - return "God Battles"; - } -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameCreationManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameCreationManager.java index d244faa86..9595cd100 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameCreationManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameCreationManager.java @@ -1,11 +1,8 @@ package nautilus.game.arcade.managers; -import java.lang.reflect.Array; -import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; @@ -14,8 +11,6 @@ import java.util.Map; import java.util.Map.Entry; import java.util.stream.Collectors; -import org.bukkit.ChatColor; -import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -52,7 +47,7 @@ public class GameCreationManager implements Listener private GameType _nextGame = null; - private GameMode _lastMode = null; + private String _lastMode = null; private final List _lastGames = new ArrayList<>(); private Map> _maps; @@ -245,11 +240,6 @@ public class GameCreationManager implements Listener } } - if (gameType == null) - { - return; - } - Class gameClass = gameType.getGameClass(); // If map voting and ONLY map voting is enabled @@ -282,44 +272,39 @@ public class GameCreationManager implements Listener _lastGames.add(0, gameType); - boolean setVars = false; + // GameModes + if (gameType.hasGameModes()) + { + List gameModes = Manager.GetServerConfig().GameModeList; + GameMode mode = null; + + // First check if there is an overriding preference + if (ModePref != null) + { + mode = getModeByName(gameType.getGameModes(), ModePref.getName()); + } + else if (!gameModes.isEmpty()) + { + mode = randomGameMode(gameType); + } + + if (mode != null) + { + gameClass = mode.getGameClass(); + _lastMode = mode.getName(); + } + } + + ModePref = null; try { - GameMode mode = null; - - if (ModePref != null) - { - for (GameMode modes : gameType.getGameModes()) - { - if (modes.equals(ModePref)) - { - _lastMode = ModePref; - mode = modes; - gameClass = modes.getGameClass(); - setVars = true; - break; - } - } - } - - if (gameClass == null) - { - gameClass = UtilMath.randomElement(gameType.getGameModes()).getGameClass(); - } - // Maps loadMaps(gameType); - ModePref = null; - + // Create Game instance Game game = gameClass.getConstructor(ArcadeManager.class).newInstance(Manager); - if (setVars) - { - modifyGameConfiguration(gameClass, mode, game); - } - Manager.SetGame(game); } catch (NoSuchMethodException ex) @@ -358,7 +343,7 @@ public class GameCreationManager implements Listener _maps = new HashMap<>(); // Map - for (GameType type : Game.getWorldHostNames(gameType, gameType.getGameClass())) + for (GameType type : Game.getWorldHostNames(gameType)) { _maps.put(type, Manager.LoadFiles(type.getName())); } @@ -452,45 +437,23 @@ public class GameCreationManager implements Listener private GameMode randomGameMode(GameType type) { - ArrayList modes = Manager.GetServerConfig().GameModeList; - if (modes.size() == 0) - return null; + List modes = Manager.GetServerConfig().GameModeList; - GameMode[] gameModes = type.getGameModes(); - - String mode = modes.get(UtilMath.r(modes.size())); - - int i = 0; - while ((_lastMode == null || mode.equalsIgnoreCase(_lastMode.getName())) && !containsMode(gameModes, mode) && i != 25) - { - mode = modes.get(UtilMath.r(modes.size())); - i++; - } - - return getMode(gameModes, mode); + return UtilAlg.Random(Arrays.stream(type.getGameModes()) + .filter(gameMode -> modes.contains(gameMode.getName()) && (_lastMode == null || _lastMode.equals(gameMode.getName()))) + .collect(Collectors.toList())); } - private boolean containsMode(GameMode[] modes, String mode) + private GameMode getModeByName(GameMode[] gameModes, String gameModeName) { - for (GameMode otherMode : modes) + for (GameMode modes : gameModes) { - if (otherMode.getName().equalsIgnoreCase(mode)) + if (modes.getName().equals(gameModeName)) { - return true; + return modes; } } - return false; - } - private GameMode getMode(GameMode[] modes, String mode) - { - for (GameMode otherMode : modes) - { - if (otherMode.getName().equalsIgnoreCase(mode)) - { - return otherMode; - } - } return null; } @@ -505,260 +468,6 @@ public class GameCreationManager implements Listener return _nextGame; } - @SuppressWarnings("unchecked") - private void modifyGameConfiguration(Class gameClass, GameMode mode, Game game) - { - ArrayList> classes = new ArrayList<>(); - - Class superClass = gameClass; - while (superClass != Game.class) - { - classes.add(superClass); - superClass = (Class) superClass.getSuperclass(); - } - classes.add(Game.class); - - HashMap varSet = Manager.GetServerConfig().GameModeMods.get(mode.getName().replaceAll(" ", "")); - - if (varSet == null) - return; - - for (Class clazz : classes) - { - for (String var : varSet.keySet()) - { - String value = varSet.get(var); - if (value.contains("(")) - { - boolean add = value.contains("+"); - boolean remove = value.contains("-"); - - value = value.split("\\(")[1]; - value = value.replace(")", ""); - - Field f = getField(clazz, var); - if (f == null) - continue; - - processList(clazz, game, var, value.contains(":") ? value.split("\\:") : new String[] - { - value - }, - add, remove, !List.class.isAssignableFrom(f.getType())); - } - else if (value.contains("[")) - { - value = value.split("\\[")[1]; - value = value.replace("]", ""); - - Map varMap = new HashMap<>(); - - String[] values = value.contains(":") ? value.split(":") : new String[] - {value}; - - for (String keyValueSet : values) - { - String key = keyValueSet.split("\\$")[0]; - String val = keyValueSet.split("\\$")[1]; - varMap.put(key, val); - } - - processMap(clazz, game, var, varMap); - } - else - { - processVariable(clazz, game, var, value); - } - } - } - } - - @SuppressWarnings("unchecked") - private void processMap(Class clazz, Game game, String var, - Map map) - { - Field f = getField(clazz, var); - if (f == null) - return; - - try - { - f.setAccessible(true); - - ParameterizedType type = (ParameterizedType) f.getGenericType(); - - Type keyGeneric = type.getActualTypeArguments()[0]; - Class keyGenericClazz = Class.forName(keyGeneric.getTypeName()); - - Type valueGeneric = type.getActualTypeArguments()[1]; - Class valueGenericClazz = Class.forName(valueGeneric.getTypeName()); - - Map currentMap = (Map) f.get(game); - - for (String key : map.keySet()) - { - currentMap.put(parseValue(keyGenericClazz, key, game), - parseValue(valueGenericClazz, map.get(key), game)); - } - f.setAccessible(false); - } - catch (Exception ex) - { - System.out.println("Error while editing map"); - } - } - - @SuppressWarnings("unchecked") - private void processList(Class clazz, Game game, String var, String[] value, - boolean add, boolean remove, boolean array) - { - Field f = getField(clazz, var); - if (f == null) - return; - - try - { - f.setAccessible(true); - - if (array) - { - f.set(game, Array.newInstance(f.getType().getComponentType(), value.length)); - for (int i = 0; i < value.length; i++) - { - ((Object[]) f.get(game))[i] = parseValue(f.getType().getComponentType(), value[i], game); - } - } - else - { - ParameterizedType type = (ParameterizedType) f.getGenericType(); - Type generic = type.getActualTypeArguments()[0]; - Class genericClazz = Class.forName(generic.getTypeName()); - - ArrayList currentList = (ArrayList) f.get(game); - if (!add && !remove) - { - add = true; - currentList.clear(); - } - - for (String finalValue : value) - { - if (add) - { - currentList.add(parseValue(genericClazz, finalValue, game)); - } - else if (remove) - { - currentList.remove(parseValue(genericClazz, finalValue, game)); - } - } - } - - f.setAccessible(false); - } - catch (Exception ex) - { - System.out.println("Error while editing list"); - ex.printStackTrace(); - } - } - - private void processVariable(Class clazz, Game game, String var, String value) - { - Field f = getField(clazz, var); - if (f == null) - return; - - try - { - f.setAccessible(true); - Object finalValue = parseValue(f.getType(), value, game); - if (value != null) - { - f.set(game, finalValue); - } - f.setAccessible(false); - } - catch (Exception ex) - { - ex.printStackTrace(); - System.out.println("Error while setting variable"); - } - } - - private Object parseValue(Class clazz, String value, Game game) - { - try - { - if (clazz == boolean.class) - { - return Boolean.parseBoolean(value); - } - else if (clazz == String.class) - { - return value; - } - else if (clazz == int.class || clazz == Integer.class) - { - return Integer.parseInt(value); - } - else if (clazz == float.class || clazz == Float.class) - { - return Float.parseFloat(value); - } - else if (clazz == double.class || clazz == Double.class) - { - return Double.parseDouble(value); - } - else if (clazz == long.class || clazz == Long.class) - { - return Long.parseLong(value); - } - else if (clazz == byte.class || clazz == Byte.class) - { - return Byte.parseByte(value); - } - else if (clazz == short.class || clazz == Short.class) - { - return Short.parseShort(value); - } - else if (clazz == Material.class) - { - return Material.valueOf(value); - } - else if (clazz == ChatColor.class) - { - return ChatColor.getByChar(value); - } - return null; - } - catch (Exception ex) - { - System.out.println("Error while parsing value"); - return null; - } - } - - private Field getField(Class clazz, String var) - { - Field f = null; - try - { - f = clazz.getDeclaredField(var); - } - catch (Exception e) - { - try - { - f = clazz.getDeclaredField("_" + var); - } - catch (Exception ex) - { - } - } - return f; - } - public VotingManager getVotingManager() { return _votingManager;