aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java15
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/EventNotificationsConfig.java35
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java12
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json8
6 files changed, 67 insertions, 9 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
index 9c495382..a1f4fa2c 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
@@ -45,4 +45,7 @@ public class SkyblockerConfig {
@SerialEntry
public MiscConfig misc = new MiscConfig();
+
+ @SerialEntry
+ public EventNotificationsConfig eventNotifications = new EventNotificationsConfig();
}
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java
index dd406b8a..25da464e 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java
@@ -83,7 +83,8 @@ public class SkyblockerConfigManager {
.category(SlayersCategory.create(defaults, config))
.category(ChatCategory.create(defaults, config))
.category(QuickNavigationCategory.create(defaults, config))
- .category(MiscCategory.create(defaults, config))).generateScreen(parent);
+ .category(MiscCategory.create(defaults, config))
+ .category(EventNotificationsCategory.create(defaults, config))).generateScreen(parent);
}
/**
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 b6272403..e353b5d1 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java
@@ -2,6 +2,7 @@ package de.hysky.skyblocker.config.categories;
import de.hysky.skyblocker.config.ConfigUtils;
import de.hysky.skyblocker.config.SkyblockerConfig;
+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.*;
@@ -20,13 +21,13 @@ public class EventNotificationsCategory {
public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
shouldPlaySound = false;
return ConfigCategory.createBuilder()
- .name(Text.translatable("text.autoconfig.skyblocker.option.eventNotifications"))
- .option(Option.<SkyblockerConfig.EventNotifications.Sound>createBuilder()
+ .name(Text.translatable("skyblocker.config.eventNotifications"))
+ .option(Option.<EventNotificationsConfig.Sound>createBuilder()
.binding(defaults.eventNotifications.reminderSound,
() -> config.eventNotifications.reminderSound,
sound -> config.eventNotifications.reminderSound = sound)
.controller(ConfigUtils::createEnumCyclingListController)
- .name(Text.translatable("text.autoconfig.skyblocker.option.eventNotifications.notificationSound"))
+ .name(Text.translatable("skyblocker.config.eventNotifications.notificationSound"))
.listener((soundOption, sound) -> {
if (!shouldPlaySound) {
shouldPlaySound = true;
@@ -44,17 +45,17 @@ public class EventNotificationsCategory {
private static List<OptionGroup> createGroups(SkyblockerConfig config) {
Map<String, List<Integer>> eventsReminderTimes = config.eventNotifications.eventsReminderTimes;
List<OptionGroup> groups = new ArrayList<>(eventsReminderTimes.size());
- if (eventsReminderTimes.isEmpty()) return List.of(OptionGroup.createBuilder().option(LabelOption.create(Text.translatable("text.autoconfig.skyblocker.option.eventNotifications.monologue"))).build());
+ 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()) {
groups.add(ListOption.<Integer>createBuilder()
.name(Text.literal(entry.getKey()))
.binding(EventNotifications.DEFAULT_REMINDERS, entry::getValue, entry::setValue)
.controller(option -> () -> new DurationController(option)) // yea
- .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.eventNotifications.@Tooltip[0]"),
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.eventNotifications.@Tooltip[0]"),
Text.empty(),
- Text.translatable("text.autoconfig.skyblocker.option.eventNotifications.@Tooltip[1]"),
+ Text.translatable("skyblocker.config.eventNotifications.@Tooltip[1]"),
Text.empty(),
- Text.translatable("text.autoconfig.skyblocker.option.eventNotifications.@Tooltip[2]", entry.getKey())))
+ Text.translatable("skyblocker.config.eventNotifications.@Tooltip[2]", entry.getKey())))
.initial(60)
.collapsed(true)
.build()
diff --git a/src/main/java/de/hysky/skyblocker/config/configs/EventNotificationsConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/EventNotificationsConfig.java
new file mode 100644
index 00000000..cc51e536
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/config/configs/EventNotificationsConfig.java
@@ -0,0 +1,35 @@
+package de.hysky.skyblocker.config.configs;
+
+import dev.isxander.yacl3.config.v2.api.SerialEntry;
+import net.minecraft.sound.SoundEvent;
+import net.minecraft.sound.SoundEvents;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class EventNotificationsConfig {
+
+ @SerialEntry
+ public Sound reminderSound = Sound.PLING;
+
+ @SerialEntry
+ public Map<String, List<Integer>> eventsReminderTimes = new HashMap<>();
+
+ public enum Sound {
+ NONE(null),
+ BELL(SoundEvents.BLOCK_BELL_USE),
+ DING(SoundEvents.ENTITY_ARROW_HIT_PLAYER),
+ PLING(SoundEvents.BLOCK_NOTE_BLOCK_PLING.value()),
+ GOAT(SoundEvents.GOAT_HORN_SOUNDS.getFirst().value());
+
+ public SoundEvent getSoundEvent() {
+ return soundEvent;
+ }
+
+ final SoundEvent soundEvent;
+ Sound(SoundEvent soundEvent) {
+ this.soundEvent = soundEvent;
+ }
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java b/src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java
index 58e57120..18d9a7b2 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java
@@ -1,5 +1,8 @@
package de.hysky.skyblocker.skyblock.events;
+import com.mojang.blaze3d.systems.RenderSystem;
+import de.hysky.skyblocker.utils.Utils;
+import de.hysky.skyblocker.utils.render.RenderHelper;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.toast.ToastManager;
@@ -54,12 +57,19 @@ public class JacobEventToast extends EventToast{
for (int i = 0; i < crops.length; i++) {
context.drawItem(cropItems.get(crops[i]), x + i * (16 + 8), 7);
}
- context.fill(30, 6, 30 + messageWidth, 22, 400, 0x212121 | k);
+ // IDK how to make the items transparent, so I just redraw the texture on top
+ context.getMatrices().push();
+ context.getMatrices().translate(0, 0, 400f);
+ RenderHelper.renderNineSliceColored(context, TEXTURE, 0, 0, getWidth(), getHeight(), 1f, 1f, 1f, (k >> 24)/ 255f);
+ context.getMatrices().pop();
y += textRenderer.fontHeight * message.size();
}
+ context.getMatrices().push();
+ context.getMatrices().translate(0, 0, 400f);
drawTimer(context, 30, y);
context.drawItemWithoutEntity(icon, 8, getHeight()/2 - 8);
+ context.getMatrices().pop();
return startTime > 5_000 ? Visibility.HIDE: Visibility.SHOW;
}
}
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index f19b41b5..52f72e37 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -623,6 +623,13 @@
"skyblocker.config.uiAndVisuals.waypoints.waypointType.@Tooltip": "Waypoint: Displays a highlight and a beacon beam.\n\nOutlined Waypoint: Displays both a waypoint and an outline.\n\nHighlight: Only displays a highlight.\n\nOutlined Highlight: Displays both a highlight and an outline.\n\nOutline: Only displays an outline.",
"skyblocker.config.uiAndVisuals.waypoints.waypointType.generalNote": "\n\n\nThis option does not apply to all waypoints. Some waypoints such as secret waypoints have their own waypoint type option.",
+ "skyblocker.config.eventNotifications": "Event Notifications",
+ "skyblocker.config.eventNotifications.notificationSound": "Notification Sound",
+ "skyblocker.config.eventNotifications.monologue": "can you pls log onto skyblock rq pls? that would be cool cuz like if you are seeing dis then it means that ur config either got cleared or that this is ur first time using the mod if so then thanks for choosing it and hopefully you enjoy it! so yea this is where you will be able to set reminders for all events in skyblock they will be added as you encounter so you first need to log onto skyblock so yea hope you enjoy the mod and all that",
+ "skyblocker.config.eventNotifications.@Tooltip[0]": "Configure how much time before an event you will be reminded with a notification toast! For example if you set '5m' and '30s' in the list, you will receive a notification 5 minutes before and another 30 seconds before an event starts.",
+ "skyblocker.config.eventNotifications.@Tooltip[1]": "The order doesn't matter. If you want to disable notifications, just empty the list.",
+ "skyblocker.config.eventNotifications.@Tooltip[2]": "This list will modify the '%s' event",
+
"skyblocker.itemTooltip.noData": "\u00a7cNo Data",
"skyblocker.itemTooltip.nullMessage": "\u00a7cItem price information on tooltip will renew in max 60 seconds. If not, check latest.log",
@@ -762,6 +769,7 @@
"skyblocker.itemProtection.unableToProtect": "§cUnable to protect this item :( (Are you in skyblock?, are you holding an item?)",
"skyblocker.events.startsSoon": "%s starts soon!",
+ "skyblocker.events.startsNow": "%s starts now!",
"skyblocker.events.tab.clickToWarp": "Click to warp!",
"skyblocker.events.tab.noMore": "No more this year!",
"skyblocker.events.tab.startsIn": "Starts in %s",