package de.hysky.skyblocker.config;
import de.hysky.skyblocker.SkyblockerMod;
import de.hysky.skyblocker.skyblock.item.CustomArmorTrims;
import de.hysky.skyblocker.utils.chat.ChatFilterResult;
import de.hysky.skyblocker.utils.waypoint.Waypoint;
import dev.isxander.yacl3.config.v2.api.SerialEntry;
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier;
import java.util.ArrayList;
import java.util.List;
public class SkyblockerConfig {
@SerialEntry
public int version = 1;
@SerialEntry
public General general = new General();
@SerialEntry
public Locations locations = new Locations();
@SerialEntry
public Slayer slayer = new Slayer();
@SerialEntry
public QuickNav quickNav = new QuickNav();
@SerialEntry
public Messages messages = new Messages();
@SerialEntry
public RichPresence richPresence = new RichPresence();
public static class QuickNav {
@SerialEntry
public boolean enableQuickNav = true;
@SerialEntry
public QuickNavItem button1 = new QuickNavItem(true, new ItemData("diamond_sword"), "Your Skills", "/skills");
@SerialEntry
public QuickNavItem button2 = new QuickNavItem(true, new ItemData("painting"), "Collections", "/collection");
/* REGEX Explanation
* "Pets" : simple match on letters
* "(?: \\(\\d+\\/\\d+\\))?" : optional match on the non-capturing group for the page in the format " ($number/$number)"
*/
@SerialEntry
public QuickNavItem button3 = new QuickNavItem(true, new ItemData("bone"), "Pets(:? \\(\\d+\\/\\d+\\))?", "/pets");
/* REGEX Explanation
* "Wardrobe" : simple match on letters
* " \\([12]\\/2\\)" : match on the page either " (1/2)" or " (2/2)"
*/
@SerialEntry
public QuickNavItem button4 = new QuickNavItem(true,
new ItemData("leather_chestplate", 1, "tag:{display:{color:8991416}}"), "Wardrobe \\([12]/2\\)",
"/wardrobe");
@SerialEntry
public QuickNavItem button5 = new QuickNavItem(true, new ItemData("player_head", 1,
"tag:{SkullOwner:{Id:[I;-2081424676,-57521078,-2073572414,158072763],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTU5MTMxMDU4NTYwOSwKICAicHJvZmlsZUlkIiA6ICI0MWQzYWJjMmQ3NDk0MDBjOTA5MGQ1NDM0ZDAzODMxYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJNZWdha2xvb24iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODBhMDc3ZTI0OGQxNDI3NzJlYTgwMDg2NGY4YzU3OGI5ZDM2ODg1YjI5ZGFmODM2YjY0YTcwNjg4MmI2ZWMxMCIKICAgIH0KICB9Cn0=\"}]}}}"),
"Sack of Sacks", "/sacks");
/* REGEX Explanation
* "(?:Rift )?" : optional match on the non-capturing group "Rift "
* "Storage" : simple match on letters
* "(?: \\([12]\\/2\\))?" : optional match on the non-capturing group " (1/2)" or " (2/2)"
*/
@SerialEntry
public QuickNavItem button6 = new QuickNavItem(true, new ItemData("ender_chest"),
"(?:Rift )?Storage(?: \\(1/2\\))?", "/storage");
@SerialEntry
public QuickNavItem button7 = new QuickNavItem(true, new ItemData("player_head", 1,
"tag:{SkullOwner:{Id:[I;-300151517,-631415889,-1193921967,-1821784279],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0=\"}]}}}"),
"none", "/hub");
@SerialEntry
public QuickNavItem button8 = new QuickNavItem(