From de5e22e636839db3f7c1bb2c3aa874ff0ed05c01 Mon Sep 17 00:00:00 2001 From: RandomPanda30 Date: Sat, 12 Oct 2013 13:16:18 +0100 Subject: [PATCH] + Added a after game warp to prevent spamming of signs. Fixes #21. --- src/nl/Steffion/BlockHunt/Arena.java | 15 ++++++++++----- src/nl/Steffion/BlockHunt/ArenaHandler.java | 8 +++++--- src/nl/Steffion/BlockHunt/BlockHunt.java | 2 +- src/nl/Steffion/BlockHunt/Commands/CMDcreate.java | 2 +- .../Steffion/BlockHunt/Commands/CMDsetwarp.java | 6 ++++++ src/nl/Steffion/BlockHunt/PlayerArenaData.java | 2 -- 6 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/nl/Steffion/BlockHunt/Arena.java b/src/nl/Steffion/BlockHunt/Arena.java index b5dfecc..4b7195d 100644 --- a/src/nl/Steffion/BlockHunt/Arena.java +++ b/src/nl/Steffion/BlockHunt/Arena.java @@ -31,6 +31,7 @@ public class Arena implements ConfigurationSerializable { public LocationSerializable lobbyWarp; public LocationSerializable hidersWarp; public LocationSerializable seekersWarp; + public LocationSerializable spawnWarp; public List seekersWinCommands; public List hidersWinCommands; public List allowedCommands; @@ -50,11 +51,12 @@ public class Arena implements ConfigurationSerializable { int waitingTimeSeeker, int gameTime, int timeUntilHidersSword, ArrayList disguiseBlocks, LocationSerializable lobbyWarp, LocationSerializable hidersWarp, - LocationSerializable seekersWarp, List seekersWinCommands, - List hidersWinCommands, List allowedCommands, - int seekersTokenWin, int hidersTokenWin, int killTokens, - List playersInArena, ArenaState gameState, int timer, - List seekers, Scoreboard scoreboard) { + LocationSerializable seekersWarp, LocationSerializable spawnWarp, + List seekersWinCommands, List hidersWinCommands, + List allowedCommands, int seekersTokenWin, + int hidersTokenWin, int killTokens, List playersInArena, + ArenaState gameState, int timer, List seekers, + Scoreboard scoreboard) { this.arenaName = arenaName; this.pos1 = pos1; this.pos2 = pos2; @@ -69,6 +71,7 @@ public class Arena implements ConfigurationSerializable { this.lobbyWarp = lobbyWarp; this.hidersWarp = hidersWarp; this.seekersWarp = seekersWarp; + this.spawnWarp = spawnWarp; this.seekersWinCommands = seekersWinCommands; this.hidersWinCommands = hidersWinCommands; this.allowedCommands = allowedCommands; @@ -117,6 +120,7 @@ public class Arena implements ConfigurationSerializable { map.put("lobbyWarp", lobbyWarp); map.put("hidersWarp", hidersWarp); map.put("seekersWarp", seekersWarp); + map.put("spawnWarp", spawnWarp); map.put("seekersWinCommands", seekersWinCommands); map.put("hidersWinCommands", hidersWinCommands); map.put("allowedCommands", allowedCommands); @@ -145,6 +149,7 @@ public class Arena implements ConfigurationSerializable { (LocationSerializable) M.g(map, "lobbyWarp", loc), (LocationSerializable) M.g(map, "hidersWarp", loc), (LocationSerializable) M.g(map, "seekersWarp", loc), + (LocationSerializable) M.g(map, "spawnWarp", loc), (ArrayList) M.g(map, "seekersWinCommands", new ArrayList()), (ArrayList) M.g(map, "hidersWinCommands", new ArrayList()), diff --git a/src/nl/Steffion/BlockHunt/ArenaHandler.java b/src/nl/Steffion/BlockHunt/ArenaHandler.java index f290d62..9a8fb1d 100644 --- a/src/nl/Steffion/BlockHunt/ArenaHandler.java +++ b/src/nl/Steffion/BlockHunt/ArenaHandler.java @@ -96,10 +96,12 @@ public class ArenaHandler { Bukkit.getWorld(player.getWorld().getName() .toString()), 0, 0, 0, 0, 0); if (arena.lobbyWarp != null && arena.hidersWarp != null - && arena.seekersWarp != null) { + && arena.seekersWarp != null + && arena.spawnWarp != null) { if (!arena.lobbyWarp.equals(zero) && !arena.hidersWarp.equals(zero) - && !arena.seekersWarp.equals(zero)) { + && !arena.seekersWarp.equals(zero) + && !arena.spawnWarp.equals(zero)) { if (arena.gameState == ArenaState.WAITING || arena.gameState == ArenaState.STARTING) { if (arena.playersInArena.size() >= arena.maxPlayers) { @@ -349,7 +351,7 @@ public class ArenaHandler { player.setHealth(pad.pHealth); player.setFoodLevel(pad.pFood); player.addPotionEffects(pad.pPotionEffects); - player.teleport(pad.pLocation); + player.teleport(arena.spawnWarp); player.setGameMode(pad.pGameMode); player.setAllowFlight(pad.pFlying); if (player.getAllowFlight()) { diff --git a/src/nl/Steffion/BlockHunt/BlockHunt.java b/src/nl/Steffion/BlockHunt/BlockHunt.java index e08b282..b68e2da 100644 --- a/src/nl/Steffion/BlockHunt/BlockHunt.java +++ b/src/nl/Steffion/BlockHunt/BlockHunt.java @@ -210,7 +210,7 @@ public class BlockHunt extends JavaPlugin implements Listener { "sw", Permissions.setwarp, ConfigC.help_setwarp, (Boolean) W.config.get(ConfigC.commandEnabled_setwarp), BlockHuntCMD, new CMDsetwarp(), - "/BlockHunt "); + "/BlockHunt "); CMDremove = new CommandM("BlockHunt REMOVE", "BlockHunt", "remove", "delete", Permissions.remove, ConfigC.help_remove, (Boolean) W.config.get(ConfigC.commandEnabled_remove), diff --git a/src/nl/Steffion/BlockHunt/Commands/CMDcreate.java b/src/nl/Steffion/BlockHunt/Commands/CMDcreate.java index 8d8ef9a..fa02e30 100644 --- a/src/nl/Steffion/BlockHunt/Commands/CMDcreate.java +++ b/src/nl/Steffion/BlockHunt/Commands/CMDcreate.java @@ -31,7 +31,7 @@ public class CMDcreate extends DefaultCMD { Arena arena = new Arena(args[1], W.pos1.get(player), W.pos2.get(player), 12, 3, 1, 50, 20, 300, 30, new ArrayList(), null, null, null, - new ArrayList(), + null, new ArrayList(), new ArrayList(), new ArrayList(), 10, 50, 8, new ArrayList(), ArenaState.WAITING, 0, diff --git a/src/nl/Steffion/BlockHunt/Commands/CMDsetwarp.java b/src/nl/Steffion/BlockHunt/Commands/CMDsetwarp.java index 4618411..774673e 100644 --- a/src/nl/Steffion/BlockHunt/Commands/CMDsetwarp.java +++ b/src/nl/Steffion/BlockHunt/Commands/CMDsetwarp.java @@ -51,6 +51,12 @@ public class CMDsetwarp extends DefaultCMD { MessageM.sendFMessage(player, ConfigC.normal_setwarpWarpSet, "warp-" + warpname); + } else if (warpname.equalsIgnoreCase("spawn")) { + arena.spawnWarp = loc; + save(arena); + MessageM.sendFMessage(player, + ConfigC.normal_setwarpWarpSet, "warp-" + + warpname); } else { MessageM.sendFMessage(player, ConfigC.error_setwarpWarpNotFound, "warp-" diff --git a/src/nl/Steffion/BlockHunt/PlayerArenaData.java b/src/nl/Steffion/BlockHunt/PlayerArenaData.java index 4e98204..c4c4a9d 100644 --- a/src/nl/Steffion/BlockHunt/PlayerArenaData.java +++ b/src/nl/Steffion/BlockHunt/PlayerArenaData.java @@ -8,7 +8,6 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffect; public class PlayerArenaData { - public Location pLocation; public GameMode pGameMode; public ItemStack[] pInventory; public ItemStack[] pArmor; @@ -23,7 +22,6 @@ public class PlayerArenaData { ItemStack[] pInventory, ItemStack[] pArmor, Float pEXP, Integer pEXPL, Double pHealth, Integer pFood, Collection pPotionEffects, boolean pFlying) { - this.pLocation = pLocation; this.pGameMode = pGameMode; this.pInventory = pInventory; this.pArmor = pArmor;