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.
This commit is contained in:
parent
a3c22cf074
commit
237cae37ca
|
|
@ -81,10 +81,7 @@ public class Flag implements Runnable {
|
||||||
//TODO add de-buffs and enable buffs for others?
|
//TODO add de-buffs and enable buffs for others?
|
||||||
player.getInventory().setItem(EquipmentSlot.HEAD, flagItem);
|
player.getInventory().setItem(EquipmentSlot.HEAD, flagItem);
|
||||||
Bukkit.getScheduler().runTask(main, () -> flagLocation.getBlock().setType(Material.AIR));
|
Bukkit.getScheduler().runTask(main, () -> flagLocation.getBlock().setType(Material.AIR));
|
||||||
Bukkit.broadcast(MiniMessage.miniMessage().deserialize("<green><player> from <team> captured the flag!", TagResolver.resolver(
|
notifyAboutCapture();
|
||||||
Placeholder.component("player", player.displayName()),
|
|
||||||
Placeholder.component("team", teamPlayer.getTeam().getName())
|
|
||||||
)));
|
|
||||||
flagCarrier = player;
|
flagCarrier = player;
|
||||||
resetFlag();
|
resetFlag();
|
||||||
}
|
}
|
||||||
|
|
@ -148,6 +145,23 @@ public class Flag implements Runnable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void notifyAboutCapture() {
|
||||||
|
Bukkit.broadcast(miniMessage.deserialize("<player> is carrying the flag for <team>!",
|
||||||
|
Placeholder.component("player", flagCarrier.displayName()),
|
||||||
|
Placeholder.component("team", winningTeam.getName())));
|
||||||
|
Title capturingTeamTitle = Title.title(miniMessage.deserialize("<green><team> obtained the flag!</green>",
|
||||||
|
Placeholder.component("team", winningTeam.getName())),
|
||||||
|
miniMessage.deserialize("<green>protect <player> while they bring it to your base.</green>",
|
||||||
|
Placeholder.component("player", flagCarrier.displayName())));
|
||||||
|
Title huntingTeamTitle = Title.title(miniMessage.deserialize("<red><team> obtained the flag!</red>",
|
||||||
|
Placeholder.component("team", winningTeam.getName())),
|
||||||
|
miniMessage.deserialize("<red>kill <player> before they bring it to their base.</red>",
|
||||||
|
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) {
|
private void spawnParticlesOnSquareBorder(Location center, double size) {
|
||||||
double step = 0.2;
|
double step = 0.2;
|
||||||
World world = center.getWorld();
|
World world = center.getWorld();
|
||||||
|
|
@ -191,7 +205,7 @@ public class Flag implements Runnable {
|
||||||
spawnParticlesOnSquareBorder(winningTeam.getFlagTurnInLocation(), GameConfig.FLAG.TURN_IN_RADIUS);
|
spawnParticlesOnSquareBorder(winningTeam.getFlagTurnInLocation(), GameConfig.FLAG.TURN_IN_RADIUS);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
notifyAboutCapture();
|
notifyAboutTurnIn();
|
||||||
spawnFlag();
|
spawnFlag();
|
||||||
wins.merge(winningTeam.getId(), 1, Integer::sum);
|
wins.merge(winningTeam.getId(), 1, Integer::sum);
|
||||||
winningTeam = null;
|
winningTeam = null;
|
||||||
|
|
@ -206,21 +220,15 @@ public class Flag implements Runnable {
|
||||||
resetFlagCarrier();
|
resetFlagCarrier();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void notifyAboutCapture() {
|
private void notifyAboutTurnIn() {
|
||||||
Bukkit.broadcast(miniMessage.deserialize("<player> captured the flag for <team>!",
|
Bukkit.broadcast(miniMessage.deserialize("<player> captured the flag for <team>!",
|
||||||
Placeholder.component("player", flagCarrier.displayName()),
|
Placeholder.component("player", flagCarrier.displayName()),
|
||||||
Placeholder.component("team", winningTeam.getName())));
|
Placeholder.component("team", winningTeam.getName())));
|
||||||
Title capturingTeamTitle = Title.title(miniMessage.deserialize("<green><team> captured the flag!</green>",
|
Title title = Title.title(miniMessage.deserialize("<green><player> captured the flag for team <team>!</green>",
|
||||||
Placeholder.component("team", winningTeam.getName())),
|
Placeholder.component("team", winningTeam.getName())),
|
||||||
miniMessage.deserialize("<green>protect <player> while they bring it to your base.</green>",
|
miniMessage.deserialize("<green>protect <player> while they bring it to your base.</green>",
|
||||||
Placeholder.component("player", flagCarrier.displayName())));
|
Placeholder.component("player", flagCarrier.displayName())));
|
||||||
Title huntingTeamTitle = Title.title(miniMessage.deserialize("<red><team> captured the flag!</red>",
|
Bukkit.getOnlinePlayers().forEach(player -> player.showTitle(title));
|
||||||
Placeholder.component("team", winningTeam.getName())),
|
|
||||||
miniMessage.deserialize("<red>kill <player> before they bring it to their base.</red>",
|
|
||||||
Placeholder.component("player", flagCarrier.displayName())));
|
|
||||||
Bukkit.getOnlinePlayers().forEach(player ->
|
|
||||||
gameManager.getTeam(player.getUniqueId()).ifPresent(team ->
|
|
||||||
player.showTitle(team.getId() == winningTeam.getId() ? capturingTeamTitle : huntingTeamTitle)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Optional<Team> winnerExists() {
|
private Optional<Team> winnerExists() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user