From 07a0b32d0d1eadce04963963975322a3a7a093cb Mon Sep 17 00:00:00 2001 From: vicisacat Date: Wed, 24 Apr 2024 15:48:28 +0200 Subject: epic config --- .../categories/EventNotificationsCategory.java | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java (limited to 'src/main/java/de/hysky/skyblocker/config') diff --git a/src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java new file mode 100644 index 00000000..02be92a5 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java @@ -0,0 +1,43 @@ +package de.hysky.skyblocker.config.categories; + +import de.hysky.skyblocker.config.SkyblockerConfig; +import de.hysky.skyblocker.skyblock.events.EventNotifications; +import de.hysky.skyblocker.utils.config.DurationController; +import dev.isxander.yacl3.api.ConfigCategory; +import dev.isxander.yacl3.api.ListOption; +import dev.isxander.yacl3.api.OptionDescription; +import dev.isxander.yacl3.api.OptionGroup; +import net.minecraft.text.Text; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class EventNotificationsCategory { + + public static ConfigCategory create(SkyblockerConfig config) { + return ConfigCategory.createBuilder() + .name(Text.literal("Event Notifications")) + .groups(createGroups(config)) + .tooltip(Text.translatable("text.autoconfig.skyblocker.option.general.eventNotifications.@Tooltip[0]"), + Text.translatable("text.autoconfig.skyblocker.option.general.eventNotifications.@Tooltip[1]")) + .build(); + + } + + private static List createGroups(SkyblockerConfig config) { + Map> eventsReminderTimes = config.eventNotifications.eventsReminderTimes; + List groups = new ArrayList<>(eventsReminderTimes.size()); + for (Map.Entry> entry : eventsReminderTimes.entrySet()) { + groups.add(ListOption.createBuilder() + .name(Text.literal(entry.getKey())) + .binding(EventNotifications.DEFAULT_REMINDERS, entry::getValue, entry::setValue) + .controller(option -> () -> new DurationController(option)) // yea + .initial(60) + .collapsed(true) + .build() + ); + } + return groups; + } +} -- cgit