Fix world border config loading and phase transition logic
Made DEFAULT_SIZE in GameConfig mutable and ensured it updates dynamically from the configuration. Corrected phase transition logic in RunningGame to prevent potential out-of-bounds errors. Updated capture radius and build version.
This commit is contained in:
parent
4f8a7a0416
commit
4af509eb5f
|
|
@ -49,7 +49,7 @@ public class GameConfig extends AbstractConfig {
|
|||
public static class WORLD_BORDER {
|
||||
private static final String prefix = "world-border.";
|
||||
|
||||
public static final double DEFAULT_SIZE = 140;
|
||||
public static double DEFAULT_SIZE = 140;
|
||||
private static final HashMap<GamePhase, WorldBorderSettings> GAME_PHASE_WORLD_BORDER = new HashMap<>();
|
||||
|
||||
public static HashMap<GamePhase, WorldBorderSettings> getGAME_PHASE_WORLD_BORDER() {
|
||||
|
|
@ -73,6 +73,8 @@ public class GameConfig extends AbstractConfig {
|
|||
GAME_PHASE_WORLD_BORDER.put(phase, new WorldBorderSettings(worldBorderType, size));
|
||||
log.debug("Set {} phase world border type to {} blocks", phase.name(), size);
|
||||
}
|
||||
|
||||
DEFAULT_SIZE = config.getDouble(prefix, "default-size", DEFAULT_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -83,7 +85,7 @@ public class GameConfig extends AbstractConfig {
|
|||
public static double x = 0;
|
||||
public static double y = 0;
|
||||
public static double z = 0;
|
||||
public static double CAPTURE_RADIUS = 7;
|
||||
public static double CAPTURE_RADIUS = 5;
|
||||
public static int WINNING_SCORE = 50;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public class RunningGame implements Runnable {
|
|||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
GamePhase nextPhase = GamePhase.values().length < currentPhase.ordinal() ? null : GamePhase.values()[currentPhase.ordinal() + 1];
|
||||
GamePhase nextPhase = (currentPhase.ordinal() + 1 < GamePhase.values().length) ? GamePhase.values()[currentPhase.ordinal() + 1] : null;
|
||||
if (phaseStartTime == null) {
|
||||
phaseStartTime = Instant.now();
|
||||
nextPhaseActions(null, currentPhase, nextPhase);
|
||||
|
|
@ -42,7 +42,7 @@ public class RunningGame implements Runnable {
|
|||
|
||||
if (Duration.between(phaseStartTime, Instant.now()).compareTo(phaseDurations.get(currentPhase)) >= 0) {
|
||||
GamePhase previousPhase = currentPhase;
|
||||
currentPhase = GamePhase.values()[currentPhase.ordinal() + 1];
|
||||
currentPhase = GamePhase.values()[currentPhase.ordinal() + 1]; //TODO fix this running out of bounds
|
||||
nextPhaseActions(previousPhase, currentPhase, nextPhase);
|
||||
phaseStartTime = Instant.now();
|
||||
} else if (nextPhase != null) {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
#Sat Feb 08 21:57:04 CET 2025
|
||||
buildNumber=30
|
||||
#Sat Feb 08 23:31:55 CET 2025
|
||||
buildNumber=33
|
||||
version=0.1
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user