From 237cae37ca3838a8483a1787f7fb5b6e0a6192bb Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Tue, 11 Feb 2025 22:12:31 +0100 Subject: [PATCH] Refactor flag capture and turn-in notifications. Extracted and separated notification logic for flag capture and turn-in events into distinct methods to improve clarity and maintainability. Updated messaging to better align with game events and streamlined title displays for players. --- src/main/java/com/alttd/ctf/flag/Flag.java | 36 +++++++++++++--------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/alttd/ctf/flag/Flag.java b/src/main/java/com/alttd/ctf/flag/Flag.java index 8e131dd..b7e1783 100644 --- a/src/main/java/com/alttd/ctf/flag/Flag.java +++ b/src/main/java/com/alttd/ctf/flag/Flag.java @@ -81,10 +81,7 @@ public class Flag implements Runnable { //TODO add de-buffs and enable buffs for others? player.getInventory().setItem(EquipmentSlot.HEAD, flagItem); Bukkit.getScheduler().runTask(main, () -> flagLocation.getBlock().setType(Material.AIR)); - Bukkit.broadcast(MiniMessage.miniMessage().deserialize(" from captured the flag!", TagResolver.resolver( - Placeholder.component("player", player.displayName()), - Placeholder.component("team", teamPlayer.getTeam().getName()) - ))); + notifyAboutCapture(); flagCarrier = player; resetFlag(); } @@ -148,6 +145,23 @@ public class Flag implements Runnable { } } + private void notifyAboutCapture() { + Bukkit.broadcast(miniMessage.deserialize(" is carrying the flag for !", + Placeholder.component("player", flagCarrier.displayName()), + Placeholder.component("team", winningTeam.getName()))); + Title capturingTeamTitle = Title.title(miniMessage.deserialize(" obtained the flag!", + Placeholder.component("team", winningTeam.getName())), + miniMessage.deserialize("protect while they bring it to your base.", + Placeholder.component("player", flagCarrier.displayName()))); + Title huntingTeamTitle = Title.title(miniMessage.deserialize(" obtained the flag!", + Placeholder.component("team", winningTeam.getName())), + miniMessage.deserialize("kill before they bring it to their base.", + Placeholder.component("player", flagCarrier.displayName()))); + Bukkit.getOnlinePlayers().forEach(player -> + gameManager.getTeam(player.getUniqueId()).ifPresent(team -> + player.showTitle(team.getId() == winningTeam.getId() ? capturingTeamTitle : huntingTeamTitle))); + } + private void spawnParticlesOnSquareBorder(Location center, double size) { double step = 0.2; World world = center.getWorld(); @@ -191,7 +205,7 @@ public class Flag implements Runnable { spawnParticlesOnSquareBorder(winningTeam.getFlagTurnInLocation(), GameConfig.FLAG.TURN_IN_RADIUS); return; } - notifyAboutCapture(); + notifyAboutTurnIn(); spawnFlag(); wins.merge(winningTeam.getId(), 1, Integer::sum); winningTeam = null; @@ -206,21 +220,15 @@ public class Flag implements Runnable { resetFlagCarrier(); } - private void notifyAboutCapture() { + private void notifyAboutTurnIn() { Bukkit.broadcast(miniMessage.deserialize(" captured the flag for !", Placeholder.component("player", flagCarrier.displayName()), Placeholder.component("team", winningTeam.getName()))); - Title capturingTeamTitle = Title.title(miniMessage.deserialize(" captured the flag!", + Title title = Title.title(miniMessage.deserialize(" captured the flag for team !", Placeholder.component("team", winningTeam.getName())), miniMessage.deserialize("protect while they bring it to your base.", Placeholder.component("player", flagCarrier.displayName()))); - Title huntingTeamTitle = Title.title(miniMessage.deserialize(" captured the flag!", - Placeholder.component("team", winningTeam.getName())), - miniMessage.deserialize("kill before they bring it to their base.", - Placeholder.component("player", flagCarrier.displayName()))); - Bukkit.getOnlinePlayers().forEach(player -> - gameManager.getTeam(player.getUniqueId()).ifPresent(team -> - player.showTitle(team.getId() == winningTeam.getId() ? capturingTeamTitle : huntingTeamTitle))); + Bukkit.getOnlinePlayers().forEach(player -> player.showTitle(title)); } private Optional winnerExists() {