aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/de/hysky/skyblocker/SkyblockerMod.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java14
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/mayors/JerryTimer.java37
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json5
5 files changed, 66 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
index c3b0e0f2..1f766000 100644
--- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
+++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
@@ -37,6 +37,7 @@ import de.hysky.skyblocker.skyblock.item.tooltip.BackpackPreview;
import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
import de.hysky.skyblocker.skyblock.item.tooltip.TooltipManager;
import de.hysky.skyblocker.skyblock.itemlist.ItemRepository;
+import de.hysky.skyblocker.skyblock.mayors.JerryTimer;
import de.hysky.skyblocker.skyblock.profileviewer.ProfileViewerScreen;
import de.hysky.skyblocker.skyblock.rift.TheRift;
import de.hysky.skyblocker.skyblock.searchoverlay.SearchOverManager;
@@ -194,6 +195,7 @@ public class SkyblockerMod implements ClientModInitializer {
EggFinder.init();
TimeTowerReminder.init();
SkyblockTime.init();
+ JerryTimer.init();
TooltipManager.init();
SlotTextManager.init();
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java
index 9e4935cb..1518dfe7 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java
@@ -38,6 +38,20 @@ public class HelperCategory {
.build())
.build())
+ //Jerry Timer
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.helpers.jerry"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.helpers.jerry.enableJerryTimer"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.helpers.jerry.enableJerryTimer.@Tooltip")))
+ .binding(defaults.helpers.jerry.enableJerryTimer,
+ () -> config.helpers.jerry.enableJerryTimer,
+ newValue -> config.helpers.jerry.enableJerryTimer = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .build())
+
//Experiments Solver
.group(OptionGroup.createBuilder()
.name(Text.translatable("skyblocker.config.helpers.experiments"))
diff --git a/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java
index c0314924..33047f1c 100644
--- a/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java
@@ -12,6 +12,9 @@ public class HelperConfig {
public MythologicalRitual mythologicalRitual = new MythologicalRitual();
@SerialEntry
+ public Jerry jerry = new Jerry();
+
+ @SerialEntry
public Experiments experiments = new Experiments();
@SerialEntry
@@ -28,6 +31,11 @@ public class HelperConfig {
public boolean enableMythologicalRitualHelper = true;
}
+ public static class Jerry {
+ @SerialEntry
+ public boolean enableJerryTimer = false;
+ }
+
public static class Experiments {
@SerialEntry
public boolean enableChronomatronSolver = true;
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/mayors/JerryTimer.java b/src/main/java/de/hysky/skyblocker/skyblock/mayors/JerryTimer.java
new file mode 100644
index 00000000..7131a567
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/mayors/JerryTimer.java
@@ -0,0 +1,37 @@
+package de.hysky.skyblocker.skyblock.mayors;
+
+import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.utils.Constants;
+import de.hysky.skyblocker.utils.Utils;
+import de.hysky.skyblocker.utils.scheduler.Scheduler;
+import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.network.ClientPlayerEntity;
+import net.minecraft.sound.SoundCategory;
+import net.minecraft.sound.SoundEvents;
+import net.minecraft.text.HoverEvent;
+import net.minecraft.text.Text;
+import net.minecraft.util.Formatting;
+
+public final class JerryTimer {
+ private JerryTimer() {
+ }
+ public static void init() {
+ //Example message: "§b ☺ §eThere is a §aGreen Jerry§e!"
+ //There are various formats, all of which start with the "§b ☺ " prefix and contain the word "<color> Jerry"
+ ClientReceiveMessageEvents.GAME.register((message, overlay) -> {
+ if (overlay || !Utils.getMayor().equals("Jerry") || !SkyblockerConfigManager.get().helpers.jerry.enableJerryTimer) return;
+ String text = message.getString();
+ //This part of hypixel still uses legacy text formatting, so we can't directly check for the actual text
+ if (!text.startsWith("§b ☺ ") || !text.contains("Jerry")) return;
+ HoverEvent hoverEvent = message.getStyle().getHoverEvent();
+ if (hoverEvent == null || hoverEvent.getAction() != HoverEvent.Action.SHOW_TEXT) return;
+ ClientPlayerEntity player = MinecraftClient.getInstance().player;
+ Scheduler.INSTANCE.schedule(() -> {
+ if (player == null || !Utils.isOnSkyblock()) return;
+ player.sendMessage(Constants.PREFIX.get().append(Text.literal("Jerry cooldown is over!")).formatted(Formatting.GREEN), false);
+ player.playSoundToPlayer(SoundEvents.ENTITY_VILLAGER_TRADE, SoundCategory.NEUTRAL, 100f, 1.0f);
+ }, 20*60*6); // 6 minutes
+ });
+ }
+}
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index 8fa87e3b..cf1cc4c2 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -317,6 +317,11 @@
"skyblocker.config.helpers.fishing.hideOtherPlayers": "Hide Other Players Rods",
"skyblocker.config.helpers.fishing.hideOtherPlayers.@Tooltip": "Hide other players fishing rods from showing for you",
+ "skyblocker.config.helpers.jerry": "Jerry",
+ "skyblocker.config.helpers.jerry.enableJerryTimer": "Enable Jerry Timer",
+ "skyblocker.config.helpers.jerry.enableJerryTimer.@Tooltip": "Sends a message in chat and plays a sound when the hidden jerry spawn cooldown is over.",
+
+
"skyblocker.config.helpers.mythologicalRitual": "Mythological Ritual Helper",
"skyblocker.config.helpers.mythologicalRitual.enableMythologicalRitualHelper": "Enable Mythological Ritual Helper",