fix: use LocalDateTime for mine late-window calc in ArcMineWindowAvailableTimeMsg
Instant has no hour-of-day field, so .with(HOUR_OF_DAY, ...) threw UnsupportedTemporalTypeException. Switch lateTime to LocalDateTime so the late-window (midnight) time can be set and the seconds-remaining computed.
This commit is contained in:
1 parent
8a136d84f4
commit
85cd4e0c14
1 file changed
+6
-7
@@ -17,9 +17,8 @@ import engine.net.Protocol;
|
|||||||
import engine.objects.Building;
|
import engine.objects.Building;
|
||||||
import engine.objects.Guild;
|
import engine.objects.Guild;
|
||||||
import engine.server.MBServerStatics;
|
import engine.server.MBServerStatics;
|
||||||
import java.time.Instant;
|
import java.time.LocalDateTime;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.temporal.ChronoField;
|
|
||||||
|
|
||||||
public class ArcMineWindowAvailableTimeMsg extends ClientNetMsg {
|
public class ArcMineWindowAvailableTimeMsg extends ClientNetMsg {
|
||||||
|
|
||||||
@@ -28,7 +27,7 @@ public class ArcMineWindowAvailableTimeMsg extends ClientNetMsg {
|
|||||||
|
|
||||||
private int currentMineHour;
|
private int currentMineHour;
|
||||||
private Duration secondsLeft;
|
private Duration secondsLeft;
|
||||||
private Instant lateTime;
|
private LocalDateTime lateTime;
|
||||||
private int late;
|
private int late;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -73,15 +72,15 @@ public class ArcMineWindowAvailableTimeMsg extends ClientNetMsg {
|
|||||||
currentMineHour = guild.getMineTime();
|
currentMineHour = guild.getMineTime();
|
||||||
|
|
||||||
late = MBServerStatics.MINE_LATE_WINDOW;
|
late = MBServerStatics.MINE_LATE_WINDOW;
|
||||||
lateTime = Instant.now();
|
lateTime = LocalDateTime.now();
|
||||||
|
|
||||||
if (late == 0)
|
if (late == 0)
|
||||||
lateTime = lateTime.plus(Duration.ofDays(1));
|
lateTime = lateTime.plusDays(1);
|
||||||
|
|
||||||
lateTime = lateTime.with(ChronoField.HOUR_OF_DAY, late);
|
lateTime = lateTime.withHour(late);
|
||||||
|
|
||||||
late = ((late > 23) ? (late - 24) : late);
|
late = ((late > 23) ? (late - 24) : late);
|
||||||
secondsLeft = Duration.between(Instant.now(), lateTime);
|
secondsLeft = Duration.between(LocalDateTime.now(), lateTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in new issue
Block a user