From f5871d8a18e0be2a3a4538fc0ab4f51f58cef3b3 Mon Sep 17 00:00:00 2001 From: Kevin <92656833+kevinthegreat1@users.noreply.github.com> Date: Sat, 15 Jun 2024 00:15:41 +0800 Subject: Add event notifications criterion (#763) --- .../skyblocker/skyblock/events/EventNotifications.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/skyblock') 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 0fd41969..da2a0c2f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/events/EventNotifications.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/events/EventNotifications.java @@ -10,6 +10,7 @@ import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.events.SkyblockEvents; import de.hysky.skyblocker.utils.Http; +import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.scheduler.Scheduler; import it.unimi.dsi.fastutil.ints.IntList; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; @@ -23,7 +24,10 @@ import net.minecraft.sound.SoundEvent; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; -import java.util.*; +import java.util.Comparator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.concurrent.CompletableFuture; public class EventNotifications { @@ -140,7 +144,7 @@ public class EventNotifications { if (reminderTimes.isEmpty()) continue; for (Integer reminderTime : reminderTimes) { - if (currentTime + reminderTime < skyblockEvent.start() && newTime + reminderTime >= skyblockEvent.start()) { + if (criterionMet() && currentTime + reminderTime < skyblockEvent.start() && newTime + reminderTime >= skyblockEvent.start()) { MinecraftClient instance = MinecraftClient.getInstance(); if (eventName.equals(JACOBS)) { instance.getToastManager().add( @@ -161,6 +165,15 @@ public class EventNotifications { currentTime = newTime; } + private static boolean criterionMet() { + return switch (SkyblockerConfigManager.get().eventNotifications.criterion) { + case NONE -> false; + case SKYBLOCK -> Utils.isOnSkyblock(); + case HYPIXEL -> Utils.isOnHypixel(); + case EVERYWHERE -> true; + }; + } + public record SkyblockEvent(long start, int duration, String[] extras, @Nullable String warpCommand) { public static SkyblockEvent of(JsonObject jsonObject) { String location = jsonObject.get("location").getAsString(); -- cgit