From 4ec85a4079446eb6ff908eefd5784ecb3cb88e70 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Sun, 9 Jul 2023 04:04:14 +0200 Subject: [PATCH] Set start time of booster to current time when it exits queue --- api/src/main/java/com/alttd/boosterapi/data/Booster.java | 4 ++++ .../main/java/com/alttd/boosterapi/data/BoosterCache.java | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/api/src/main/java/com/alttd/boosterapi/data/Booster.java b/api/src/main/java/com/alttd/boosterapi/data/Booster.java index 96dffa4..b7ceeff 100644 --- a/api/src/main/java/com/alttd/boosterapi/data/Booster.java +++ b/api/src/main/java/com/alttd/boosterapi/data/Booster.java @@ -45,6 +45,10 @@ public class Booster implements Comparable { duration = duration.minus(elapsedTime); } + public void updateTimeAfterReActivate() { + startingTime = Instant.now(); + } + public double useMultiplier(double exp) { return exp * (multiplier + 1); } diff --git a/api/src/main/java/com/alttd/boosterapi/data/BoosterCache.java b/api/src/main/java/com/alttd/boosterapi/data/BoosterCache.java index f4656ad..40ec738 100644 --- a/api/src/main/java/com/alttd/boosterapi/data/BoosterCache.java +++ b/api/src/main/java/com/alttd/boosterapi/data/BoosterCache.java @@ -108,6 +108,11 @@ public class BoosterCache { list.removeIf(filterBooster -> filterBooster.getBoosterUUID().equals(booster.getBoosterUUID())); boosters.put(boosterType, list); updateOrder(boosterType); + LinkedList updatedBoosterList = boosters.get(boosterType); + if (updatedBoosterList.size() > 0) { + Booster nextBooster = updatedBoosterList.get(0); + nextBooster.updateTimeAfterReActivate(); + } boosterFileStorage.saveBoosters(boosters.values().stream().flatMap(List::stream).collect(Collectors.toList())); }