From f4954efb39612b2903a57a0cbeaa088e67644976 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Tue, 3 May 2022 13:07:40 -0400 Subject: start of 1.4.3 --- src/main/resources/plugin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/resources/plugin.yml') diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 7e1bca8..afe2ed2 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: HideAndSeek main: net.tylermurphy.hideAndSeek.Main -version: 1.4.2 +version: 1.4.3 author: KenshinEto load: STARTUP api-version: 1.13 -- cgit v1.2.3-freya From 61a0080b5ebbbcefd8fa65abd5f472f891dced80 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Sat, 7 May 2022 23:56:04 -0400 Subject: add softdepend to plugin.yml --- src/main/resources/plugin.yml | 1 + 1 file changed, 1 insertion(+) (limited to 'src/main/resources/plugin.yml') diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index afe2ed2..93fec0d 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,6 +5,7 @@ author: KenshinEto load: STARTUP api-version: 1.13 depend: [ProtocolLib] +softdepend: [PlaceholderAPI] commands: hideandseek: description: Hide and Seek command -- cgit v1.2.3-freya From 99d31ff71cecb0de3eac175384d9b55312a8a619 Mon Sep 17 00:00:00 2001 From: bobby29831 Date: Sat, 14 May 2022 08:47:54 -0500 Subject: refactor: clean up typos, improperly named variables --- .github/workflows/beta.yml | 2 +- .../tylermurphy/hideAndSeek/command/SetBorder.java | 32 ++++++++++---------- .../command/location/SetSpawnLocation.java | 2 +- .../hideAndSeek/configuration/Config.java | 34 +++++++++++----------- .../net/tylermurphy/hideAndSeek/game/Board.java | 6 ++-- .../net/tylermurphy/hideAndSeek/game/Game.java | 14 ++++----- .../hideAndSeek/game/events/Border.java | 28 +++++++++--------- .../hideAndSeek/util/CommandHandler.java | 2 +- src/main/resources/config.yml | 4 +-- src/main/resources/plugin.yml | 2 +- 10 files changed, 63 insertions(+), 63 deletions(-) (limited to 'src/main/resources/plugin.yml') diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 5cf7218..80db5b7 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -30,7 +30,7 @@ jobs: key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 - - name: Upload artificats + - name: Upload artifacts uses: actions/upload-artifact@v2 with: name: artifacts-beta diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java index 8114838..3286c74 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java @@ -40,7 +40,7 @@ public class SetBorder implements ICommand { return; } if (args.length < 3) { - worldborderEnabled = false; + worldBorderEnabled = false; addToConfig("worldBorder.enabled",false); saveConfig(); sender.sendMessage(messagePrefix + message("WORLDBORDER_DISABLE")); @@ -68,26 +68,26 @@ public class SetBorder implements ICommand { sender.sendMessage(errorPrefix + message("WORLDBORDER_CHANGE_SIZE")); return; } - Vector newWorldborderPosition = new Vector(); + Vector vec = new Vector(); Player player = (Player) sender; - newWorldborderPosition.setX(player.getLocation().getBlockX()); - newWorldborderPosition.setY(0); - newWorldborderPosition.setZ(player.getLocation().getBlockZ()); - if (spawnPosition.distance(newWorldborderPosition) > 100) { + vec.setX(player.getLocation().getBlockX()); + vec.setY(0); + vec.setZ(player.getLocation().getBlockZ()); + if (spawnPosition.distance(vec) > 100) { sender.sendMessage(errorPrefix + message("WORLDBORDER_POSITION")); return; } - worldborderPosition = newWorldborderPosition; - worldborderSize = num; - worldborderDelay = delay; - worldborderChange = change; - worldborderEnabled = true; - addToConfig("worldBorder.x", worldborderPosition.getBlockX()); - addToConfig("worldBorder.z", worldborderPosition.getBlockZ()); - addToConfig("worldBorder.delay", worldborderDelay); - addToConfig("worldBorder.size", worldborderSize); + worldBorderPosition = vec; + worldBorderSize = num; + worldBorderDelay = delay; + worldBorderChange = change; + worldBorderEnabled = true; + addToConfig("worldBorder.x", worldBorderPosition.getBlockX()); + addToConfig("worldBorder.z", worldBorderPosition.getBlockZ()); + addToConfig("worldBorder.delay", worldBorderDelay); + addToConfig("worldBorder.size", worldBorderSize); addToConfig("worldBorder.enabled", true); - addToConfig("worldBorder.move", worldborderChange); + addToConfig("worldBorder.move", worldBorderChange); sender.sendMessage(messagePrefix + message("WORLDBORDER_ENABLE").addAmount(num).addAmount(delay)); saveConfig(); Main.getInstance().getGame().getBorder().resetWorldBorder(spawnWorld); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetSpawnLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetSpawnLocation.java index d96252d..1f454d6 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetSpawnLocation.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetSpawnLocation.java @@ -36,7 +36,7 @@ public class SetSpawnLocation implements ICommand { Player player = (Player) sender; LocationUtils.setLocation(player, Locations.GAME, vector -> { - if (worldborderEnabled && vector.distance(worldborderPosition) > 100) { + if (worldBorderEnabled && vector.distance(worldBorderPosition) > 100) { sender.sendMessage(errorPrefix + message("WORLDBORDER_POSITION")); throw new RuntimeException("World border not enabled or not in valid position!"); } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java index 9fdaaa6..7ed8454 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java @@ -46,9 +46,9 @@ public class Config { messagePrefix, errorPrefix, tauntPrefix, - worldborderPrefix, + worldBorderPrefix, abortPrefix, - gameoverPrefix, + gameOverPrefix, warningPrefix, spawnWorld, exitWorld, @@ -62,13 +62,13 @@ public class Config { spawnPosition, lobbyPosition, exitPosition, - worldborderPosition; + worldBorderPosition; - public static boolean - nametagsVisible, + public static boolean + nameTagsVisible, permissionsRequired, announceMessagesToNonPlayers, - worldborderEnabled, + worldBorderEnabled, tauntEnabled, tauntCountdown, tauntLast, @@ -87,10 +87,10 @@ public class Config { public static int minPlayers, - worldborderSize, - worldborderDelay, + worldBorderSize, + worldBorderDelay, currentWorldborderSize, - worldborderChange, + worldBorderChange, gameLength, saveMinX, saveMinZ, @@ -183,15 +183,15 @@ public class Config { exitWorld = config.getString("spawns.exit.world"); //World border - worldborderPosition = new Vector( + worldBorderPosition = new Vector( config.getInt("worldBorder.x"), 0, config.getInt("worldBorder.z") ); - worldborderSize = Math.max(100, config.getInt("worldBorder.size")); - worldborderDelay = Math.max(1, config.getInt("worldBorder.delay")); - worldborderEnabled = config.getBoolean("worldBorder.enabled"); - worldborderChange = config.getInt("worldBorder.moveAmount"); + worldBorderSize = Math.max(100, config.getInt("worldBorder.size")); + worldBorderDelay = Math.max(1, config.getInt("worldBorder.delay")); + worldBorderEnabled = config.getBoolean("worldBorder.enabled"); + worldBorderChange = config.getInt("worldBorder.moveAmount"); //Prefix char SYMBOLE = '\u00A7'; @@ -200,9 +200,9 @@ public class Config { messagePrefix = config.getString("prefix.default").replace("&", SYMBOLE_STRING); errorPrefix = config.getString("prefix.error").replace("&", SYMBOLE_STRING); tauntPrefix = config.getString("prefix.taunt").replace("&", SYMBOLE_STRING); - worldborderPrefix = config.getString("prefix.border").replace("&", SYMBOLE_STRING); + worldBorderPrefix = config.getString("prefix.border").replace("&", SYMBOLE_STRING); abortPrefix = config.getString("prefix.abort").replace("&", SYMBOLE_STRING); - gameoverPrefix = config.getString("prefix.gameover").replace("&", SYMBOLE_STRING); + gameOverPrefix = config.getString("prefix.gameover").replace("&", SYMBOLE_STRING); warningPrefix = config.getString("prefix.warning").replace("&", SYMBOLE_STRING); //Map Bounds @@ -248,7 +248,7 @@ public class Config { ringingSound = ringingOptional.orElse(XSound.BLOCK_NOTE_BLOCK_PLING); //Other - nametagsVisible = config.getBoolean("nametagsVisible"); + nameTagsVisible = config.getBoolean("nametagsVisible"); permissionsRequired = config.getBoolean("permissionsRequired"); gameLength = config.getInt("gameLength"); pvpEnabled = config.getBoolean("pvp"); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java index 41950a1..876cb42 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java @@ -265,7 +265,7 @@ public class Board { String value = getTeam(player); board.setLine(String.valueOf(i), line.replace("{TEAM}", value)); } else if (line.contains("{BORDER}")) { - if (!worldborderEnabled) continue; + if (!worldBorderEnabled) continue; if (worldBorder == null || status == Status.STARTING) { board.setLine(String.valueOf(i), line.replace("{BORDER}", BORDER_COUNTING.replace("{AMOUNT}", "0"))); } else if (!worldBorder.isRunning()) { @@ -401,7 +401,7 @@ class CustomBoard { for(Player player : Main.getInstance().getBoard().getSeekers()) seekerTeam.addEntry(player.getName()); if (Version.atLeast("1.9")) { - if (nametagsVisible) { + if (nameTagsVisible) { hiderTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.FOR_OWN_TEAM); seekerTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.FOR_OTHER_TEAMS); } else { @@ -409,7 +409,7 @@ class CustomBoard { seekerTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER); } } else { - if (nametagsVisible) { + if (nameTagsVisible) { hiderTeam.setNameTagVisibility(NameTagVisibility.HIDE_FOR_OTHER_TEAMS); seekerTeam.setNameTagVisibility(NameTagVisibility.HIDE_FOR_OWN_TEAM); } else { diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java index 15341c0..e81d0e5 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java @@ -303,7 +303,7 @@ public class Game { board.reloadGameBoards(); gameTimer--; } - if (worldborderEnabled) worldBorder.update(); + if (worldBorderEnabled) worldBorder.update(); if (tauntEnabled) taunt.update(); if (glowEnabled) glow.update(); } @@ -336,12 +336,12 @@ public class Game { private void checkWinConditions() { if (board.sizeHider() < 1) { if (hiderLeft) { - if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT")); - else broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT")); + if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT")); + else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT")); stop(WinType.NONE); } else { - if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND")); - else broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND")); + if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND")); + else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND")); stop(WinType.SEEKER_WIN); } } else if (board.sizeSeeker() < 1) { @@ -349,8 +349,8 @@ public class Game { else broadcastMessage(abortPrefix + message("GAME_GAMEOVER_SEEKERS_QUIT")); stop(WinType.NONE); } else if (gameTimer < 1) { - if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_TIME")); - else broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_TIME")); + if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_TIME")); + else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_TIME")); stop(WinType.HIDER_WIN); } hiderLeft = false; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/events/Border.java b/src/main/java/net/tylermurphy/hideAndSeek/game/events/Border.java index aa6beca..647c4b6 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/events/Border.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/events/Border.java @@ -13,31 +13,31 @@ public class Border { private boolean running; public Border() { - delay = 60 * worldborderDelay; + delay = 60 * worldBorderDelay; } public void update() { if (delay == 30 && !running) { - Main.getInstance().getGame().broadcastMessage(worldborderPrefix + message("WORLDBORDER_WARN")); + Main.getInstance().getGame().broadcastMessage(worldBorderPrefix + message("WORLDBORDER_WARN")); } else if (delay == 0) { if (running) { - delay = 60 * worldborderDelay; + delay = 60 * worldBorderDelay; running = false; } - else decreaceWorldborder(); + else decreaseWorldBorder(); } delay--; } - private void decreaceWorldborder() { + private void decreaseWorldBorder() { if (currentWorldborderSize == 100) return; - int change = worldborderChange; - if (currentWorldborderSize-worldborderChange < 100) { + int change = worldBorderChange; + if (currentWorldborderSize-worldBorderChange < 100) { change = currentWorldborderSize-100; } running = true; - Main.getInstance().getGame().broadcastMessage(worldborderPrefix + message("WORLDBORDER_DECREASING").addAmount(change)); - currentWorldborderSize -= worldborderChange; + Main.getInstance().getGame().broadcastMessage(worldBorderPrefix + message("WORLDBORDER_DECREASING").addAmount(change)); + currentWorldborderSize -= worldBorderChange; World world = Bukkit.getWorld(Main.getInstance().getGame().getGameWorld()); assert world != null; org.bukkit.WorldBorder border = world.getWorldBorder(); @@ -49,15 +49,15 @@ public class Border { World world = Bukkit.getWorld(worldName); assert world != null; org.bukkit.WorldBorder border = world.getWorldBorder(); - if (worldborderEnabled) { - border.setSize(worldborderSize); - border.setCenter(worldborderPosition.getX(), worldborderPosition.getZ()); - currentWorldborderSize = worldborderSize; + if (worldBorderEnabled) { + border.setSize(worldBorderSize); + border.setCenter(worldBorderPosition.getX(), worldBorderPosition.getZ()); + currentWorldborderSize = worldBorderSize; } else { border.setSize(30000000); border.setCenter(0, 0); } - delay = 60 * worldborderDelay; + delay = 60 * worldBorderDelay; } public int getDelay() { diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java index 3a05ee5..6034607 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java @@ -82,7 +82,7 @@ public class CommandHandler { try { COMMAND_REGISTER.get(args[0].toLowerCase()).execute(sender,Arrays.copyOfRange(args, 1, args.length)); } catch (Exception e) { - sender.sendMessage(errorPrefix + "An error has occured."); + sender.sendMessage(errorPrefix + "An error has occurred."); e.printStackTrace(); } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index c509200..2d76b4a 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -94,8 +94,8 @@ leaveServer: hub # default: true mapSaveEnabled: true -# The worldborder closes every interval, which is evey [delay] in minutes. -# Thw worldborder starts at [size], and decreases 100 blocks every interval. +# The world border closes every interval, which is evey [delay] in minutes. +# Thw world border starts at [size], and decreases 100 blocks every interval. # x & z are the center location. [enabled] is whenever the border is enabled. # You can choose if Hiders are warned 30 seconds before the border moves. worldBorder: diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 93fec0d..b9ad408 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -42,7 +42,7 @@ permissions: description: Allows you to reload the config default: op hideandseek.setborder: - description: Allows you to set the game worldborder + description: Allows you to set the game world border default: op hideandseek.setspawn: description: Allows you to set the game spawn point -- cgit v1.2.3-freya From 90b99235257770e39a96f4d54293e4ebd7f6256c Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Sat, 14 May 2022 21:12:27 -0400 Subject: debug menu and 1.8/1.14 fixes --- .../net/tylermurphy/hideAndSeek/command/About.java | 4 +- .../net/tylermurphy/hideAndSeek/command/Debug.java | 111 +++++++++++++++++++++ .../net/tylermurphy/hideAndSeek/command/Help.java | 4 +- .../tylermurphy/hideAndSeek/command/ICommand.java | 4 +- .../net/tylermurphy/hideAndSeek/command/Join.java | 3 +- .../net/tylermurphy/hideAndSeek/command/Leave.java | 3 +- .../tylermurphy/hideAndSeek/command/Reload.java | 4 +- .../tylermurphy/hideAndSeek/command/SaveMap.java | 4 +- .../tylermurphy/hideAndSeek/command/SetBorder.java | 3 +- .../tylermurphy/hideAndSeek/command/SetBounds.java | 3 +- .../net/tylermurphy/hideAndSeek/command/Setup.java | 4 +- .../net/tylermurphy/hideAndSeek/command/Start.java | 3 +- .../net/tylermurphy/hideAndSeek/command/Stop.java | 4 +- .../net/tylermurphy/hideAndSeek/command/Top.java | 4 +- .../net/tylermurphy/hideAndSeek/command/Wins.java | 3 +- .../command/location/SetExitLocation.java | 10 +- .../command/location/SetLobbyLocation.java | 10 +- .../command/location/SetSpawnLocation.java | 14 +-- .../command/location/util/LocationUtils.java | 4 +- .../command/location/util/Locations.java | 3 + .../net/tylermurphy/hideAndSeek/game/Board.java | 7 +- .../hideAndSeek/game/listener/InteractHandler.java | 21 +++- .../hideAndSeek/game/listener/MovementHandler.java | 1 - .../hideAndSeek/util/CommandHandler.java | 10 +- .../tylermurphy/hideAndSeek/world/WorldLoader.java | 3 + src/main/resources/plugin.yml | 6 +- 26 files changed, 186 insertions(+), 64 deletions(-) create mode 100644 src/main/java/net/tylermurphy/hideAndSeek/command/Debug.java (limited to 'src/main/resources/plugin.yml') diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/About.java b/src/main/java/net/tylermurphy/hideAndSeek/command/About.java index 046c2d8..f996519 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/About.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/About.java @@ -20,11 +20,11 @@ package net.tylermurphy.hideAndSeek.command; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class About implements ICommand { - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { sender.sendMessage( String.format("%s%sHide and Seek %s(%s1.4.3%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY,ChatColor.WHITE,ChatColor.GRAY) + String.format("%sAuthor: %s[KenshinEto]\n", ChatColor.GRAY, ChatColor.WHITE) + diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Debug.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Debug.java new file mode 100644 index 0000000..a051d8e --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Debug.java @@ -0,0 +1,111 @@ +package net.tylermurphy.hideAndSeek.command; + +import com.cryptomorin.xseries.XMaterial; +import net.tylermurphy.hideAndSeek.Main; +import net.tylermurphy.hideAndSeek.game.util.PlayerUtil; +import net.tylermurphy.hideAndSeek.game.util.Status; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.Consumer; + +import static net.tylermurphy.hideAndSeek.configuration.Config.*; +import static net.tylermurphy.hideAndSeek.configuration.Config.exitPosition; + +public class Debug implements ICommand { + + private static final Map> debugMenuFunctions = new HashMap<>(); + private Inventory debugMenu; + + public void execute(Player sender, String[] args) { + if(debugMenu == null) createMenu(); + sender.openInventory(debugMenu); + } + + private void createMenu(){ + debugMenu = Main.getInstance().getServer().createInventory(null, 9, "Debug Menu"); + debugMenu.setItem(0, createOption(0, XMaterial.LEATHER_CHESTPLATE.parseMaterial(), "&6Become a &lHider", 1, player -> { + if(mapSaveEnabled) { + if(Bukkit.getWorld(Main.getInstance().getGame().getGameWorld()) == null) Main.getInstance().getGame().getWorldLoader().loadMap(); + } + Main.getInstance().getBoard().addHider(player); + PlayerUtil.loadHider(player, Main.getInstance().getGame().getGameWorld()); + PlayerUtil.resetPlayer(player, Main.getInstance().getBoard()); + })); + debugMenu.setItem(1, createOption(1, XMaterial.GOLDEN_CHESTPLATE.parseMaterial(), "&cBecome a &lSeeker", 1, player -> { + if(mapSaveEnabled) { + if(Bukkit.getWorld(Main.getInstance().getGame().getGameWorld()) == null) Main.getInstance().getGame().getWorldLoader().loadMap(); + } + Main.getInstance().getBoard().addSeeker(player); + PlayerUtil.loadSeeker(player, Main.getInstance().getGame().getGameWorld()); + PlayerUtil.resetPlayer(player, Main.getInstance().getBoard()); + })); + debugMenu.setItem(2, createOption(2, XMaterial.IRON_CHESTPLATE.parseMaterial(), "&8Become a &lSpectator", 1, player -> { + if(mapSaveEnabled) { + if(Bukkit.getWorld(Main.getInstance().getGame().getGameWorld()) == null) Main.getInstance().getGame().getWorldLoader().loadMap(); + } + Main.getInstance().getBoard().addSpectator(player); + PlayerUtil.loadSpectator(player, Main.getInstance().getGame().getGameWorld()); + })); + debugMenu.setItem(3, createOption(3, XMaterial.BARRIER.parseMaterial(), "&cUnload from Game", 1, player -> { + Main.getInstance().getBoard().remove(player); + PlayerUtil.unloadPlayer(player); + player.teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ())); + })); + debugMenu.setItem(4, createOption(4, XMaterial.BARRIER.parseMaterial(), "&cDie In Game", 2, player -> { + if((Main.getInstance().getBoard().isSeeker(player) || Main.getInstance().getBoard().isHider(player)) && Main.getInstance().getGame().getStatus() == Status.PLAYING){ + player.setHealth(0.1); + } + })); + debugMenu.setItem(6, createOption(6, Material.ENDER_PEARL, "&d&lTeleport: &fGame spawn", 1, player -> { + if(mapSaveEnabled) { + if(Bukkit.getWorld(Main.getInstance().getGame().getGameWorld()) == null) Main.getInstance().getGame().getWorldLoader().loadMap(); + } + player.teleport(new Location(Bukkit.getWorld(Main.getInstance().getGame().getGameWorld()), spawnPosition.getX(), spawnPosition.getY(), spawnPosition.getZ())); + })); + debugMenu.setItem(7, createOption(7, Material.ENDER_PEARL, "&d&lTeleport: &fLobby", 2, player -> { + player.teleport(new Location(Bukkit.getWorld(lobbyWorld), lobbyPosition.getX(), lobbyPosition.getY(), lobbyPosition.getZ())); + })); + debugMenu.setItem(8, createOption(8, Material.ENDER_PEARL, "&d&lTeleport: &fExit", 3, player -> { + player.teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ())); + })); + } + + private ItemStack createOption(int slow, Material material, String name, int amount, Consumer callback){ + ItemStack temp = new ItemStack(material, amount); + ItemMeta meta = temp.getItemMeta(); + meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', name)); + temp.setItemMeta(meta); + debugMenuFunctions.put(slow, callback); + return temp; + } + + public static void handleOption(Player player, int slotId){ + Main.getInstance().getServer().getScheduler().scheduleSyncDelayedTask(Main.getInstance(), () -> { + Consumer callback = debugMenuFunctions.get(slotId); + if(callback != null) callback.accept(player); + }, 0); + } + + public String getLabel() { + return "debug"; + } + + public String getUsage() { + return ""; + } + + public String getDescription() { + return "Run debug commands"; + } + +} diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Help.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Help.java index 11b0b0a..97224d7 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Help.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Help.java @@ -21,11 +21,11 @@ package net.tylermurphy.hideAndSeek.command; import net.md_5.bungee.api.ChatColor; import net.tylermurphy.hideAndSeek.util.CommandHandler; -import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Help implements ICommand { - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { StringBuilder message = new StringBuilder(); for(ICommand command : CommandHandler.COMMAND_REGISTER.values()) { message.append(String.format("%s/hs %s%s %s%s\n %s%s%s", ChatColor.AQUA, ChatColor.WHITE, command.getLabel().toLowerCase(), ChatColor.BLUE, command.getUsage(), ChatColor.GRAY, ChatColor.ITALIC, command.getDescription() + "\n")); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/ICommand.java b/src/main/java/net/tylermurphy/hideAndSeek/command/ICommand.java index 6404c22..275d189 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/ICommand.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/ICommand.java @@ -19,11 +19,11 @@ package net.tylermurphy.hideAndSeek.command; -import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public interface ICommand { - void execute(CommandSender sender, String[] args); + void execute(Player sender, String[] args); String getLabel(); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java index eb8fd82..941cec0 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java @@ -21,7 +21,6 @@ package net.tylermurphy.hideAndSeek.command; import net.tylermurphy.hideAndSeek.Main; import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix; @@ -29,7 +28,7 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.message; public class Join implements ICommand { - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { if (Main.getInstance().getGame().isNotSetup()) { sender.sendMessage(errorPrefix + message("GAME_SETUP")); return; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Leave.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Leave.java index 0b895b4..092ff50 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Leave.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Leave.java @@ -21,7 +21,6 @@ package net.tylermurphy.hideAndSeek.command; import net.tylermurphy.hideAndSeek.Main; import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix; @@ -29,7 +28,7 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.message; public class Leave implements ICommand { - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { if (Main.getInstance().getGame().isNotSetup()) { sender.sendMessage(errorPrefix + message("GAME_SETUP")); return; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java index 0f959f2..56f4517 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java @@ -24,7 +24,7 @@ import net.tylermurphy.hideAndSeek.configuration.Config; import net.tylermurphy.hideAndSeek.configuration.Items; import net.tylermurphy.hideAndSeek.configuration.Localization; import net.tylermurphy.hideAndSeek.game.util.Status; -import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix; import static net.tylermurphy.hideAndSeek.configuration.Config.messagePrefix; @@ -32,7 +32,7 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.message; public class Reload implements ICommand { - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { if (Main.getInstance().getGame().getStatus() != Status.STANDBY) { sender.sendMessage(errorPrefix + message("GAME_INPROGRESS")); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java index e69c882..1e66395 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java @@ -23,7 +23,7 @@ import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.game.util.Status; import org.bukkit.Bukkit; import org.bukkit.World; -import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import static net.tylermurphy.hideAndSeek.configuration.Config.*; @@ -33,7 +33,7 @@ public class SaveMap implements ICommand { public static boolean runningBackup = false; - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { if (!mapSaveEnabled) { sender.sendMessage(errorPrefix + message("MAPSAVE_DISABLED")); return; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java index 3286c74..45e66b9 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java @@ -21,7 +21,6 @@ package net.tylermurphy.hideAndSeek.command; import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.game.util.Status; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.util.Vector; @@ -30,7 +29,7 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.message; public class SetBorder implements ICommand { - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { if (Main.getInstance().getGame().getStatus() != Status.STANDBY) { sender.sendMessage(errorPrefix + message("GAME_INPROGRESS")); return; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetBounds.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBounds.java index 7d2da96..90ecb28 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/SetBounds.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBounds.java @@ -21,7 +21,6 @@ package net.tylermurphy.hideAndSeek.command; import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.game.util.Status; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import static net.tylermurphy.hideAndSeek.configuration.Config.*; @@ -29,7 +28,7 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.message; public class SetBounds implements ICommand { - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { if (Main.getInstance().getGame().getStatus() != Status.STANDBY) { sender.sendMessage(errorPrefix + message("GAME_INPROGRESS")); return; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java index 0bedcb5..7b29f79 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java @@ -20,7 +20,7 @@ package net.tylermurphy.hideAndSeek.command; import net.tylermurphy.hideAndSeek.Main; -import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import java.io.File; @@ -29,7 +29,7 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.message; public class Setup implements ICommand { - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { String msg = message("SETUP").toString(); int count = 0; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java index b1e5895..18bcbba 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java @@ -22,7 +22,6 @@ package net.tylermurphy.hideAndSeek.command; import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.game.util.Status; import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.Optional; @@ -34,7 +33,7 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.message; public class Start implements ICommand { - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { if (Main.getInstance().getGame().isNotSetup()) { sender.sendMessage(errorPrefix + message("GAME_SETUP")); return; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java index b5f0c17..9280b53 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java @@ -21,7 +21,7 @@ package net.tylermurphy.hideAndSeek.command; import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.game.util.Status; -import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import static net.tylermurphy.hideAndSeek.configuration.Config.abortPrefix; import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix; @@ -29,7 +29,7 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.message; public class Stop implements ICommand { - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { if (Main.getInstance().getGame().isNotSetup()) { sender.sendMessage(errorPrefix + "Game is not setup. Run /hs setup to see what you needed to do"); return; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Top.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Top.java index 4f2c628..e0aa2fb 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Top.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Top.java @@ -22,7 +22,7 @@ package net.tylermurphy.hideAndSeek.command; import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.database.PlayerInfo; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import java.util.List; @@ -31,7 +31,7 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.message; public class Top implements ICommand { - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { int page; if (args.length == 0) page = 1; else try{ diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Wins.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Wins.java index e12e094..bb69cd4 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Wins.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Wins.java @@ -22,7 +22,6 @@ package net.tylermurphy.hideAndSeek.command; import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.database.PlayerInfo; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.UUID; @@ -32,7 +31,7 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.message; public class Wins implements ICommand { - public void execute(CommandSender sender, String[] args) { + public void execute(Player sender, String[] args) { Main.getInstance().getServer().getScheduler().runTaskAsynchronously(Main.getInstance(), () -> { UUID uuid; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetExitLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetExitLocation.java index abe6f69..93c0d8c 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetExitLocation.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetExitLocation.java @@ -22,18 +22,14 @@ package net.tylermurphy.hideAndSeek.command.location; import net.tylermurphy.hideAndSeek.command.ICommand; import net.tylermurphy.hideAndSeek.command.location.util.LocationUtils; import net.tylermurphy.hideAndSeek.command.location.util.Locations; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import static net.tylermurphy.hideAndSeek.configuration.Config.*; public class SetExitLocation implements ICommand { - public void execute(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) return; - Player player = (Player) sender; - - LocationUtils.setLocation(player, Locations.EXIT, vector -> { - exitWorld = player.getLocation().getWorld().getName(); + public void execute(Player sender, String[] args) { + LocationUtils.setLocation(sender, Locations.EXIT, vector -> { + exitWorld = sender.getLocation().getWorld().getName(); exitPosition = vector; }); } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetLobbyLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetLobbyLocation.java index fab7076..eb228f9 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetLobbyLocation.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetLobbyLocation.java @@ -22,19 +22,15 @@ package net.tylermurphy.hideAndSeek.command.location; import net.tylermurphy.hideAndSeek.command.ICommand; import net.tylermurphy.hideAndSeek.command.location.util.LocationUtils; import net.tylermurphy.hideAndSeek.command.location.util.Locations; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import static net.tylermurphy.hideAndSeek.configuration.Config.*; public class SetLobbyLocation implements ICommand { - public void execute(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) return; - Player player = (Player) sender; - - LocationUtils.setLocation(player, Locations.LOBBY, vector -> { - lobbyWorld = player.getLocation().getWorld().getName(); + public void execute(Player sender, String[] args) { + LocationUtils.setLocation(sender, Locations.LOBBY, vector -> { + lobbyWorld = sender.getLocation().getWorld().getName(); lobbyPosition = vector; }); } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetSpawnLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetSpawnLocation.java index 1f454d6..5ecfb8d 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetSpawnLocation.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetSpawnLocation.java @@ -23,7 +23,6 @@ import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.command.ICommand; import net.tylermurphy.hideAndSeek.command.location.util.LocationUtils; import net.tylermurphy.hideAndSeek.command.location.util.Locations; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import static net.tylermurphy.hideAndSeek.configuration.Config.*; @@ -31,22 +30,19 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.message; public class SetSpawnLocation implements ICommand { - public void execute(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) return; - Player player = (Player) sender; - - LocationUtils.setLocation(player, Locations.GAME, vector -> { + public void execute(Player sender, String[] args) { + LocationUtils.setLocation(sender, Locations.GAME, vector -> { if (worldBorderEnabled && vector.distance(worldBorderPosition) > 100) { sender.sendMessage(errorPrefix + message("WORLDBORDER_POSITION")); throw new RuntimeException("World border not enabled or not in valid position!"); } - if (!player.getLocation().getWorld().getName().equals(spawnWorld)) { + if (!sender.getLocation().getWorld().getName().equals(spawnWorld)) { Main.getInstance().getGame().getWorldLoader().unloadMap(); - Main.getInstance().getGame().getWorldLoader().setNewMap(player.getLocation().getWorld().getName()); + Main.getInstance().getGame().getWorldLoader().setNewMap(sender.getLocation().getWorld().getName()); } - spawnWorld = player.getLocation().getWorld().getName(); + spawnWorld = sender.getLocation().getWorld().getName(); spawnPosition = vector; }); } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/location/util/LocationUtils.java b/src/main/java/net/tylermurphy/hideAndSeek/command/location/util/LocationUtils.java index e0fc033..50d1776 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/location/util/LocationUtils.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/location/util/LocationUtils.java @@ -1,7 +1,6 @@ package net.tylermurphy.hideAndSeek.command.location.util; import net.tylermurphy.hideAndSeek.Main; -import net.tylermurphy.hideAndSeek.game.Game; import net.tylermurphy.hideAndSeek.game.util.Status; import org.bukkit.Location; import org.bukkit.World; @@ -14,6 +13,9 @@ import java.util.function.Consumer; import static net.tylermurphy.hideAndSeek.configuration.Config.*; import static net.tylermurphy.hideAndSeek.configuration.Localization.message; +/** + * @author bobby29831 + */ public class LocationUtils { /** diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/location/util/Locations.java b/src/main/java/net/tylermurphy/hideAndSeek/command/location/util/Locations.java index bde5456..59e1517 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/location/util/Locations.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/location/util/Locations.java @@ -1,5 +1,8 @@ package net.tylermurphy.hideAndSeek.command.location.util; +/** + * @author bobby29831 + */ public enum Locations { GAME("spawns.game", "GAME_SPAWN"), diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java index 876cb42..f13942f 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java @@ -27,7 +27,6 @@ import net.tylermurphy.hideAndSeek.game.util.Status; import net.tylermurphy.hideAndSeek.game.util.Version; import org.bukkit.Bukkit; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.scoreboard.*; @@ -48,10 +47,6 @@ public class Board { return playerList.containsKey(player.getUniqueId().toString()); } - public boolean contains(CommandSender sender) { - return contains((Player) sender); - } - public boolean isHider(Player player) { return Hider.contains(player.getUniqueId().toString()); } @@ -203,7 +198,7 @@ public class Board { private void createLobbyBoard(Player player, boolean recreate) { CustomBoard board = customBoards.get(player.getUniqueId().toString()); - if (recreate) { + if (recreate || board == null) { board = new CustomBoard(player, LOBBY_TITLE); board.updateTeams(); } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/InteractHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/InteractHandler.java index 7fe924f..4e30a50 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/InteractHandler.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/InteractHandler.java @@ -3,8 +3,13 @@ package net.tylermurphy.hideAndSeek.game.listener; import com.cryptomorin.xseries.XMaterial; import com.cryptomorin.xseries.messages.ActionBar; import net.tylermurphy.hideAndSeek.Main; +import net.tylermurphy.hideAndSeek.command.Debug; +import net.tylermurphy.hideAndSeek.game.util.PlayerUtil; import net.tylermurphy.hideAndSeek.game.util.Status; +import net.tylermurphy.hideAndSeek.game.util.Version; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -110,7 +115,7 @@ public class InteractHandler implements Listener { private ItemStack getSkull(Player player, List lore){ assert XMaterial.PLAYER_HEAD.parseMaterial() != null; - ItemStack playerhead = new ItemStack(XMaterial.PLAYER_HEAD.parseMaterial(), 1); + ItemStack playerhead = new ItemStack(XMaterial.PLAYER_HEAD.parseMaterial(), 1, (byte) 3); SkullMeta playerheadmeta = (SkullMeta) playerhead.getItemMeta(); playerheadmeta.setOwner(player.getName()); playerheadmeta.setDisplayName(player.getName()); @@ -123,9 +128,11 @@ public class InteractHandler implements Listener { public void onInventoryClick(InventoryClickEvent event) { if (event.getWhoClicked() instanceof Player) { Player player = (Player) event.getWhoClicked(); + // Block players from moving lobby items if (Main.getInstance().getBoard().contains(player) && Main.getInstance().getGame().getStatus() == Status.STANDBY) { event.setCancelled(true); } + // Spectator Teleport Menu if (Main.getInstance().getBoard().isSpectator(player) && event.getCurrentItem().getType() == XMaterial.PLAYER_HEAD.parseMaterial()) { event.setCancelled(true); player.closeInventory(); @@ -134,6 +141,18 @@ public class InteractHandler implements Listener { if(clicked == null) return; player.teleport(clicked); } + // Debug Menu + boolean debug = false; + if(Version.atLeast("1.14")){ + debug = event.getView().getTitle().equals("Debug Menu") && player.hasPermission("hideandseek.debug"); + } else { + debug = event.getInventory().getName().equals("Debug Menu") && player.hasPermission("hideandseek.debug"); + } + if (debug){ + event.setCancelled(true); + player.closeInventory(); + Debug.handleOption(player, event.getRawSlot()); + } } } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/MovementHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/MovementHandler.java index aafc529..aba8275 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/MovementHandler.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/MovementHandler.java @@ -22,7 +22,6 @@ public class MovementHandler implements Listener { @EventHandler(priority = EventPriority.HIGHEST) public void onMove(PlayerMoveEvent event) { if (event.getTo() == null || event.getTo().getWorld() == null) return; - checkJumping(event); checkBounds(event); } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java index 6034607..1f0c8a3 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java @@ -62,16 +62,20 @@ public class CommandHandler { registerCommand(new Leave()); registerCommand(new Top()); registerCommand(new Wins()); + registerCommand(new Debug()); } public static boolean handleCommand(CommandSender sender, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(errorPrefix + message("COMMAND_PLAYER_ONLY")); - } else if (args.length < 1 || !COMMAND_REGISTER.containsKey(args[0].toLowerCase()) ) { + return true; + } + Player player = (Player) sender; + if (args.length < 1 || !COMMAND_REGISTER.containsKey(args[0].toLowerCase()) ) { if (permissionsRequired && !sender.hasPermission("hideandseek.about")) { sender.sendMessage(errorPrefix + LOCAL.get("")); } else { - COMMAND_REGISTER.get("about").execute(sender, null); + COMMAND_REGISTER.get("about").execute(player, null); } } else { if (!args[0].equalsIgnoreCase("about") && !args[0].equalsIgnoreCase("help") && SaveMap.runningBackup) { @@ -80,7 +84,7 @@ public class CommandHandler { sender.sendMessage(errorPrefix + message("COMMAND_NOT_ALLOWED")); } else { try { - COMMAND_REGISTER.get(args[0].toLowerCase()).execute(sender,Arrays.copyOfRange(args, 1, args.length)); + COMMAND_REGISTER.get(args[0].toLowerCase()).execute(player,Arrays.copyOfRange(args, 1, args.length)); } catch (Exception e) { sender.sendMessage(errorPrefix + "An error has occurred."); e.printStackTrace(); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java b/src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java index 193c34e..21b6a76 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java @@ -95,6 +95,9 @@ public class WorldLoader { throw new RuntimeException("Failed to create directory: "+destenation.getPath()); } } + if(!destenation.delete()){ + throw new RuntimeException("Unable to delete folder: "+destenation.getPath()); + } if (!temp_destenation.renameTo(destenation)) { throw new RuntimeException("Failed to rename directory: "+temp_destenation.getPath()); } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index b9ad408..74c4855 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -31,7 +31,8 @@ permissions: hideandseek.leave: true hideandseek.leavebounds: true hideandseek.wins: true - hideand.top: true + hideandseek.top: true + hideandseek.debug: true hideandseek.about: description: Allows you to run the about command default: true @@ -83,3 +84,6 @@ permissions: hideandseek.top: description: Allows players to see the global wins leaderboard default: true + hideandseek.debug: + description: Opens the debug menu + default: op -- cgit v1.2.3-freya From e79c4ad1c5dbbc3717fbb7ab1c5fcb7e2d538409 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Wed, 18 May 2022 21:45:38 -0400 Subject: 1.5.0 Release Canidate 2 (Previously 1.4.3) --- pom.xml | 4 +- .../java/net/tylermurphy/hideAndSeek/Main.java | 43 +++++++++++++++------- .../net/tylermurphy/hideAndSeek/command/About.java | 2 +- .../hideAndSeek/configuration/ConfigManager.java | 21 +++++++++-- .../net/tylermurphy/hideAndSeek/game/Board.java | 8 ++-- .../net/tylermurphy/hideAndSeek/game/Game.java | 2 +- .../hideAndSeek/game/listener/DamageHandler.java | 4 +- .../tylermurphy/hideAndSeek/world/WorldLoader.java | 2 + src/main/resources/plugin.yml | 4 +- 9 files changed, 60 insertions(+), 30 deletions(-) (limited to 'src/main/resources/plugin.yml') diff --git a/pom.xml b/pom.xml index 42cd0f7..7e1be5a 100644 --- a/pom.xml +++ b/pom.xml @@ -1,7 +1,7 @@ 4.0.0 net.tylermurphy - HideAndSeek - 1.4.3 + KenshinsHideAndSeek + 1.5.0 Hide and Seek Plugin UTF-8 diff --git a/src/main/java/net/tylermurphy/hideAndSeek/Main.java b/src/main/java/net/tylermurphy/hideAndSeek/Main.java index 7bd86cb..1248551 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/Main.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/Main.java @@ -24,6 +24,7 @@ import net.tylermurphy.hideAndSeek.configuration.Items; import net.tylermurphy.hideAndSeek.configuration.Localization; import net.tylermurphy.hideAndSeek.database.Database; import net.tylermurphy.hideAndSeek.game.Board; +import net.tylermurphy.hideAndSeek.game.PlayerLoader; import net.tylermurphy.hideAndSeek.game.util.Status; import net.tylermurphy.hideAndSeek.util.CommandHandler; import net.tylermurphy.hideAndSeek.game.Game; @@ -31,6 +32,7 @@ import net.tylermurphy.hideAndSeek.game.listener.*; import net.tylermurphy.hideAndSeek.util.PAPIExpansion; import net.tylermurphy.hideAndSeek.util.TabCompleter; import org.bukkit.Bukkit; +import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.event.Listener; @@ -44,6 +46,9 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import static net.tylermurphy.hideAndSeek.configuration.Config.exitPosition; +import static net.tylermurphy.hideAndSeek.configuration.Config.exitWorld; + public class Main extends JavaPlugin implements Listener { private static Main instance; @@ -56,11 +61,7 @@ public class Main extends JavaPlugin implements Listener { public Main() { super(); - instance = this; - - Config.loadConfig(); - Localization.loadLocalization(); - Items.loadItems(); + onConstructed(); board = new Board(); database = new Database(); @@ -68,15 +69,27 @@ public class Main extends JavaPlugin implements Listener { protected Main(JavaPluginLoader loader, PluginDescriptionFile description, File dataFolder, File file) { super(loader, description, dataFolder, file); + onConstructed(); + + board = new Board(); + database = new Database(); + } + + private void onConstructed(){ instance = this; + Matcher matcher = Pattern.compile("MC: \\d\\.(\\d+)").matcher(Bukkit.getVersion()); + if (matcher.find()) { + version = Integer.parseInt(matcher.group(1)); + } else { + throw new IllegalArgumentException("Failed to parse server version from: " + Bukkit.getVersion()); + } + Config.loadConfig(); Localization.loadLocalization(); Items.loadItems(); - board = new Board(); - database = new Database(); } public void onEnable() { @@ -94,16 +107,18 @@ public class Main extends JavaPlugin implements Listener { if (getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) { new PAPIExpansion().register(); } - - Matcher matcher = Pattern.compile("MC: \\d\\.(\\d+)").matcher(Bukkit.getVersion()); - if (matcher.find()) { - version = Integer.parseInt(matcher.group(1)); - } else { - throw new IllegalArgumentException("Failed to parse server version from: " + Bukkit.getVersion()); - } } public void onDisable() { + + version = 0; + + board.getPlayers().forEach(player -> { + board.removeBoard(player); + PlayerLoader.unloadPlayer(player); + player.teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ())); + }); + Bukkit.getServer().getMessenger().unregisterOutgoingPluginChannel(this); board.cleanup(); } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/About.java b/src/main/java/net/tylermurphy/hideAndSeek/command/About.java index f996519..bda6016 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/About.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/About.java @@ -26,7 +26,7 @@ public class About implements ICommand { public void execute(Player sender, String[] args) { sender.sendMessage( - String.format("%s%sHide and Seek %s(%s1.4.3%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY,ChatColor.WHITE,ChatColor.GRAY) + + String.format("%s%sHide and Seek %s(%s1.5.0%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY,ChatColor.WHITE,ChatColor.GRAY) + String.format("%sAuthor: %s[KenshinEto]\n", ChatColor.GRAY, ChatColor.WHITE) + String.format("%sHelp Command: %s/hs %shelp", ChatColor.GRAY, ChatColor.AQUA, ChatColor.WHITE) ); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java index 381a41c..5e28258 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java @@ -46,12 +46,25 @@ public class ConfigManager { private ConfigManager(String filename, String defaultFilename) { + File dataFolder = Main.getInstance().getDataFolder(); + File oldDataFolder = new File(Main.getInstance().getDataFolder().getParent() + File.separator + "HideAndSeek"); + this.defaultFilename = defaultFilename; - this.file = new File(Main.getInstance().getDataFolder(), filename); + this.file = new File(dataFolder, filename); + + if(oldDataFolder.exists()){ + if(!dataFolder.exists()){ + if(!oldDataFolder.renameTo(dataFolder)){ + throw new RuntimeException("Could not rename folder: " + oldDataFolder.getPath()); + } + } else { + throw new RuntimeException("Plugin folders for HideAndSeek & KenshinsHideAndSeek both exists. There can only be one!"); + } + + } - File folder = Main.getInstance().getDataFolder(); - if (!folder.exists()) { - if (!folder.mkdirs()) { + if (!dataFolder.exists()) { + if (!dataFolder.mkdirs()) { throw new RuntimeException("Failed to make directory: " + file.getPath()); } } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java index a8e41c7..bb1984e 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java @@ -79,11 +79,11 @@ public class Board { } public List getHiders() { - return Hider.stream().map(playerList::get).collect(Collectors.toList()); + return Hider.stream().filter(Objects::nonNull).map(playerList::get).collect(Collectors.toList()); } public List getSeekers() { - return Seeker.stream().map(playerList::get).collect(Collectors.toList()); + return Seeker.stream().filter(Objects::nonNull).map(playerList::get).collect(Collectors.toList()); } public Player getFirstSeeker() { @@ -91,11 +91,11 @@ public class Board { } public List getSpectators() { - return Spectator.stream().map(playerList::get).collect(Collectors.toList()); + return Spectator.stream().filter(Objects::nonNull).map(playerList::get).collect(Collectors.toList()); } public List getPlayers() { - return new ArrayList<>(playerList.values()); + return playerList.values().stream().filter(Objects::nonNull).collect(Collectors.toList()); } public Player getPlayer(UUID uuid) { diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java index cb3ad1f..34f3a46 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java @@ -121,11 +121,11 @@ public class Game { board.addSeeker(seeker); PlayerLoader.loadSeeker(seeker, getGameWorld()); board.getPlayers().forEach(player -> { - board.createGameBoard(player); if(board.isSeeker(player)) return; board.addHider(player); PlayerLoader.loadHider(player, getGameWorld()); }); + board.getPlayers().forEach(board::createGameBoard); worldBorder.resetWorldBorder(getGameWorld()); if (gameLength > 0) gameTimer = gameLength; status = Status.STARTING; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/DamageHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/DamageHandler.java index 3b90d39..086a48a 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/DamageHandler.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/DamageHandler.java @@ -69,9 +69,9 @@ public class DamageHandler implements Listener { // Spectators cannot take damage if (board.isSpectator(player)) { event.setCancelled(true); - if (Main.getInstance().supports(18) && player.getLocation().getY() < -64) { + if (Main.getInstance().supports(18) && player.getLocation().getBlockY() < -64) { player.teleport(new Location(Bukkit.getWorld(game.getGameWorld()), spawnPosition.getX(), spawnPosition.getY(), spawnPosition.getZ())); - } else if (player.getLocation().getY() < 0) { + } else if (!Main.getInstance().supports(18) && player.getLocation().getY() < 0) { player.teleport(new Location(Bukkit.getWorld(game.getGameWorld()), spawnPosition.getX(), spawnPosition.getY(), spawnPosition.getZ())); } return; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java b/src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java index ebfedcd..1d4ff71 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java @@ -21,6 +21,7 @@ package net.tylermurphy.hideAndSeek.world; import net.tylermurphy.hideAndSeek.Main; import org.bukkit.Bukkit; +import org.bukkit.Location; import org.bukkit.World; import org.bukkit.WorldCreator; @@ -55,6 +56,7 @@ public class WorldLoader { Main.getInstance().getLogger().warning(saveName + " already unloaded."); return; } + world.getPlayers().forEach(player -> player.teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ()))); if (Bukkit.getServer().unloadWorld(world, false)) { Main.getInstance().getLogger().info("Successfully unloaded " + saveName); }else{ diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 74c4855..c4224dc 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ -name: HideAndSeek +name: KenshinsHideAndSeek main: net.tylermurphy.hideAndSeek.Main -version: 1.4.3 +version: 1.5.0 author: KenshinEto load: STARTUP api-version: 1.13 -- cgit v1.2.3-freya