Refactor flag reset logic for clarity and reuse.

Consolidated flag reset responsibilities into `resetFlagCarrier` and `resetAll` methods to improve code readability and maintainability. Replaced redundant flag reset operations with the new methods across the codebase. Updated `EndedPhase` to use `resetAll` for consistent behavior.
This commit is contained in:
Teriuihi 2025-02-11 22:08:58 +01:00
parent 4cfc8f1572
commit a3c22cf074
3 changed files with 21 additions and 22 deletions

View File

@ -86,10 +86,7 @@ public class Flag implements Runnable {
Placeholder.component("team", teamPlayer.getTeam().getName())
)));
flagCarrier = player;
teamFlagPointCount.clear();
winningTeam = null;
lastWinningTeamId = -1;
bossBar.setProgress(0);
resetFlag();
}
public void spawnFlag() {
@ -146,8 +143,7 @@ public class Flag implements Runnable {
updateDisplay();
} else {
winningTeam = optionalTeam.get();
bossBar.setVisible(false);
bossBar.setProgress(0);
resetFlag();
//TODO stop capture and let ppl know they can now capture the flag
}
}
@ -157,13 +153,11 @@ public class Flag implements Runnable {
World world = center.getWorld();
Location finalCenter = center.clone().add(0, 0.5, 0);
Bukkit.getScheduler().runTask(main, () -> {
// Top and Bottom (Z varies, X constant)
for (double z = -size; z <= size; z += step) {
world.spawnParticle(Particle.FLAME, finalCenter.getX() + size, finalCenter.getY(), finalCenter.getZ() + z, 1, 0, 0, 0, 0);
world.spawnParticle(Particle.FLAME, finalCenter.getX() - size, finalCenter.getY(), finalCenter.getZ() + z, 1, 0, 0, 0, 0);
}
// Left and Right (X varies, Z constant)
for (double x = -size; x <= size; x += step) {
world.spawnParticle(Particle.FLAME, finalCenter.getX() + x, finalCenter.getY(), finalCenter.getZ() + size, 1, 0, 0, 0, 0);
world.spawnParticle(Particle.FLAME, finalCenter.getX() + x, finalCenter.getY(), finalCenter.getZ() - size, 1, 0, 0, 0, 0);
@ -184,8 +178,7 @@ public class Flag implements Runnable {
private void checkFlagCarrier() {
if (flagCarrier.isDead() || !flagCarrier.isOnline()) {
flagCarrier = null;
particleTrail.clear();
resetFlagCarrier();
spawnFlag();
return;
}
@ -210,8 +203,7 @@ public class Flag implements Runnable {
teamPlayer.getGameClass().setArmor(flagCarrier, teamPlayer);
flagCarrier.getInventory().setItem(EquipmentSlot.HEAD, null);
}
flagCarrier = null;
particleTrail.clear();
resetFlagCarrier();
}
private void notifyAboutCapture() {
@ -349,17 +341,25 @@ public class Flag implements Runnable {
return winsByTeam;
}
public void reset() {
public void resetFlagCarrier() {
flagCarrier = null;
winningTeam = null;
particleTrail.clear();
}
public void resetFlag() {
bossBar.setVisible(false);
teamFlagPointCount.clear();
bossBar.setProgress(0);
winningTeam = null;
flagCarrier = null;
particleTrail.clear();
wins.clear();
lastWinningTeamId = -1;
}
public void resetAll() {
resetFlagCarrier();
resetFlag();
wins.clear();
}
public void handleCarrierDeathOrDisconnect(Player player) {
if (flagCarrier == null) {
return;
@ -367,8 +367,7 @@ public class Flag implements Runnable {
if (!flagCarrier.getUniqueId().equals(player.getUniqueId())) {
return;
}
flagCarrier = null;
particleTrail.clear();
resetFlagCarrier();
spawnFlag();
gameManager.getTeam(player.getUniqueId())
.ifPresentOrElse(team -> Bukkit.broadcast(MiniMessage.miniMessage()

View File

@ -50,7 +50,7 @@ public class EndedPhase implements GamePhaseExecutor {
maxHealthAttribute.setBaseValue(20);
player.setHealth(20);
});
flag.reset();
flag.resetAll();
}).start();
// TODO reset world (coreprotect) to prep for next round
}

View File

@ -1,3 +1,3 @@
#Tue Feb 11 21:46:26 CET 2025
buildNumber=39
#Tue Feb 11 22:04:16 CET 2025
buildNumber=42
version=0.1