From eb256675c76ffd8ba6c69d9c3fed92fb9a87cd93 Mon Sep 17 00:00:00 2001 From: Rime <81419447+Emirlol@users.noreply.github.com> Date: Sun, 19 May 2024 09:33:11 +0300 Subject: Fix time tower reminder being sent multiple times --- .../skyblocker/skyblock/chocolatefactory/TimeTowerReminder.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/TimeTowerReminder.java b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/TimeTowerReminder.java index eb5f60cf..72cbeb2a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/TimeTowerReminder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/TimeTowerReminder.java @@ -24,6 +24,7 @@ public class TimeTowerReminder { private static final String TIME_TOWER_FILE = "time_tower.txt"; private static final Pattern TIME_TOWER_PATTERN = Pattern.compile("^TIME TOWER! Your Chocolate Factory production has increased by \\+[\\d.]+x for \\dh!$"); private static final Logger LOGGER = LoggerFactory.getLogger("Skyblocker Time Tower Reminder"); + private static boolean scheduled = false; private TimeTowerReminder() { } @@ -34,9 +35,9 @@ public class TimeTowerReminder { } public static void checkIfTimeTower(Message message, boolean overlay) { - if (!TIME_TOWER_PATTERN.matcher(message.getString()).matches()) return; + if (!TIME_TOWER_PATTERN.matcher(message.getString()).matches() || scheduled) return; Scheduler.INSTANCE.schedule(TimeTowerReminder::sendMessage, 60 * 60 * 20); // 1 hour - + scheduled = true; File tempFile = SkyblockerMod.CONFIG_DIR.resolve(TIME_TOWER_FILE).toFile(); if (!tempFile.exists()) { try { @@ -60,6 +61,7 @@ public class TimeTowerReminder { File tempFile = SkyblockerMod.CONFIG_DIR.resolve(TIME_TOWER_FILE).toFile(); try { + scheduled = false; if (tempFile.exists()) Files.delete(tempFile.toPath()); } catch (Exception e) { LOGGER.error("[Skyblocker Time Tower Reminder] Failed to delete temp file for Time Tower Reminder!", e); @@ -68,7 +70,7 @@ public class TimeTowerReminder { private static void checkTempFile() { File tempFile = SkyblockerMod.CONFIG_DIR.resolve(TIME_TOWER_FILE).toFile(); - if (!tempFile.exists()) return; + if (!tempFile.exists() || scheduled) return; long time; try (Stream file = Files.lines(tempFile.toPath())) { -- cgit