diff options
| author | vicisacat <victor.branchu@gmail.com> | 2024-04-24 15:48:28 +0200 |
|---|---|---|
| committer | viciscat <51047087+viciscat@users.noreply.github.com> | 2024-06-02 13:26:45 +0200 |
| commit | 07a0b32d0d1eadce04963963975322a3a7a093cb (patch) | |
| tree | 3b4b516e5081400405cbe51abaa16d97f173a3b4 /src/main/java/de/hysky/skyblocker/config | |
| parent | c645892f94f9017b3685733c04520c47beedfed9 (diff) | |
| download | Skyblocker-07a0b32d0d1eadce04963963975322a3a7a093cb.tar.gz Skyblocker-07a0b32d0d1eadce04963963975322a3a7a093cb.tar.bz2 Skyblocker-07a0b32d0d1eadce04963963975322a3a7a093cb.zip | |
epic config
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/config')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/config/categories/EventNotificationsCategory.java | 43 |
1 files changed, 43 insertions, 0 deletions
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<OptionGroup> createGroups(SkyblockerConfig config) { + Map<String, List<Integer>> eventsReminderTimes = config.eventNotifications.eventsReminderTimes; + List<OptionGroup> groups = new ArrayList<>(eventsReminderTimes.size()); + 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 + .initial(60) + .collapsed(true) + .build() + ); + } + return groups; + } +} |
