aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky/skyblocker')
-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
5 files changed, 59 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;
}
}