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:
parent
4cfc8f1572
commit
a3c22cf074
|
|
@ -86,10 +86,7 @@ public class Flag implements Runnable {
|
||||||
Placeholder.component("team", teamPlayer.getTeam().getName())
|
Placeholder.component("team", teamPlayer.getTeam().getName())
|
||||||
)));
|
)));
|
||||||
flagCarrier = player;
|
flagCarrier = player;
|
||||||
teamFlagPointCount.clear();
|
resetFlag();
|
||||||
winningTeam = null;
|
|
||||||
lastWinningTeamId = -1;
|
|
||||||
bossBar.setProgress(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void spawnFlag() {
|
public void spawnFlag() {
|
||||||
|
|
@ -146,8 +143,7 @@ public class Flag implements Runnable {
|
||||||
updateDisplay();
|
updateDisplay();
|
||||||
} else {
|
} else {
|
||||||
winningTeam = optionalTeam.get();
|
winningTeam = optionalTeam.get();
|
||||||
bossBar.setVisible(false);
|
resetFlag();
|
||||||
bossBar.setProgress(0);
|
|
||||||
//TODO stop capture and let ppl know they can now capture the flag
|
//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();
|
World world = center.getWorld();
|
||||||
Location finalCenter = center.clone().add(0, 0.5, 0);
|
Location finalCenter = center.clone().add(0, 0.5, 0);
|
||||||
Bukkit.getScheduler().runTask(main, () -> {
|
Bukkit.getScheduler().runTask(main, () -> {
|
||||||
// Top and Bottom (Z varies, X constant)
|
|
||||||
for (double z = -size; z <= size; z += step) {
|
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);
|
||||||
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) {
|
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);
|
||||||
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() {
|
private void checkFlagCarrier() {
|
||||||
if (flagCarrier.isDead() || !flagCarrier.isOnline()) {
|
if (flagCarrier.isDead() || !flagCarrier.isOnline()) {
|
||||||
flagCarrier = null;
|
resetFlagCarrier();
|
||||||
particleTrail.clear();
|
|
||||||
spawnFlag();
|
spawnFlag();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -210,8 +203,7 @@ public class Flag implements Runnable {
|
||||||
teamPlayer.getGameClass().setArmor(flagCarrier, teamPlayer);
|
teamPlayer.getGameClass().setArmor(flagCarrier, teamPlayer);
|
||||||
flagCarrier.getInventory().setItem(EquipmentSlot.HEAD, null);
|
flagCarrier.getInventory().setItem(EquipmentSlot.HEAD, null);
|
||||||
}
|
}
|
||||||
flagCarrier = null;
|
resetFlagCarrier();
|
||||||
particleTrail.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void notifyAboutCapture() {
|
private void notifyAboutCapture() {
|
||||||
|
|
@ -349,17 +341,25 @@ public class Flag implements Runnable {
|
||||||
return winsByTeam;
|
return winsByTeam;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reset() {
|
public void resetFlagCarrier() {
|
||||||
|
flagCarrier = null;
|
||||||
|
winningTeam = null;
|
||||||
|
particleTrail.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void resetFlag() {
|
||||||
bossBar.setVisible(false);
|
bossBar.setVisible(false);
|
||||||
teamFlagPointCount.clear();
|
teamFlagPointCount.clear();
|
||||||
bossBar.setProgress(0);
|
bossBar.setProgress(0);
|
||||||
winningTeam = null;
|
|
||||||
flagCarrier = null;
|
|
||||||
particleTrail.clear();
|
|
||||||
wins.clear();
|
|
||||||
lastWinningTeamId = -1;
|
lastWinningTeamId = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void resetAll() {
|
||||||
|
resetFlagCarrier();
|
||||||
|
resetFlag();
|
||||||
|
wins.clear();
|
||||||
|
}
|
||||||
|
|
||||||
public void handleCarrierDeathOrDisconnect(Player player) {
|
public void handleCarrierDeathOrDisconnect(Player player) {
|
||||||
if (flagCarrier == null) {
|
if (flagCarrier == null) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -367,8 +367,7 @@ public class Flag implements Runnable {
|
||||||
if (!flagCarrier.getUniqueId().equals(player.getUniqueId())) {
|
if (!flagCarrier.getUniqueId().equals(player.getUniqueId())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
flagCarrier = null;
|
resetFlagCarrier();
|
||||||
particleTrail.clear();
|
|
||||||
spawnFlag();
|
spawnFlag();
|
||||||
gameManager.getTeam(player.getUniqueId())
|
gameManager.getTeam(player.getUniqueId())
|
||||||
.ifPresentOrElse(team -> Bukkit.broadcast(MiniMessage.miniMessage()
|
.ifPresentOrElse(team -> Bukkit.broadcast(MiniMessage.miniMessage()
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ public class EndedPhase implements GamePhaseExecutor {
|
||||||
maxHealthAttribute.setBaseValue(20);
|
maxHealthAttribute.setBaseValue(20);
|
||||||
player.setHealth(20);
|
player.setHealth(20);
|
||||||
});
|
});
|
||||||
flag.reset();
|
flag.resetAll();
|
||||||
}).start();
|
}).start();
|
||||||
// TODO reset world (coreprotect) to prep for next round
|
// TODO reset world (coreprotect) to prep for next round
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
#Tue Feb 11 21:46:26 CET 2025
|
#Tue Feb 11 22:04:16 CET 2025
|
||||||
buildNumber=39
|
buildNumber=42
|
||||||
version=0.1
|
version=0.1
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user