aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/EventNotificationsConfig.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/events/EventNotifications.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/Utils.java1
4 files changed, 12 insertions, 5 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java
index e353b5d1..6fd01cf8 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java
@@ -6,6 +6,8 @@ import de.hysky.skyblocker.config.configs.EventNotificationsConfig;
import de.hysky.skyblocker.skyblock.events.EventNotifications;
import de.hysky.skyblocker.utils.config.DurationController;
import dev.isxander.yacl3.api.*;
+import it.unimi.dsi.fastutil.ints.IntImmutableList;
+import it.unimi.dsi.fastutil.ints.IntList;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.sound.PositionedSoundInstance;
import net.minecraft.text.Text;
@@ -43,13 +45,13 @@ public class EventNotificationsCategory {
}
private static List<OptionGroup> createGroups(SkyblockerConfig config) {
- Map<String, List<Integer>> eventsReminderTimes = config.eventNotifications.eventsReminderTimes;
+ Map<String, IntList> eventsReminderTimes = config.eventNotifications.eventsReminderTimes;
List<OptionGroup> groups = new ArrayList<>(eventsReminderTimes.size());
if (eventsReminderTimes.isEmpty()) return List.of(OptionGroup.createBuilder().option(LabelOption.create(Text.translatable("skyblocker.config.eventNotifications.monologue"))).build());
- for (Map.Entry<String, List<Integer>> entry : eventsReminderTimes.entrySet()) {
+ for (Map.Entry<String, IntList> entry : eventsReminderTimes.entrySet()) {
groups.add(ListOption.<Integer>createBuilder()
.name(Text.literal(entry.getKey()))
- .binding(EventNotifications.DEFAULT_REMINDERS, entry::getValue, entry::setValue)
+ .binding(EventNotifications.DEFAULT_REMINDERS, entry::getValue, integers -> entry.setValue(new IntImmutableList(integers)))
.controller(option -> () -> new DurationController(option)) // yea
.description(OptionDescription.of(Text.translatable("skyblocker.config.eventNotifications.@Tooltip[0]"),
Text.empty(),
diff --git a/src/main/java/de/hysky/skyblocker/config/configs/EventNotificationsConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/EventNotificationsConfig.java
index cc51e536..4cf47fa3 100644
--- a/src/main/java/de/hysky/skyblocker/config/configs/EventNotificationsConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/configs/EventNotificationsConfig.java
@@ -1,6 +1,7 @@
package de.hysky.skyblocker.config.configs;
import dev.isxander.yacl3.config.v2.api.SerialEntry;
+import it.unimi.dsi.fastutil.ints.IntList;
import net.minecraft.sound.SoundEvent;
import net.minecraft.sound.SoundEvents;
@@ -14,7 +15,7 @@ public class EventNotificationsConfig {
public Sound reminderSound = Sound.PLING;
@SerialEntry
- public Map<String, List<Integer>> eventsReminderTimes = new HashMap<>();
+ public Map<String, IntList> eventsReminderTimes = new HashMap<>();
public enum Sound {
NONE(null),
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/events/EventNotifications.java b/src/main/java/de/hysky/skyblocker/skyblock/events/EventNotifications.java
index e0bf16fc..0fd41969 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/events/EventNotifications.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/events/EventNotifications.java
@@ -11,6 +11,7 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.events.SkyblockEvents;
import de.hysky.skyblocker.utils.Http;
import de.hysky.skyblocker.utils.scheduler.Scheduler;
+import it.unimi.dsi.fastutil.ints.IntList;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
@@ -32,7 +33,7 @@ public class EventNotifications {
public static final String JACOBS = "Jacob's Farming Contest";
- public static final List<Integer> DEFAULT_REMINDERS = List.of(60, 60 * 5);
+ public static final IntList DEFAULT_REMINDERS = IntList.of(60, 60 * 5);
public static final Map<String, ItemStack> eventIcons = new Object2ObjectOpenHashMap<>();
@@ -127,6 +128,8 @@ public class EventNotifications {
LinkedList<SkyblockEvent> nextEvents = entry.getValue();
SkyblockEvent skyblockEvent = nextEvents.peekFirst();
if (skyblockEvent == null) continue;
+
+ // Remove finished event
if (newTime > skyblockEvent.start() + skyblockEvent.duration()) {
nextEvents.pollFirst();
skyblockEvent = nextEvents.peekFirst();
diff --git a/src/main/java/de/hysky/skyblocker/utils/Utils.java b/src/main/java/de/hysky/skyblocker/utils/Utils.java
index fa9292ca..7c28294f 100644
--- a/src/main/java/de/hysky/skyblocker/utils/Utils.java
+++ b/src/main/java/de/hysky/skyblocker/utils/Utils.java
@@ -356,6 +356,7 @@ public class Utils {
}
}
+ // TODO: Combine with `ChocolateFactorySolver.formatTime` and move into `SkyblockTime`.
public static Text getDurationText(int timeInSeconds) {
int seconds = timeInSeconds % 60;
int minutes = (timeInSeconds/60) % 60;