aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/config
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/config')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/Features.java4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/Storage.java29
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt15
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Bazaar.java5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/GhostCounter.java324
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Misc.java89
6 files changed, 416 insertions, 50 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/Features.java b/src/main/java/at/hannibal2/skyhanni/config/Features.java
index 9a65ead70..d80195e71 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/Features.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/Features.java
@@ -116,6 +116,10 @@ public class Features extends Config {
public Garden garden = new Garden();
@Expose
+ @Category(name = "Ghost Counter", desc = "Ghost Counter settings.")
+ public GhostCounter ghostCounter = new GhostCounter();
+
+ @Expose
@Category(name = "Misc", desc = "Settings without a category.")
public Misc misc = new Misc();
diff --git a/src/main/java/at/hannibal2/skyhanni/config/Storage.java b/src/main/java/at/hannibal2/skyhanni/config/Storage.java
index f853d4a8d..0a63e5928 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/Storage.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/Storage.java
@@ -5,6 +5,7 @@ import at.hannibal2.skyhanni.features.garden.CropAccessory;
import at.hannibal2.skyhanni.features.garden.CropType;
import at.hannibal2.skyhanni.features.garden.fortuneguide.FarmingItems;
import at.hannibal2.skyhanni.features.garden.visitor.VisitorReward;
+import at.hannibal2.skyhanni.features.misc.GhostCounter.Option;
import at.hannibal2.skyhanni.utils.LorenzVec;
import com.google.gson.annotations.Expose;
import net.minecraft.item.ItemStack;
@@ -204,6 +205,33 @@ public class Storage {
}
@Expose
+ public GhostCounter ghostCounter = new GhostCounter();
+
+ public static class GhostCounter {
+
+ @Expose
+ public Map<Option, Double> data = new HashMap<>();
+
+ @Expose
+ public boolean ctDataImported = false;
+
+ @Expose
+ public double bestiaryNextLevel = 0;
+
+ @Expose
+ public double bestiaryCurrentKill = 0;
+
+ @Expose
+ public double bestiaryKillNeeded = 0;
+
+ @Expose
+ public double totalMF = 0;
+
+ }
+
+ public long nextCityProjectParticipationTime = 0L;
+
+ @Expose
public Map<String, SlayerProfitList> slayerProfitData = new HashMap<>();
public static class SlayerProfitList {
@@ -231,6 +259,5 @@ public class Storage {
public boolean hidden;
}
}
-
}
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt b/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt
index d49ddf345..ebcb72d28 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt
+++ b/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt
@@ -20,6 +20,7 @@ import at.hannibal2.skyhanni.features.garden.fortuneguide.FFGuideGUI
import at.hannibal2.skyhanni.features.minion.MinionFeatures
import at.hannibal2.skyhanni.features.misc.CityProjectFeatures
import at.hannibal2.skyhanni.features.misc.CollectionCounter
+import at.hannibal2.skyhanni.features.misc.GhostCounter
import at.hannibal2.skyhanni.features.misc.MarkedPlayerManager
import at.hannibal2.skyhanni.features.misc.discordrpc.DiscordRPCManager
import at.hannibal2.skyhanni.features.slayer.SlayerItemProfitTracker
@@ -51,7 +52,7 @@ object Commands {
// main commands
registerCommand("sh", openMainMenu)
registerCommand("skyhanni", openMainMenu)
-
+
registerCommand("ff") { openFortuneGuide() }
// for users - regular commands
@@ -65,6 +66,7 @@ object Commands {
registerCommand("shcropstartlocation") { GardenStartLocation.setLocationCommand() }
registerCommand("shstopcityprojectreminder") { CityProjectFeatures.disable() }
registerCommand("shclearslayerprofits") { SlayerItemProfitTracker.clearProfitCommand(it) }
+ registerCommand("shimportghostcounterdata") { GhostCounter.importCTGhostCounterData() }
registerCommand("shclearfarmingitems") { clearFarmingItems() }
// for users - fix bugs
@@ -100,8 +102,9 @@ object Commands {
registerCommand("shcopyerror") { CopyErrorCommand.command(it) }
}
+
@JvmStatic
- fun openFortuneGuide() {
+ fun openFortuneGuide() {
if (!LorenzUtils.inSkyBlock) {
LorenzUtils.chat("§cJoin Skyblock to open the fortune guide!")
} else {
@@ -122,9 +125,9 @@ object Commands {
}
private fun createCommand(function: (Array<String>) -> Unit) =
- object : ProcessCommandRunnable() {
- override fun processCommand(sender: ICommandSender?, args: Array<out String>) {
- function(args.asList().toTypedArray())
+ object : ProcessCommandRunnable() {
+ override fun processCommand(sender: ICommandSender?, args: Array<out String>) {
+ function(args.asList().toTypedArray())
+ }
}
- }
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Bazaar.java b/src/main/java/at/hannibal2/skyhanni/config/features/Bazaar.java
index bfc1fdd90..f357e76fd 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Bazaar.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Bazaar.java
@@ -8,6 +8,11 @@ import io.github.moulberry.moulconfig.annotations.ConfigOption;
public class Bazaar {
@Expose
+ @ConfigOption(name = "Purchase Helper", desc = "Highlights the item you are trying to buy in the Bazaar.")
+ @ConfigEditorBoolean
+ public boolean purchaseHelper = true;
+
+ @Expose
@ConfigOption(name = "Order Helper", desc = "Show visual hints inside the Bazaar Manage Order view when items are ready to pickup or outbid.")
@ConfigEditorBoolean
public boolean orderHelper = false;
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/GhostCounter.java b/src/main/java/at/hannibal2/skyhanni/config/features/GhostCounter.java
new file mode 100644
index 000000000..955253f96
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/GhostCounter.java
@@ -0,0 +1,324 @@
+package at.hannibal2.skyhanni.config.features;
+
+import at.hannibal2.skyhanni.config.core.config.Position;
+import com.google.gson.annotations.Expose;
+import io.github.moulberry.moulconfig.annotations.*;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class GhostCounter {
+
+ @Expose
+ @ConfigOption(name = "Enabled", desc = "Enable ghost counter.")
+ @ConfigEditorBoolean
+ public boolean enabled = true;
+
+ @Expose
+ @ConfigOption(
+ name = "Display Text",
+ desc = "Drag text to change the appearance of the overlay."
+ )
+ @ConfigEditorDraggableList(
+ exampleText = {
+ "§6Ghosts Counter",
+ " §bGhost Killed: 42",
+ " §bSorrow: 6",
+ " §bGhost since Sorrow: 1",
+ " §bGhosts/Sorrow: 5",
+ " §bVolta: 6",
+ " §bPlasma: 8",
+ " §bGhostly Boots: 1",
+ " §bBag Of Cash: 4",
+ " §bAvg Magic Find: 271",
+ " §bScavenger Coins: 15,000",
+ " §bKill Combo: 14",
+ " §bHighest Kill Combo: 96",
+ " §bSkill XP Gained: 145,648",
+ " §bBestiary 1: 0/10",
+ " §bXP/h: 810,410",
+ " §bKills/h: 420",
+ " §bETA: 14d",
+ " §bMoney/h: 13,420,069"
+ }
+ )
+ public List<Integer> ghostDisplayText = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 9, 10, 11, 12));
+
+ @ConfigOption(name = "Text Formatting", desc = "")
+ @Accordion
+ @Expose
+ public TextFormatting textFormatting = new TextFormatting();
+
+ public static class TextFormatting {
+
+ @ConfigOption(name = "§eText Formatting Info", desc = "§e%session% §ris §e§lalways §rreplaced with\n" +
+ "§7the count for your current session.\n" +
+ "§7Reset when restarting the game.\n" +
+ "§7You can use §e&Z §7color code to use SBA chroma")
+ @ConfigEditorInfoText
+ public boolean formatInfo = false;
+
+ @ConfigOption(name = "Reset Formatting", desc = "Reset formatting to default text.")
+ @ConfigEditorButton(buttonText = "Reset")
+ public Runnable resetFormatting = at.hannibal2.skyhanni.features.misc.GhostCounter.INSTANCE::resetFormatting;
+
+ @ConfigOption(name = "Export Formatting", desc = "Export current formatting to clipboard.")
+ @ConfigEditorButton(buttonText = "Export")
+ public Runnable exportFormatting = at.hannibal2.skyhanni.features.misc.GhostCounter.INSTANCE::exportFormatting;
+
+ @ConfigOption(name = "Import Formatting", desc = "Import formatting from clipboard.")
+ @ConfigEditorButton(buttonText = "Import")
+ public Runnable importFormatting = at.hannibal2.skyhanni.features.misc.GhostCounter.INSTANCE::importFormatting;
+
+ @Expose
+ @ConfigOption(name = "Title", desc = "Title Line.")
+ @ConfigEditorText
+ public String titleFormat = "&6Ghost Counter";
+
+ @Expose
+ @ConfigOption(name = "Ghost Killed", desc = "Ghost Killed line.\n§e%value% §ris replaced with\n" +
+ "Ghost Killed.\n" +
+ "§e%session% §7is replaced with Ghost killed")
+ @ConfigEditorText
+ public String ghostKilledFormat = " &6Ghost Killed: &b%value% &7(%session%)";
+
+ @Expose
+ @ConfigOption(name = "Sorrows", desc = "Sorrows drop line.\n" +
+ "§e%value% §7is replaced with\nsorrows dropped.")
+ @ConfigEditorText
+ public String sorrowsFormat = " &6Sorrow: &b%value% &7(%session%)";
+
+ @Expose
+ @ConfigOption(name = "Ghost Since Sorrow", desc = "Ghost Since Sorrow line.\n" +
+ "§e%value% §7is replaced with\nGhost since last sorrow drop.")
+ @ConfigEditorText
+ public String ghostSinceSorrowFormat = " &6Ghost since Sorrow: &b%value%";
+
+ @Expose
+ @ConfigOption(name = "Ghost Kill Per Sorrow", desc = "Ghost Kill Per Sorrow line.\n" +
+ "§e%value% §7is replaced with\naverage ghost kill per sorrow drop.")
+ @ConfigEditorText
+ public String ghostKillPerSorrowFormat = " &6Ghosts/Sorrow: &b%value%";
+
+ @Expose
+ @ConfigOption(name = "Voltas", desc = "Voltas drop line.\n" +
+ "§e%value% §7is replaced with\nvoltas dropped.")
+ @ConfigEditorText
+ public String voltasFormat = " &6Voltas: &b%value% &7(%session%)";
+
+ @Expose
+ @ConfigOption(name = "Plasmas", desc = "Plasmas drop line.\n" +
+ "§e%value% §7is replaced with\nplasmas dropped.")
+ @ConfigEditorText
+ public String plasmasFormat = " &6Plasmas: &b%value% &7(%session%)";
+
+ @Expose
+ @ConfigOption(name = "Ghostly Boots", desc = "Ghostly Boots drop line.\n" +
+ "§e%value% §7is replaced with\nGhostly Boots dropped.")
+ @ConfigEditorText
+ public String ghostlyBootsFormat = " &6Ghostly Boots: &b%value% &7(%session%)";
+
+ @Expose
+ @ConfigOption(name = "Bag Of Cash", desc = "Bag Of Cash drop line.\n" +
+ "§e%value% §7is replaced with\nBag Of Cash dropped.")
+ @ConfigEditorText
+ public String bagOfCashFormat = " &6Bag Of Cash: &b%value% &7(%session%)";
+
+ @Expose
+ @ConfigOption(name = "Average Magic Find", desc = "Average Magic Find line.\n" +
+ "§e%value% §7is replaced with\nAverage Magic Find.")
+ @ConfigEditorText
+ public String avgMagicFindFormat = " &6Avg Magic Find: &b%value%";
+
+ @Expose
+ @ConfigOption(name = "Scavenger Coins", desc = "Scavenger Coins line.\n" +
+ "§e%value% §7is replaced with\nCoins earned from kill ghosts.\nInclude: Scavenger Enchant, Scavenger Talismans, Kill Combo.")
+ @ConfigEditorText
+ public String scavengerCoinsFormat = " &6Scavenger Coins: &b%value% &7(%session%)";
+
+ @Expose
+ @ConfigOption(name = "Kill Combo", desc = "Kill Combo line.\n" +
+ "§e%value% §7is replaced with\nYour current kill combo.")
+ @ConfigEditorText
+ public String killComboFormat = " &6Kill Combo: &b%value%";
+
+ @Expose
+ @ConfigOption(name = "Highest Kill Combo", desc = "Highest Kill Combo line.\n" +
+ "§e%value% §7is replaced with\nYour current highest kill combo.")
+ @ConfigEditorText
+ public String highestKillComboFormat = " &6Highest Kill Combo: &b%value% &7(%session%)";
+
+ @Expose
+ @ConfigOption(name = "Skill XP Gained", desc = "Skill XP Gained line.\n" +
+ "§e%value% §7is replaced with\nSkill XP Gained from killing Ghosts.")
+ @ConfigEditorText
+ public String skillXPGainFormat = " &6Skill XP Gained: &b%value% &7(%session%)";
+
+ @ConfigOption(name = "Bestiary Formatting", desc = "")
+ @Accordion
+ @Expose
+ public BestiaryFormatting bestiaryFormatting = new BestiaryFormatting();
+
+ public static class BestiaryFormatting {
+
+ @Expose
+ @ConfigOption(name = "Bestiary", desc = "Bestiary Progress line.\n§e%value% §7is replaced with\n" +
+ "Your current progress to next level.\n" +
+ "§e%currentLevel% &7is replaced with your current bestiary level\n" +
+ "§e%nextLevel% §7is replaced with your current bestiary level +1.\n" +
+ "§e%value% §7is replaced with one of the text below.")
+ @ConfigEditorText
+ public String base = " &6Bestiary %currentLevel%->%nextLevel%: &b%value%";
+
+ @Expose
+ @ConfigOption(name = "No Data", desc = "Text to show when you need to open the\nBestiary Menu to gather data.")
+ @ConfigEditorText
+ public String openMenu = "§cOpen Bestiary Menu !";
+
+ @Expose
+ @ConfigOption(name = "Maxed", desc = "Text to show when your bestiary for ghost is at max level.\n" +
+ "§e%currentKill% §7is replaced with your current total kill.")
+ @ConfigEditorText
+ public String maxed = "%currentKill% (&c&lMaxed!)";
+
+ @Expose
+ @ConfigOption(name = "Progress to Max", desc = "Text to show progress when the §eMaxed Bestiary §7option is §aON\n" +
+ "§e%currentKill% §7is replaced with your current total kill.")
+ @ConfigEditorText
+ public String showMax_progress = "%currentKill%/3M (%percentNumber%%)";
+
+ @Expose
+ @ConfigOption(name = "Progress", desc = "Text to show progress when the §eMaxed Bestiary§7 option is §cOFF\n" +
+ "§e%currentKill% §7is replaced with how many kill you have to the next level.\n" +
+ "§e%killNeeded% §7is replaced with how many kill you need to reach the next level.")
+ @ConfigEditorText
+ public String progress = "%currentKill%/%killNeeded%";
+ }
+
+
+ @ConfigOption(name = "XP Per Hour Formatting", desc = "")
+ @Accordion
+ @Expose
+ public XPHourFormatting xpHourFormatting = new XPHourFormatting();
+
+ public static class XPHourFormatting {
+
+ @Expose
+ @ConfigOption(name = "XP/h", desc = "XP Per Hour line.\n" +
+ "§e%value% §7is replaced with one of the text below.")
+ @ConfigEditorText
+ public String base = " &6XP/h: &b%value%";
+
+ @Expose
+ @ConfigOption(name = "No Data", desc = "XP Per Hour line.\n§e%value% §7is replaced with\nEstimated amount of combat xp you gain per hour.")
+ @ConfigEditorText
+ public String noData = "&bN/A";
+
+ @Expose
+ @ConfigOption(name = "Paused", desc = "Text displayed next to the time \n" +
+ "when you are doing nothing for a given amount of seconds")
+ @ConfigEditorText
+ public String paused = "&c(PAUSED)";
+ }
+
+
+ @ConfigOption(name = "ETA Formatting", desc = "")
+ @Accordion
+ @Expose
+ public ETAFormatting etaFormatting = new ETAFormatting();
+
+ public static class ETAFormatting {
+ @Expose
+ @ConfigOption(name = "ETA to next level", desc = "ETA To Next Level Line.\n" +
+ "§e%value% §7is replaced with one of the text below.")
+ @ConfigEditorText
+ public String base = " &6ETA: &b%value%";
+
+ @Expose
+ @ConfigOption(name = "Maxed!", desc = "So you really maxed ghost bestiary ?")
+ @ConfigEditorText
+ public String maxed = "&c&lMAXED!";
+
+ @Expose
+ @ConfigOption(name = "No Data", desc = "Start killing some ghosts !")
+ @ConfigEditorText
+ public String noData = "&bN/A";
+
+ @Expose
+ @ConfigOption(name = "Progress", desc = "Text to show progress to next level.")
+ @ConfigEditorText
+ public String progress = "&b%value%";
+
+ @Expose
+ @ConfigOption(name = "Paused", desc = "Text displayed next to the time \n" +
+ "when you are doing nothing for a given amount of seconds")
+ @ConfigEditorText
+ public String paused = "&c(PAUSED)";
+ }
+
+ @ConfigOption(name = "Kill Per Hour Formatting", desc = "")
+ @Expose
+ @Accordion
+ public KillHourFormatting killHourFormatting = new KillHourFormatting();
+
+ public static class KillHourFormatting {
+ @Expose
+ @ConfigOption(name = "Kill/h", desc = "Kill Per Hour line.\n§e%value% §7is replaced with\nEstimated kills per hour you get.")
+ @ConfigEditorText
+ public String base = " &6Kill/h: &b%value%";
+
+ @Expose
+ @ConfigOption(name = "No Data", desc = "Start killing some ghosts !")
+ @ConfigEditorText
+ public String noData = "&bN/A";
+
+ @Expose
+ @ConfigOption(name = "Paused", desc = "Text displayed next to the time \n" +
+ "when you are doing nothing for a given amount of seconds")
+ @ConfigEditorText
+ public String paused = "&c(PAUSED)";
+ }
+
+ @Expose
+ @ConfigOption(name = "Money Per Hour", desc = "Money Per Hour.\n§e%value% §7is replaced with\nEstimated money you get per hour\n" +
+ "Calculated with your kill per hour and your average magic find.")
+ @ConfigEditorText
+ public String moneyHourFormat = " &6$/h: &b%value%";
+ }
+
+ @Expose
+ @ConfigOption(name = "Extra space", desc = "Space between each line of text.")
+ @ConfigEditorSlider(
+ minValue = -5,
+ maxValue = 10,
+ minStep = 1)
+ public int extraSpace = 1;
+
+ @Expose
+ @ConfigOption(name = "Pause Timer", desc = "How many seconds does it wait before pausing.")
+ @ConfigEditorSlider(
+ minValue = 1,
+ maxValue = 20,
+ minStep = 1
+ )
+ public int pauseTimer = 3;
+
+ @Expose
+ @ConfigOption(name = "Show only in The Mist", desc = "Show the overlay only when you are in The Mist.")
+ @ConfigEditorBoolean
+ public boolean onlyOnMist = true;
+
+ @Expose
+ @ConfigOption(name = "Maxed Bestiary", desc = "Show progress to max bestiary instead of next level.")
+ @ConfigEditorBoolean
+ public boolean showMax = false;
+
+ @ConfigOption(name = "Reset", desc = "Reset the counter.")
+ @ConfigEditorButton(buttonText = "Reset")
+ public Runnable resetCounter = at.hannibal2.skyhanni.features.misc.GhostCounter.INSTANCE::reset;
+
+ @Expose
+ public Position position = new Position(50, 50, false, true);
+
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java b/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java
index f5a08521d..f0d5b7d7b 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java
@@ -1,10 +1,13 @@
package at.hannibal2.skyhanni.config.features;
-import at.hannibal2.skyhanni.config.core.config.Position;
-import com.google.gson.annotations.Expose;
+import at.hannibal2.skyhanni.config.core.config.*;
+import com.google.gson.annotations.*;
import io.github.moulberry.moulconfig.annotations.*;
-import io.github.moulberry.moulconfig.observer.Property;
-import org.lwjgl.input.Keyboard;
+import io.github.moulberry.moulconfig.observer.*;
+import org.lwjgl.input.*;
+
+import java.util.ArrayList;
+import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
@@ -263,38 +266,38 @@ public class Misc {
@Expose
@ConfigOption(name = "First Line", desc = "Decide what to show in the first line.")
@ConfigEditorDropdown(values = {
- "Nothing",
- "Location",
- "Purse",
- "Bits",
- "Stats",
- "Held Item",
- "Skyblock Date",
- "Profile (Fruit)",
- "Slayer",
- "Custom",
- "Dynamic",
- "Crop Milestone",
- "Current Pet"
+ "Nothing",
+ "Location",
+ "Purse",
+ "Bits",
+ "Stats",
+ "Held Item",
+ "Skyblock Date",
+ "Profile",
+ "Slayer",
+ "Custom",
+ "Dynamic",
+ "Crop Milestone",
+ "Current Pet"
})
public Property<Integer> firstLine = Property.of(0);
@Expose
@ConfigOption(name = "Second Line", desc = "Decide what to show in the second line.")
@ConfigEditorDropdown(values = {
- "Nothing",
- "Location",
- "Purse",
- "Bits",
- "Stats",
- "Held Item",
- "Skyblock Date",
- "Profile (Fruit)",
- "Slayer",
- "Custom",
- "Dynamic",
- "Crop Milestone",
- "Current Pet"
+ "Nothing",
+ "Location",
+ "Purse",
+ "Bits",
+ "Stats",
+ "Held Item",
+ "Skyblock Date",
+ "Profile",
+ "Slayer",
+ "Custom",
+ "Dynamic",
+ "Crop Milestone",
+ "Current Pet"
})
public Property<Integer> secondLine = Property.of(0);
@@ -304,20 +307,20 @@ public class Misc {
public Property<String> customText = Property.of("");
@Expose
- @ConfigOption(name = "Dynamic", desc = "\"Dynamic\" above shows your Crop Milestone or Slayer progress while doing those, but this if you're doing neither.")
+ @ConfigOption(name = "Dynamic", desc = "\"Dynamic\" above shows your Crop Milestone, Slayer progress, or Stacking enchantment when possible, but this if you're doing none of them.")
@ConfigEditorDropdown(values = {
- "Nothing",
- "Location",
- "Purse",
- "Bits",
- "Stats",
- "Held Item",
- "Skyblock Date",
- "Profile (Fruit)",
- "Slayer",
- "Custom",
- "Crop Milestone",
- "Current Pet"
+ "Nothing",
+ "Location",
+ "Purse",
+ "Bits",
+ "Stats",
+ "Held Item",
+ "Skyblock Date",
+ "Profile",
+ "Slayer",
+ "Custom",
+ "Crop Milestone",
+ "Current Pet"
})
public Property<Integer> auto = Property.of(0);
}