diff options
author | Tyler Murphy <tylerm@tylerm.dev> | 2023-07-29 15:54:12 -0400 |
---|---|---|
committer | Tyler Murphy <tylerm@tylerm.dev> | 2023-07-29 15:54:12 -0400 |
commit | b01a4fd3c01a0486f0257c46e9f8bde5acc9660a (patch) | |
tree | ff0cd63a0a04792fc6b0fa04b675c881bd79c495 /src/main/java/net/tylermurphy/hideAndSeek | |
parent | 1.7.5 rc2 (diff) | |
download | kenshinshideandseek-b01a4fd3c01a0486f0257c46e9f8bde5acc9660a.tar.gz kenshinshideandseek-b01a4fd3c01a0486f0257c46e9f8bde5acc9660a.tar.bz2 kenshinshideandseek-b01a4fd3c01a0486f0257c46e9f8bde5acc9660a.zip |
1.7.5 rc3
Diffstat (limited to '')
6 files changed, 48 insertions, 18 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java index 67fc4bf..8a71903 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java @@ -67,6 +67,7 @@ public class Config { dropItems, respawnAsSpectator, waitTillNoneLeft, + gameOverTitle, regenHealth; public static int @@ -86,7 +87,8 @@ public class Config { flightToggleItemPosition, teleportItemPosition, startingSeekerCount, - delayedRespawnDelay; + delayedRespawnDelay, + endGameDelay; public static float seekerPingLeadingVolume, @@ -196,6 +198,8 @@ public class Config { saveInventory = config.getBoolean("saveInventory"); respawnAsSpectator = config.getBoolean("respawnAsSpectator"); dontRewardQuit = config.getBoolean("dontRewardQuit"); + endGameDelay = Math.max(0,config.getInt("endGameDelay")); + gameOverTitle = config.getBoolean("gameOverTitle"); try { countdownDisplay = CountdownDisplay.valueOf(config.getString("hideCountdownDisplay")); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java index b9f9b69..babf759 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java @@ -15,12 +15,14 @@ public class Localization { put("en-US", new String[][]{ {"WORLDBORDER_DECREASING"}, {"START","TAUNTED"}, - {"GAME_SETUP", "SETUP_GAME", "SETUP_LOBBY", "SETUP_SEEKER_LOBBY", "SETUP_EXIT", "SETUP_SAVEMAP", "SETUP_BOUNDS"} + {"GAME_SETUP", "SETUP_GAME", "SETUP_LOBBY", "SETUP_SEEKER_LOBBY", "SETUP_EXIT", "SETUP_SAVEMAP", "SETUP_BOUNDS"}, + {"GAME_PLAYER_FOUND", "GAME_PLAYER_FOUND_BY"} }); put("de-DE", new String[][]{ {}, {"TAUNTED"}, - {"GAME_SETUP", "SETUP_GAME", "SETUP_LOBBY", "SETUP_SEEKER_LOBBY", "SETUP_EXIT", "SETUP_SAVEMAP", "SETUP_BOUNDS"} + {"GAME_SETUP", "SETUP_GAME", "SETUP_LOBBY", "SETUP_SEEKER_LOBBY", "SETUP_EXIT", "SETUP_SAVEMAP", "SETUP_BOUNDS"}, + {"GAME_PLAYER_FOUND", "GAME_PLAYER_FOUND_BY"} }); }}; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java index 4c56453..4f6be2f 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java @@ -34,6 +34,10 @@ public class Board { return Players.containsKey(player.getUniqueId()); } + public boolean containsUUID(UUID uuid) { + return Players.containsKey(uuid); + } + public boolean isHider(Player player) { return isHider(player.getUniqueId()); } @@ -418,13 +422,8 @@ class CustomBoard { seekerTeam.setNameTagVisibility(NameTagVisibility.NEVER); } } - if (Main.getInstance().supports(12)) { - hiderTeam.setColor(ChatColor.GOLD); - seekerTeam.setColor(ChatColor.RED); - } else { - hiderTeam.setPrefix(ChatColor.translateAlternateColorCodes('&', "&6")); - seekerTeam.setPrefix(ChatColor.translateAlternateColorCodes('&', "&c")); - } + hiderTeam.setPrefix(message("HIDER_TEAM_NAME").toString() + " " + ChatColor.RESET); + seekerTeam.setPrefix(message("SEEKER_TEAM_NAME").toString() + " " + ChatColor.RESET); } public void setLine(String key, String message) { diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java index 5213c87..36e48b0 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java @@ -151,7 +151,7 @@ public class Game { } Main.getInstance().getDatabase().getGameData().addWins(board, players, winners, board.getHiderKills(), board.getHiderDeaths(), board.getSeekerKills(), board.getSeekerDeaths(), type); } - Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), this::end, 5*20); + Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), this::end, endGameDelay*20); } public void end() { @@ -347,6 +347,12 @@ public class Game { } } + public void broadcastTitle(String title, String subtitle) { + for (Player player : board.getPlayers()) { + Titles.sendTitle(player, 10, 70, 20, title, subtitle); + } + } + public boolean isCurrentMapValid() { return currentMap != null && !currentMap.isNotSetup(); } @@ -371,19 +377,30 @@ public class Game { if (hiderLeft && dontRewardQuit) { if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT")); else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT")); + if (gameOverTitle) broadcastTitle(message("GAME_TITLE_NO_WIN").toString(), message("GAME_GAMEOVER_HIDERS_QUIT").toString()); stop(WinType.NONE); } else { - if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND")); - else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND")); + if (hiderCount < 1 || waitTillNoneLeft) { + if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND")); + else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND")); + if (gameOverTitle) broadcastTitle(message("GAME_TITLE_SEEKERS_WIN").toString(), message("GAME_GAMEOVER_HIDERS_FOUND").toString()); + } else { + Player hider = board.getHiders().get(0); + if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_LAST_HIDER").addPlayer(hider)); + else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_LAST_HIDER").addPlayer(hider)); + if (gameOverTitle) broadcastTitle(message("GAME_TITLE_SINGLE_HIDER_WIN").addPlayer(hider).toString(), message("GAME_SUBTITLE_SINGLE_HIDER_WIN").addPlayer(hider).toString()); + } stop(WinType.SEEKER_WIN); } } else if (board.sizeSeeker() < 1) { if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(abortPrefix + message("GAME_GAMEOVER_SEEKERS_QUIT")); else broadcastMessage(abortPrefix + message("GAME_GAMEOVER_SEEKERS_QUIT")); + if (gameOverTitle) broadcastTitle(message("GAME_TITLE_NO_WIN").toString(), message("GAME_GAMEOVER_SEEKERS_QUIT").toString()); stop(dontRewardQuit ? WinType.NONE : WinType.HIDER_WIN); } else if (gameTimer < 1) { if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_TIME")); else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_TIME")); + if (gameOverTitle) broadcastTitle(message("GAME_TITLE_HIDERS_WIN").toString(), message("GAME_GAMEOVER_TIME").toString()); stop(WinType.HIDER_WIN); } hiderLeft = false; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/ChatHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/ChatHandler.java index 27347c2..d83b702 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/ChatHandler.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/ChatHandler.java @@ -9,7 +9,7 @@ import org.bukkit.event.player.AsyncPlayerChatEvent; public class ChatHandler implements Listener { - @EventHandler(priority = EventPriority.HIGHEST) + @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) public void onChat(AsyncPlayerChatEvent event) { if (Main.getInstance().getBoard().isSpectator(event.getPlayer())) { event.setCancelled(true); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/PAPIExpansion.java b/src/main/java/net/tylermurphy/hideAndSeek/util/PAPIExpansion.java index 3a58940..2d80b88 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/util/PAPIExpansion.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/util/PAPIExpansion.java @@ -4,6 +4,7 @@ import me.clip.placeholderapi.expansion.PlaceholderExpansion; import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.database.Database; import net.tylermurphy.hideAndSeek.database.util.PlayerInfo; +import net.tylermurphy.hideAndSeek.game.Board; import net.tylermurphy.hideAndSeek.game.util.Status; import org.bukkit.OfflinePlayer; @@ -44,19 +45,26 @@ public class PAPIExpansion extends PlaceholderExpansion { Database database = Main.getInstance().getDatabase(); String[] args = params.split("_"); Status status = Main.getInstance().getGame().getStatus(); + Board board = Main.getInstance().getBoard(); + + System.out.println(args); if (args.length < 1) return null; - if (args.length == 1 && args[0] == "hiders") { - if (status == Status.PLAYING || status == Status.STARTING) { + if (args.length == 1 && args[0].equals("hiders")) { + if (!board.containsUUID(player.getUniqueId())) { + return "-"; + } else if (status == Status.PLAYING || status == Status.STARTING) { return "" + Main.getInstance().getBoard().getHiders().size(); } else { return "-"; } } - if (args.length == 1 && args[0] == "seekers") { - if (status == Status.PLAYING || status == Status.STARTING) { + if (args.length == 1 && args[0].equals("seekers")) { + if (!board.containsUUID(player.getUniqueId())) { + return "-"; + } else if (status == Status.PLAYING || status == Status.STARTING) { return "" + Main.getInstance().getBoard().getSeekers().size(); } else { return "-"; |