diff --git a/src/main/java/com/alttd/ctf/flag/Flag.java b/src/main/java/com/alttd/ctf/flag/Flag.java index 57c3c74..8e131dd 100644 --- a/src/main/java/com/alttd/ctf/flag/Flag.java +++ b/src/main/java/com/alttd/ctf/flag/Flag.java @@ -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() diff --git a/src/main/java/com/alttd/ctf/game/phases/EndedPhase.java b/src/main/java/com/alttd/ctf/game/phases/EndedPhase.java index 639acda..b719198 100644 --- a/src/main/java/com/alttd/ctf/game/phases/EndedPhase.java +++ b/src/main/java/com/alttd/ctf/game/phases/EndedPhase.java @@ -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 } diff --git a/version.properties b/version.properties index d8cfa13..7a221ff 100644 --- a/version.properties +++ b/version.properties @@ -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