fix: null-safe upgradeDateTime conversion in BuildingManager.setUpgradeDateTime
Placing a banestone (and other callers) pass null to clear a fresh building's upgrade timer, but the inline .atZone(...).toInstant() NPE'd on null. Convert only when non-null; the DB layer already handles null.
This commit is contained in:
1 parent
85cd4e0c14
commit
86062cf712
1 file changed
+3
-1
@@ -25,6 +25,7 @@ import engine.objects.*;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
@@ -274,7 +275,8 @@ public enum BuildingManager {
|
||||
|
||||
if (building == null)
|
||||
return;
|
||||
if (!DbManager.BuildingQueries.updateBuildingUpgradeTime(upgradeDateTime.atZone(ZoneId.systemDefault()).toInstant(), building, rankCost)) {
|
||||
Instant instant = (upgradeDateTime == null) ? null : upgradeDateTime.atZone(ZoneId.systemDefault()).toInstant();
|
||||
if (!DbManager.BuildingQueries.updateBuildingUpgradeTime(instant, building, rankCost)) {
|
||||
Logger.error("Failed to set upgradeTime for building " + building.getObjectUUID());
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user