aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
authorakarahdev <endisticbutitsforgit@gmail.com>2024-01-20 15:40:32 -0500
committerakarahdev <endisticbutitsforgit@gmail.com>2024-01-22 20:27:15 -0500
commitb00506f518135dd4d062a311908e4506390513db (patch)
tree8a675db658c7ab9c67f9f86d1710968a3e28a756 /src/main/java/de
parent954ccdb5ef1c0cbe658bfae43edd9cf832854ead (diff)
downloadSkyblocker-b00506f518135dd4d062a311908e4506390513db.tar.gz
Skyblocker-b00506f518135dd4d062a311908e4506390513db.tar.bz2
Skyblocker-b00506f518135dd4d062a311908e4506390513db.zip
again!
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java1501
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/end/BeaconHighlighter.java13
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java245
4 files changed, 871 insertions, 899 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
index b8606b87..5cc0f1b8 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
@@ -17,1008 +17,997 @@ 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(true, new ItemData("player_head", 1,
- "tag:{SkullOwner:{Id:[I;1605800870,415127827,-1236127084,15358548],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg5MWQ1YjI3M2ZmMGJjNTBjOTYwYjJjZDg2ZWVmMWM0MGExYjk0MDMyYWU3MWU3NTQ3NWE1NjhhODI1NzQyMSJ9fX0=\"}]}}}"),
- "none", "/warp dungeon_hub");
+ @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 button9 = new QuickNavItem(true, new ItemData("player_head", 1,
- "tag:{SkullOwner:{Id:[I;-562285948,532499670,-1705302742,775653035],Properties:{textures:[{Value:\"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjVkZjU1NTkyNjQzMGQ1ZDc1YWRlZDIxZGQ5NjE5Yjc2YzViN2NhMmM3ZjU0MDE0NDA1MjNkNTNhOGJjZmFhYiJ9fX0=\"}]}}}"),
- "Visit prtl", "/visit prtl");
-
- @SerialEntry
- public QuickNavItem button10 = new QuickNavItem(true, new ItemData("enchanting_table"), "Enchant Item",
- "/etable");
+ @SerialEntry
+ public QuickNavItem button8 = new QuickNavItem(true, new ItemData("player_head", 1,
+ "tag:{SkullOwner:{Id:[I;1605800870,415127827,-1236127084,15358548],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg5MWQ1YjI3M2ZmMGJjNTBjOTYwYjJjZDg2ZWVmMWM0MGExYjk0MDMyYWU3MWU3NTQ3NWE1NjhhODI1NzQyMSJ9fX0=\"}]}}}"),
+ "none", "/warp dungeon_hub");
- @SerialEntry
- public QuickNavItem button11 = new QuickNavItem(true, new ItemData("anvil"), "Anvil", "/anvil");
+ @SerialEntry
+ public QuickNavItem button9 = new QuickNavItem(true, new ItemData("player_head", 1,
+ "tag:{SkullOwner:{Id:[I;-562285948,532499670,-1705302742,775653035],Properties:{textures:[{Value:\"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjVkZjU1NTkyNjQzMGQ1ZDc1YWRlZDIxZGQ5NjE5Yjc2YzViN2NhMmM3ZjU0MDE0NDA1MjNkNTNhOGJjZmFhYiJ9fX0=\"}]}}}"),
+ "Visit prtl", "/visit prtl");
- @SerialEntry
- public QuickNavItem button12 = new QuickNavItem(true, new ItemData("crafting_table"), "Craft Item", "/craft");
- }
+ @SerialEntry
+ public QuickNavItem button10 = new QuickNavItem(true, new ItemData("enchanting_table"), "Enchant Item",
+ "/etable");
- public static class QuickNavItem {
- public QuickNavItem(Boolean render, ItemData itemData, String uiTitle, String clickEvent) {
- this.render = render;
- this.item = itemData;
- this.clickEvent = clickEvent;
- this.uiTitle = uiTitle;
- }
+ @SerialEntry
+ public QuickNavItem button11 = new QuickNavItem(true, new ItemData("anvil"), "Anvil", "/anvil");
- @SerialEntry
- public Boolean render;
+ @SerialEntry
+ public QuickNavItem button12 = new QuickNavItem(true, new ItemData("crafting_table"), "Craft Item", "/craft");
+ }
- @SerialEntry
- public ItemData item;
+ public static class QuickNavItem {
+ public QuickNavItem(Boolean render, ItemData itemData, String uiTitle, String clickEvent) {
+ this.render = render;
+ this.item = itemData;
+ this.clickEvent = clickEvent;
+ this.uiTitle = uiTitle;
+ }
- @SerialEntry
- public String uiTitle;
+ @SerialEntry
+ public Boolean render;
- @SerialEntry
- public String clickEvent;
- }
+ @SerialEntry
+ public ItemData item;
- public static class ItemData {
- public ItemData(String itemName, int count, String nbt) {
- this.itemName = itemName;
- this.count = count;
- this.nbt = nbt;
- }
+ @SerialEntry
+ public String uiTitle;
- public ItemData(String itemName) {
- this.itemName = itemName;
- this.count = 1;
- this.nbt = "";
- }
+ @SerialEntry
+ public String clickEvent;
+ }
- @SerialEntry
- public String itemName;
+ public static class ItemData {
+ public ItemData(String itemName, int count, String nbt) {
+ this.itemName = itemName;
+ this.count = count;
+ this.nbt = nbt;
+ }
- @SerialEntry
- public int count;
+ public ItemData(String itemName) {
+ this.itemName = itemName;
+ this.count = 1;
+ this.nbt = "";
+ }
- @SerialEntry
- public String nbt;
- }
+ @SerialEntry
+ public String itemName;
- public static class General {
- @SerialEntry
- public boolean enableTips = true;
+ @SerialEntry
+ public int count;
- @SerialEntry
- public boolean acceptReparty = true;
+ @SerialEntry
+ public String nbt;
+ }
- @SerialEntry
- public boolean betterPartyFinder = true;
+ public static class General {
+ @SerialEntry
+ public boolean enableTips = true;
- @SerialEntry
- public boolean backpackPreviewWithoutShift = false;
+ @SerialEntry
+ public boolean acceptReparty = true;
- @SerialEntry
- public boolean compactorDeletorPreview = true;
+ @SerialEntry
+ public boolean betterPartyFinder = true;
- @SerialEntry
- public boolean hideEmptyTooltips = true;
+ @SerialEntry
+ public boolean backpackPreviewWithoutShift = false;
- @SerialEntry
- public boolean hideStatusEffectOverlay = false;
-
- @SerialEntry
- public boolean dontStripSkinAlphaValues = true;
+ @SerialEntry
+ public boolean compactorDeletorPreview = true;
- @SerialEntry
- public TabHudConf tabHud = new TabHudConf();
+ @SerialEntry
+ public boolean hideEmptyTooltips = true;
- @SerialEntry
- public Bars bars = new Bars();
+ @SerialEntry
+ public boolean hideStatusEffectOverlay = false;
- @SerialEntry
- public Experiments experiments = new Experiments();
+ @SerialEntry
+ public boolean dontStripSkinAlphaValues = true;
- @SerialEntry
- public Fishing fishing = new Fishing();
+ @SerialEntry
+ public TabHudConf tabHud = new TabHudConf();
- @SerialEntry
- public FairySouls fairySouls = new FairySouls();
+ @SerialEntry
+ public Bars bars = new Bars();
- @SerialEntry
- public MythologicalRitual mythologicalRitual = new MythologicalRitual();
+ @SerialEntry
+ public Experiments experiments = new Experiments();
- @SerialEntry
- public ItemCooldown itemCooldown = new ItemCooldown();
+ @SerialEntry
+ public Fishing fishing = new Fishing();
- @SerialEntry
- public Shortcuts shortcuts = new Shortcuts();
+ @SerialEntry
+ public FairySouls fairySouls = new FairySouls();
- @SerialEntry
- public Waypoints waypoints = new Waypoints();
+ @SerialEntry
+ public MythologicalRitual mythologicalRitual = new MythologicalRitual();
- @SerialEntry
- public QuiverWarning quiverWarning = new QuiverWarning();
+ @SerialEntry
+ public ItemCooldown itemCooldown = new ItemCooldown();
- @SerialEntry
- public ItemList itemList = new ItemList();
+ @SerialEntry
+ public Shortcuts shortcuts = new Shortcuts();
- @SerialEntry
- public ItemTooltip itemTooltip = new ItemTooltip();
+ @SerialEntry
+ public Waypoints waypoints = new Waypoints();
- @SerialEntry
- public ItemInfoDisplay itemInfoDisplay = new ItemInfoDisplay();
+ @SerialEntry
+ public QuiverWarning quiverWarning = new QuiverWarning();
- @SerialEntry
- public WikiLookup wikiLookup = new WikiLookup();
+ @SerialEntry
+ public ItemList itemList = new ItemList();
- @SerialEntry
- public ChestValue chestValue = new ChestValue();
+ @SerialEntry
+ public ItemTooltip itemTooltip = new ItemTooltip();
- @SerialEntry
- public SpecialEffects specialEffects = new SpecialEffects();
+ @SerialEntry
+ public ItemInfoDisplay itemInfoDisplay = new ItemInfoDisplay();
- @SerialEntry
- public Hitbox hitbox = new Hitbox();
+ @SerialEntry
+ public WikiLookup wikiLookup = new WikiLookup();
- @SerialEntry
- public TitleContainer titleContainer = new TitleContainer();
+ @SerialEntry
+ public ChestValue chestValue = new ChestValue();
- @SerialEntry
- public TeleportOverlay teleportOverlay = new TeleportOverlay();
+ @SerialEntry
+ public SpecialEffects specialEffects = new SpecialEffects();
- @SerialEntry
- public FlameOverlay flameOverlay = new FlameOverlay();
+ @SerialEntry
+ public Hitbox hitbox = new Hitbox();
- @SerialEntry
- public List<Integer> lockedSlots = new ArrayList<>();
+ @SerialEntry
+ public TitleContainer titleContainer = new TitleContainer();
- @SerialEntry
- public ObjectOpenHashSet<String> protectedItems = new ObjectOpenHashSet<>();
+ @SerialEntry
+ public TeleportOverlay teleportOverlay = new TeleportOverlay();
- @SerialEntry
- public Object2ObjectOpenHashMap<String, Text> customItemNames = new Object2ObjectOpenHashMap<>();
+ @SerialEntry
+ public FlameOverlay flameOverlay = new FlameOverlay();
- @SerialEntry
- public Object2IntOpenHashMap<String> customDyeColors = new Object2IntOpenHashMap<>();
+ @SerialEntry
+ public List<Integer> lockedSlots = new ArrayList<>();
- @SerialEntry
- public Object2ObjectOpenHashMap<String, CustomArmorTrims.ArmorTrimId> customArmorTrims = new Object2ObjectOpenHashMap<>();
- }
+ @SerialEntry
+ public ObjectOpenHashSet<String> protectedItems = new ObjectOpenHashSet<>();
- public static class TabHudConf {
- @SerialEntry
- public boolean tabHudEnabled = true;
+ @SerialEntry
+ public Object2ObjectOpenHashMap<String, Text> customItemNames = new Object2ObjectOpenHashMap<>();
- @SerialEntry
- public int tabHudScale = 100;
+ @SerialEntry
+ public Object2IntOpenHashMap<String> customDyeColors = new Object2IntOpenHashMap<>();
- @SerialEntry
- public boolean plainPlayerNames = false;
+ @SerialEntry
+ public Object2ObjectOpenHashMap<String, CustomArmorTrims.ArmorTrimId> customArmorTrims = new Object2ObjectOpenHashMap<>();
+ }
- @SerialEntry
- public NameSorting nameSorting = NameSorting.DEFAULT;
- }
+ public static class TabHudConf {
+ @SerialEntry
+ public boolean tabHudEnabled = true;
- public enum NameSorting {
- DEFAULT, ALPHABETICAL;
+ @SerialEntry
+ public int tabHudScale = 100;
- @Override
- public String toString() {
- return switch (this) {
- case DEFAULT -> "Default";
- case ALPHABETICAL -> "Alphabetical";
- };
- }
- }
+ @SerialEntry
+ public boolean plainPlayerNames = false;
- public static class Bars {
- @SerialEntry
- public boolean enableBars = true;
+ @SerialEntry
+ public NameSorting nameSorting = NameSorting.DEFAULT;
+ }
- @SerialEntry
- public BarPositions barPositions = new BarPositions();
- }
+ public enum NameSorting {
+ DEFAULT, ALPHABETICAL;
- public static class BarPositions {
- @SerialEntry
- public BarPosition healthBarPosition = BarPosition.LAYER1;
+ @Override
+ public String toString() {
+ return switch (this) {
+ case DEFAULT -> "Default";
+ case ALPHABETICAL -> "Alphabetical";
+ };
+ }
+ }
- @SerialEntry
- public BarPosition manaBarPosition = BarPosition.LAYER1;
+ public static class Bars {
+ @SerialEntry
+ public boolean enableBars = true;
- @SerialEntry
- public BarPosition defenceBarPosition = BarPosition.LAYER1;
+ @SerialEntry
+ public BarPositions barPositions = new BarPositions();
+ }
- @SerialEntry
- public BarPosition experienceBarPosition = BarPosition.LAYER1;
+ public static class BarPositions {
+ @SerialEntry
+ public BarPosition healthBarPosition = BarPosition.LAYER1;
- }
+ @SerialEntry
+ public BarPosition manaBarPosition = BarPosition.LAYER1;
- public enum BarPosition {
- LAYER1, LAYER2, RIGHT, NONE;
+ @SerialEntry
+ public BarPosition defenceBarPosition = BarPosition.LAYER1;
- @Override
- public String toString() {
- return I18n.translate("text.autoconfig.skyblocker.option.general.bars.barpositions." + name());
- }
+ @SerialEntry
+ public BarPosition experienceBarPosition = BarPosition.LAYER1;
- public int toInt() {
- return switch (this) {
- case LAYER1 -> 0;
- case LAYER2 -> 1;
- case RIGHT -> 2;
- case NONE -> -1;
- };
- }
- }
+ }
- public static class Experiments {
- @SerialEntry
- public boolean enableChronomatronSolver = true;
+ public enum BarPosition {
+ LAYER1, LAYER2, RIGHT, NONE;
- @SerialEntry
- public boolean enableSuperpairsSolver = true;
+ @Override
+ public String toString() {
+ return I18n.translate("text.autoconfig.skyblocker.option.general.bars.barpositions." + name());
+ }
- @SerialEntry
- public boolean enableUltrasequencerSolver = true;
- }
+ public int toInt() {
+ return switch (this) {
+ case LAYER1 -> 0;
+ case LAYER2 -> 1;
+ case RIGHT -> 2;
+ case NONE -> -1;
+ };
+ }
+ }
- public static class Fishing {
- @SerialEntry
- public boolean enableFishingHelper = true;
- }
+ public static class Experiments {
+ @SerialEntry
+ public boolean enableChronomatronSolver = true;
- public static class FairySouls {
- @SerialEntry
- public boolean enableFairySoulsHelper = false;
+ @SerialEntry
+ public boolean enableSuperpairsSolver = true;
- @SerialEntry
- public boolean highlightFoundSouls = true;
+ @SerialEntry
+ public boolean enableUltrasequencerSolver = true;
+ }
- @SerialEntry
- public boolean highlightOnlyNearbySouls = false;
- }
+ public static class Fishing {
+ @SerialEntry
+ public boolean enableFishingHelper = true;
+ }
- public static class MythologicalRitual {
- @SerialEntry
- public boolean enableMythologicalRitualHelper = true;
- }
+ public static class FairySouls {
+ @SerialEntry
+ public boolean enableFairySoulsHelper = false;
- public static class ItemCooldown {
- @SerialEntry
- public boolean enableItemCooldowns = true;
- }
+ @SerialEntry
+ public boolean highlightFoundSouls = true;
- public static class Shortcuts {
- @SerialEntry
- public boolean enableShortcuts = true;
-
- @SerialEntry
- public boolean enableCommandShortcuts = true;
-
- @SerialEntry
- public boolean enableCommandArgShortcuts = true;
- }
-
- public static class Waypoints {
- @SerialEntry
- public boolean enableWaypoints = true;
-
- @SerialEntry
- public Waypoint.Type waypointType = Waypoint.Type.WAYPOINT;
- }
+ @SerialEntry
+ public boolean highlightOnlyNearbySouls = false;
+ }
- public static class QuiverWarning {
- @SerialEntry
- public boolean enableQuiverWarning = true;
+ public static class MythologicalRitual {
+ @SerialEntry
+ public boolean enableMythologicalRitualHelper = true;
+ }
- @SerialEntry
- public boolean enableQuiverWarningInDungeons = true;
+ public static class ItemCooldown {
+ @SerialEntry
+ public boolean enableItemCooldowns = true;
+ }
- @SerialEntry
- public boolean enableQuiverWarningAfterDungeon = true;
- }
+ public static class Shortcuts {
+ @SerialEntry
+ public boolean enableShortcuts = true;
+
+ @SerialEntry
+ public boolean enableCommandShortcuts = true;
+
+ @SerialEntry
+ public boolean enableCommandArgShortcuts = true;
+ }
+
+ public static class Waypoints {
+ @SerialEntry
+ public boolean enableWaypoints = true;
+
+ @SerialEntry
+ public Waypoint.Type waypointType = Waypoint.Type.WAYPOINT;
+ }
- public static class Hitbox {
- @SerialEntry
- public boolean oldFarmlandHitbox = false;
+ public static class QuiverWarning {
+ @SerialEntry
+ public boolean enableQuiverWarning = true;
- @SerialEntry
- public boolean oldLeverHitbox = false;
- }
-
- public static class TitleContainer {
- @SerialEntry
- public float titleContainerScale = 100;
-
- @SerialEntry
- public int x = 540;
-
- @SerialEntry
- public int y = 10;
-
- @SerialEntry
- public Direction direction = Direction.HORIZONTAL;
-
- @SerialEntry
- public Alignment alignment = Alignment.MIDDLE;
- }
+ @SerialEntry
+ public boolean enableQuiverWarningInDungeons = true;
- public static class TeleportOverlay {
- @SerialEntry
- public boolean enableTeleportOverlays = true;
+ @SerialEntry
+ public boolean enableQuiverWarningAfterDungeon = true;
+ }
- @SerialEntry
- public boolean enableWeirdTransmission = true;
+ public static class Hitbox {
+ @SerialEntry
+ public boolean oldFarmlandHitbox = false;
- @SerialEntry
- public boolean enableInstantTransmission = true;
+ @SerialEntry
+ public boolean oldLeverHitbox = false;
+ }
+
+ public static class TitleContainer {
+ @SerialEntry
+ public float titleContainerScale = 100;
+
+ @SerialEntry
+ public int x = 540;
+
+ @SerialEntry
+ public int y = 10;
+
+ @SerialEntry
+ public Direction direction = Direction.HORIZONTAL;
+
+ @SerialEntry
+ public Alignment alignment = Alignment.MIDDLE;
+ }
- @SerialEntry
- public boolean enableEtherTransmission = true;
+ public static class TeleportOverlay {
+ @SerialEntry
+ public boolean enableTeleportOverlays = true;
- @SerialEntry
- public boolean enableSinrecallTransmission = true;
+ @SerialEntry
+ public boolean enableWeirdTransmission = true;
- @SerialEntry
- public boolean enableWitherImpact = true;
- }
+ @SerialEntry
+ public boolean enableInstantTransmission = true;
- public static class FlameOverlay {
- @SerialEntry
- public float flameHeight = 0f;
+ @SerialEntry
+ public boolean enableEtherTransmission = true;
- @SerialEntry
- public float flameOpacity = 0f;
- }
+ @SerialEntry
+ public boolean enableSinrecallTransmission = true;
- public enum Direction {
- HORIZONTAL, VERTICAL;
+ @SerialEntry
+ public boolean enableWitherImpact = true;
+ }
- @Override
- public String toString() {
- return switch (this) {
- case HORIZONTAL -> "Horizontal";
- case VERTICAL -> "Vertical";
- };
- }
- }
+ public static class FlameOverlay {
+ @SerialEntry
+ public float flameHeight = 0f;
- public enum Alignment {
- LEFT, RIGHT, MIDDLE;
+ @SerialEntry
+ public float flameOpacity = 0f;
+ }
- @Override
- public String toString() {
- return switch (this) {
- case LEFT -> "Left";
- case RIGHT -> "Right";
- case MIDDLE -> "Middle";
- };
- }
- }
+ public enum Direction {
+ HORIZONTAL, VERTICAL;
- public static class RichPresence {
- @SerialEntry
- public boolean enableRichPresence = false;
+ @Override
+ public String toString() {
+ return switch (this) {
+ case HORIZONTAL -> "Horizontal";
+ case VERTICAL -> "Vertical";
+ };
+ }
+ }
- @SerialEntry
- public Info info = Info.LOCATION;
+ public enum Alignment {
+ LEFT, RIGHT, MIDDLE;
- @SerialEntry
- public boolean cycleMode = false;
+ @Override
+ public String toString() {
+ return switch (this) {
+ case LEFT -> "Left";
+ case RIGHT -> "Right";
+ case MIDDLE -> "Middle";
+ };
+ }
+ }
- @SerialEntry
- public String customMessage = "Playing Skyblock";
- }
+ public static class RichPresence {
+ @SerialEntry
+ public boolean enableRichPresence = false;
- public static class ItemList {
- @SerialEntry
- public boolean enableItemList = true;
- }
+ @SerialEntry
+ public Info info = Info.LOCATION;
- public enum Average {
- ONE_DAY, THREE_DAY, BOTH;
+ @SerialEntry
+ public boolean cycleMode = false;
- @Override
- public String toString() {
- return I18n.translate("text.autoconfig.skyblocker.option.general.itemTooltip.avg." + name());
- }
- }
+ @SerialEntry
+ public String customMessage = "Playing Skyblock";
+ }
- public static class ItemTooltip {
- @SerialEntry
- public boolean enableNPCPrice = true;
+ public static class ItemList {
+ @SerialEntry
+ public boolean enableItemList = true;
+ }
- @SerialEntry
- public boolean enableMotesPrice = true;
+ public enum Average {
+ ONE_DAY, THREE_DAY, BOTH;
- @SerialEntry
- public boolean enableAvgBIN = true;
+ @Override
+ public String toString() {
+ return I18n.translate("text.autoconfig.skyblocker.option.general.itemTooltip.avg." + name());
+ }
+ }
- @SerialEntry
- public Average avg = Average.THREE_DAY;
+ public static class ItemTooltip {
+ @SerialEntry
+ public boolean enableNPCPrice = true;
- @SerialEntry
- public boolean enableLowestBIN = true;
+ @SerialEntry
+ public boolean enableMotesPrice = true;
- @SerialEntry
- public boolean enableBazaarPrice = true;
+ @SerialEntry
+ public boolean enableAvgBIN = true;
- @SerialEntry
- public boolean enableObtainedDate = true;
+ @SerialEntry
+ public Average avg = Average.THREE_DAY;
- @SerialEntry
- public boolean enableMuseumInfo = true;
+ @SerialEntry
+ public boolean enableLowestBIN = true;
- @SerialEntry
- public boolean enableExoticTooltip = true;
- }
+ @SerialEntry
+ public boolean enableBazaarPrice = true;
- public static class ItemInfoDisplay {
- @SerialEntry
- public boolean attributeShardInfo = true;
+ @SerialEntry
+ public boolean enableObtainedDate = true;
- @SerialEntry
- public boolean itemRarityBackgrounds = false;
+ @SerialEntry
+ public boolean enableMuseumInfo = true;
- @SerialEntry
- public RarityBackgroundStyle itemRarityBackgroundStyle = RarityBackgroundStyle.CIRCULAR;
+ @SerialEntry
+ public boolean enableExoticTooltip = true;
+ }
- @SerialEntry
- public float itemRarityBackgroundsOpacity = 1f;
- }
+ public static class ItemInfoDisplay {
+ @SerialEntry
+ public boolean attributeShardInfo = true;
- public enum RarityBackgroundStyle {
- CIRCULAR(new Identifier(SkyblockerMod.NAMESPACE, "item_rarity_background_circular")),
- SQUARE(new Identifier(SkyblockerMod.NAMESPACE, "item_rarity_background_square"));
+ @SerialEntry
+ public boolean itemRarityBackgrounds = false;
- public final Identifier tex;
+ @SerialEntry
+ public RarityBackgroundStyle itemRarityBackgroundStyle = RarityBackgroundStyle.CIRCULAR;
- RarityBackgroundStyle(Identifier tex) {
- this.tex = tex;
- }
+ @SerialEntry
+ public float itemRarityBackgroundsOpacity = 1f;
+ }
- @Override
- public String toString() {
- return switch (this) {
- case CIRCULAR -> "Circular";
- case SQUARE -> "Square";
- };
- }
- }
+ public enum RarityBackgroundStyle {
+ CIRCULAR(new Identifier(SkyblockerMod.NAMESPACE, "item_rarity_background_circular")),
+ SQUARE(new Identifier(SkyblockerMod.NAMESPACE, "item_rarity_background_square"));
- public static class WikiLookup {
- @SerialEntry
- public boolean enableWikiLookup = true;
+ public final Identifier tex;
- @SerialEntry
- public boolean officialWiki = false;
- }
+ RarityBackgroundStyle(Identifier tex) {
+ this.tex = tex;
+ }
- public static class ChestValue {
- @SerialEntry
- public boolean enableChestValue = true;
+ @Override
+ public String toString() {
+ return switch (this) {
+ case CIRCULAR -> "Circular";
+ case SQUARE -> "Square";
+ };
+ }
+ }
- @SerialEntry
- public Formatting color = Formatting.DARK_GREEN;
+ public static class WikiLookup {
+ @SerialEntry
+ public boolean enableWikiLookup = true;
- @SerialEntry
- public Formatting incompleteColor = Formatting.BLUE;
- }
+ @SerialEntry
+ public boolean officialWiki = false;
+ }
- public static class SpecialEffects {
- @SerialEntry
- public boolean rareDungeonDropEffects = true;
- }
+ public static class ChestValue {
+ @SerialEntry
+ public boolean enableChestValue = true;
- public static class Locations {
- @SerialEntry
- public Barn barn = new Barn();
+ @SerialEntry
+ public Formatting color = Formatting.DARK_GREEN;
- @SerialEntry
- public Dungeons dungeons = new Dungeons();
+ @SerialEntry
+ public Formatting incompleteColor = Formatting.BLUE;
+ }
- @SerialEntry
- public DwarvenMines dwarvenMines = new DwarvenMines();
+ public static class SpecialEffects {
+ @SerialEntry
+ public boolean rareDungeonDropEffects = true;
+ }
- @SerialEntry
- public Rift rift = new Rift();
+ public static class Locations {
+ @SerialEntry
+ public Barn barn = new Barn();
- @SerialEntry
- public SpidersDen spidersDen = new SpidersDen();
- }
+ @SerialEntry
+ public Dungeons dungeons = new Dungeons();
- public static class Dungeons {
- @SerialEntry
- public SecretWaypoints secretWaypoints = new SecretWaypoints();
+ @SerialEntry
+ public DwarvenMines dwarvenMines = new DwarvenMines();
- @SerialEntry
- public DoorHighlight doorHighlight = new DoorHighlight();
+ @SerialEntry
+ public Rift rift = new Rift();
- @SerialEntry
- public DungeonScore dungeonScore = new DungeonScore();
+ @SerialEntry
+ public SpidersDen spidersDen = new SpidersDen();
+ }
- @SerialEntry
- public DungeonChestProfit dungeonChestProfit = new DungeonChestProfit();
+ public static class Dungeons {
+ @SerialEntry
+ public SecretWaypoints secretWaypoints = new SecretWaypoints();
- @SerialEntry
- public MimicMessage mimicMessage = new MimicMessage();
+ @SerialEntry
+ public DoorHighlight doorHighlight = new DoorHighlight();
- @SerialEntry
- public boolean croesusHelper = true;
+ @SerialEntry
+ public DungeonScore dungeonScore = new DungeonScore();
- @SerialEntry
- public boolean enableMap = true;
+ @SerialEntry
+ public DungeonChestProfit dungeonChestProfit = new DungeonChestProfit();
- @SerialEntry
- public float mapScaling = 1f;
+ @SerialEntry
+ public MimicMessage mimicMessage = new MimicMessage();
- @SerialEntry
- public int mapX = 2;
+ @SerialEntry
+ public boolean croesusHelper = true;
- @SerialEntry
- public int mapY = 2;
+ @SerialEntry
+ public boolean enableMap = true;
- @SerialEntry
- public boolean playerSecretsTracker = false;
+ @SerialEntry
+ public float mapScaling = 1f;
- @SerialEntry
- public boolean starredMobGlow = true;
+ @SerialEntry
+ public int mapX = 2;
- @SerialEntry
- public boolean solveThreeWeirdos = true;
+ @SerialEntry
+ public int mapY = 2;
- @SerialEntry
- public boolean blazeSolver = true;
+ @SerialEntry
+ public boolean playerSecretsTracker = false;
- @SerialEntry
- public boolean creeperSolver = true;
+ @SerialEntry
+ public boolean starredMobGlow = true;
- @SerialEntry
- public boolean solveTrivia = true;
+ @SerialEntry
+ public boolean solveThreeWeirdos = true;
- @SerialEntry
- public boolean solveTicTacToe = true;
+ @SerialEntry
+ public boolean blazeSolver = true;
- @SerialEntry
- public boolean solveWaterboard = true;
+ @SerialEntry
+ public boolean creeperSolver = true;
- @SerialEntry
- public boolean fireFreezeStaffTimer = true;
+ @SerialEntry
+ public boolean solveTrivia = true;
- @SerialEntry
- public boolean floor3GuardianHealthDisplay = true;
+ @SerialEntry
+ public boolean solveTicTacToe = true;
- @SerialEntry
- public boolean allowDroppingProtectedItems = false;
+ @SerialEntry
+ public boolean solveWaterboard = true;
- @SerialEntry
- public LividColor lividColor = new LividColor();
+ @SerialEntry
+ public boolean fireFreezeStaffTimer = true;
- @SerialEntry
- public Terminals terminals = new Terminals();
- }
+ @SerialEntry
+ public boolean floor3GuardianHealthDisplay = true;
- public static class SecretWaypoints {
- @SerialEntry
- public boolean enableRoomMatching = true;
+ @SerialEntry
+ public boolean allowDroppingProtectedItems = false;
- @SerialEntry
- public boolean enableSecretWaypoints = true;
+ @SerialEntry
+ public LividColor lividColor = new LividColor();
- @SerialEntry
- public Waypoint.Type waypointType = Waypoint.Type.WAYPOINT;
+ @SerialEntry
+ public Terminals terminals = new Terminals();
+ }
- @SerialEntry
- public boolean showSecretText = true;
+ public static class SecretWaypoints {
+ @SerialEntry
+ public boolean enableRoomMatching = true;
- @SerialEntry
- public boolean enableEntranceWaypoints = true;
+ @SerialEntry
+ public boolean enableSecretWaypoints = true;
- @SerialEntry
- public boolean enableSuperboomWaypoints = true;
+ @SerialEntry
+ public Waypoint.Type waypointType = Waypoint.Type.WAYPOINT;
- @SerialEntry
- public boolean enableChestWaypoints = true;
+ @SerialEntry
+ public boolean showSecretText = true;
- @SerialEntry
- public boolean enableItemWaypoints = true;
+ @SerialEntry
+ public boolean enableEntranceWaypoints = true;
- @SerialEntry
- public boolean enableBatWaypoints = true;
+ @SerialEntry
+ public boolean enableSuperboomWaypoints = true;
- @SerialEntry
- public boolean enableWitherWaypoints = true;
+ @SerialEntry
+ public boolean enableChestWaypoints = true;
- @SerialEntry
- public boolean enableLeverWaypoints = true;
+ @SerialEntry
+ public boolean enableItemWaypoints = true;
- @SerialEntry
- public boolean enableFairySoulWaypoints = true;
+ @SerialEntry
+ public boolean enableBatWaypoints = true;
- @SerialEntry
- public boolean enableStonkWaypoints = true;
+ @SerialEntry
+ public boolean enableWitherWaypoints = true;
- @SerialEntry
- public boolean enableAotvWaypoints = true;
+ @SerialEntry
+ public boolean enableLeverWaypoints = true;
- @SerialEntry
- public boolean enablePearlWaypoints = true;
+ @SerialEntry
+ public boolean enableFairySoulWaypoints = true;
- @SerialEntry
- public boolean enableDefaultWaypoints = true;
- }
+ @SerialEntry
+ public boolean enableStonkWaypoints = true;
- public static class DoorHighlight {
- @SerialEntry
- public boolean enableDoorHighlight = true;
+ @SerialEntry
+ public boolean enableAotvWaypoints = true;
- @SerialEntry
- public Type doorHighlightType = Type.OUTLINED_HIGHLIGHT;
+ @SerialEntry
+ public boolean enablePearlWaypoints = true;
- public enum Type {
- HIGHLIGHT,
- OUTLINED_HIGHLIGHT,
- OUTLINE;
+ @SerialEntry
+ public boolean enableDefaultWaypoints = true;
+ }
- @Override
- public String toString() {
- return switch (this) {
- case HIGHLIGHT -> "Highlight";
- case OUTLINED_HIGHLIGHT -> "Outlined Highlight";
- case OUTLINE -> "Outline";
- };
- }
- }
- }
+ public static class DoorHighlight {
+ @SerialEntry
+ public boolean enableDoorHighlight = true;
- public static class DungeonScore {
- @SerialEntry
- public boolean enableDungeonScore270Message = false;
+ @SerialEntry
+ public Type doorHighlightType = Type.OUTLINED_HIGHLIGHT;
- @SerialEntry
- public boolean enableDungeonScore270Title = false;
+ public enum Type {
+ HIGHLIGHT,
+ OUTLINED_HIGHLIGHT,
+ OUTLINE;
- @SerialEntry
- public boolean enableDungeonScore270Sound = false;
+ @Override
+ public String toString() {
+ return switch (this) {
+ case HIGHLIGHT -> "Highlight";
+ case OUTLINED_HIGHLIGHT -> "Outlined Highlight";
+ case OUTLINE -> "Outline";
+ };
+ }
+ }
+ }
- @SerialEntry
- public String dungeonScore270Message = "270 Score Reached!";
+ public static class DungeonScore {
+ @SerialEntry
+ public boolean enableDungeonScore270Message = false;
- @SerialEntry
- public boolean enableDungeonScore300Message = true;
+ @SerialEntry
+ public boolean enableDungeonScore270Title = false;
- @SerialEntry
- public boolean enableDungeonScore300Title = true;
+ @SerialEntry
+ public boolean enableDungeonScore270Sound = false;
- @SerialEntry
- public boolean enableDungeonScore300Sound = true;
+ @SerialEntry
+ public String dungeonScore270Message = "270 Score Reached!";
- @SerialEntry
- public String dungeonScore300Message = "300 Score Reached!";
+ @SerialEntry
+ public boolean enableDungeonScore300Message = true;
- @SerialEntry
- public boolean enableScoreHUD = true;
+ @SerialEntry
+ public boolean enableDungeonScore300Title = true;
- @SerialEntry
- public int scoreX = 29;
+ @SerialEntry
+ public boolean enableDungeonScore300Sound = true;
- @SerialEntry
- public int scoreY = 134;
+ @SerialEntry
+ public String dungeonScore300Message = "300 Score Reached!";
- @SerialEntry
- public float scoreScaling = 1f;
- }
+ @SerialEntry
+ public boolean enableScoreHUD = true;
- public static class DungeonChestProfit {
- @SerialEntry
- public boolean enableProfitCalculator = true;
+ @SerialEntry
+ public int scoreX = 29;
- @SerialEntry
- public boolean includeKismet = false;
+ @SerialEntry
+ public int scoreY = 134;
- @SerialEntry
- public boolean includeEssence = true;
+ @SerialEntry
+ public float scoreScaling = 1f;
+ }
- @SerialEntry
- public int neutralThreshold = 1000;
+ public static class DungeonChestProfit {
+ @SerialEntry
+ public boolean enableProfitCalculator = true;
- @SerialEntry
- public Formatting neutralColor = Formatting.DARK_GRAY;
+ @SerialEntry
+ public boolean includeKismet = false;
- @SerialEntry
- public Formatting profitColor = Formatting.DARK_GREEN;
+ @SerialEntry
+ public boolean includeEssence = true;
- @SerialEntry
- public Formatting lossColor = Formatting.RED;
+ @SerialEntry
+ public int neutralThreshold = 1000;
- @SerialEntry
- public Formatting incompleteColor = Formatting.BLUE;
- }
+ @SerialEntry
+ public Formatting neutralColor = Formatting.DARK_GRAY;
- public static class MimicMessage {
- @SerialEntry
- public boolean sendMimicMessage = true;
+ @SerialEntry
+ public Formatting profitColor = Formatting.DARK_GREEN;
- @SerialEntry
- public String mimicMessage = "Mimic dead!";
- }
+ @SerialEntry
+ public Formatting lossColor = Formatting.RED;
- public static class LividColor {
- @SerialEntry
- public boolean enableLividColorGlow = true;
+ @SerialEntry
+ public Formatting incompleteColor = Formatting.BLUE;
+ }
- @SerialEntry
- public boolean enableLividColorText = true;
+ public static class MimicMessage {
+ @SerialEntry
+ public boolean sendMimicMessage = true;
- @SerialEntry
- public boolean enableLividColorTitle = true;
+ @SerialEntry
+ public String mimicMessage = "Mimic dead!";
+ }
- @SerialEntry
- public String lividColorText = "The livid color is [color]";
- }
+ public static class LividColor {
+ @SerialEntry
+ public boolean enableLividColorGlow = true;
- public static class Terminals {
- @SerialEntry
- public boolean solveColor = true;
+ @SerialEntry
+ public boolean enableLividColorText = true;
- @SerialEntry
- public boolean solveOrder = true;
+ @SerialEntry
+ public boolean enableLividColorTitle = true;
- @SerialEntry
- public boolean solveStartsWith = true;
- }
+ @SerialEntry
+ public String lividColorText = "The livid color is [color]";
+ }
- public static class DwarvenMines {
- @SerialEntry
- public boolean enableDrillFuel = true;
+ public static class Terminals {
+ @SerialEntry
+ public boolean solveColor = true;
- @SerialEntry
- public boolean solveFetchur = true;
+ @SerialEntry
+ public boolean solveOrder = true;
- @SerialEntry
- public boolean solvePuzzler = true;
+ @SerialEntry
+ public boolean solveStartsWith = true;
+ }
- @SerialEntry
- public DwarvenHud dwarvenHud = new DwarvenHud();
- }
+ public static class DwarvenMines {
+ @SerialEntry
+ public boolean enableDrillFuel = true;
- public static class DwarvenHud {
- @SerialEntry
- public boolean enabled = true;
+ @SerialEntry
+ public boolean solveFetchur = true;
- @SerialEntry
- public DwarvenHudStyle style = DwarvenHudStyle.SIMPLE;
+ @SerialEntry
+ public boolean solvePuzzler = true;
- @SerialEntry
- public boolean enableBackground = true;
+ @SerialEntry
+ public DwarvenHud dwarvenHud = new DwarvenHud();
+ }
- @SerialEntry
- public int x = 10;
+ public static class DwarvenHud {
+ @SerialEntry
+ public boolean enabled = true;
- @SerialEntry
- public int y = 10;
- }
+ @SerialEntry
+ public DwarvenHudStyle style = DwarvenHudStyle.SIMPLE;
- public enum DwarvenHudStyle {
- SIMPLE, FANCY, CLASSIC;
+ @SerialEntry
+ public boolean enableBackground = true;
- @Override
- public String toString() {
- return switch (this) {
- case SIMPLE -> "Simple";
- case FANCY -> "Fancy";
- case CLASSIC -> "Classic";
- };
- }
- }
+ @SerialEntry
+ public int x = 10;
- public static class Barn {
- @SerialEntry
- public boolean solveHungryHiker = true;
+ @SerialEntry
+ public int y = 10;
+ }
- @SerialEntry
- public boolean solveTreasureHunter = true;
- }
+ public enum DwarvenHudStyle {
+ SIMPLE, FANCY, CLASSIC;
- public static class Rift {
- @SerialEntry
- public boolean mirrorverseWaypoints = true;
+ @Override
+ public String toString() {
+ return switch (this) {
+ case SIMPLE -> "Simple";
+ case FANCY -> "Fancy";
+ case CLASSIC -> "Classic";
+ };
+ }
+ }
- @SerialEntry
- public boolean blobbercystGlow = true;
+ public static class Barn {
+ @SerialEntry
+ public boolean solveHungryHiker = true;
- @SerialEntry
- public boolean enigmaSoulWaypoints = false;
+ @SerialEntry
+ public boolean solveTreasureHunter = true;
+ }
- @SerialEntry
- public boolean highlightFoundEnigmaSouls = true;
+ public static class Rift {
+ @SerialEntry
+ public boolean mirrorverseWaypoints = true;
- @SerialEntry
- public int mcGrubberStacks = 0;
- }
+ @SerialEntry
+ public boolean blobbercystGlow = true;
- public static class SpidersDen {
- @SerialEntry
- public Relics relics = new Relics();
- }
+ @SerialEntry
+ public boolean enigmaSoulWaypoints = false;
- public static class Relics {
- @SerialEntry
- public boolean enableRelicsHelper = false;
+ @SerialEntry
+ public boolean highlightFoundEnigmaSouls = true;
- @SerialEntry
- public boolean highlightFoundRelics = true;
- }
+ @SerialEntry
+ public int mcGrubberStacks = 0;
+ }
- public static class Slayer {
- @SerialEntry
- public VampireSlayer vampireSlayer = new VampireSlayer();
+ public static class SpidersDen {
+ @SerialEntry
+ public Relics relics = new Relics();
+ }
- @SerialEntry
- public EndermanSlayer endermanSlayer = new EndermanSlayer();
- }
+ public static class Relics {
+ @SerialEntry
+ public boolean enableRelicsHelper = false;
- public static class EndermanSlayer {
- @SerialEntry
- public boolean highlightNukekubiHeads = true;
+ @SerialEntry
+ public boolean highlightFoundRelics = true;
+ }
- @SerialEntry
- public boolean highlightBeacons = true;
- }
+ public static class Slayer {
+ @SerialEntry
+ public VampireSlayer vampireSlayer = new VampireSlayer();
+ }
- public static class VampireSlayer {
- @SerialEntry
- public boolean enableEffigyWaypoints = true;
+ public static class VampireSlayer {
+ @SerialEntry
+ public boolean enableEffigyWaypoints = true;
- @SerialEntry
- public boolean compactEffigyWaypoints;
+ @SerialEntry
+ public boolean compactEffigyWaypoints;
- @SerialEntry
- public int effigyUpdateFrequency = 5;
+ @SerialEntry
+ public int effigyUpdateFrequency = 5;
- @SerialEntry
- public boolean enableHolyIceIndicator = true;
+ @SerialEntry
+ public boolean enableHolyIceIndicator = true;
- @SerialEntry
- public int holyIceIndicatorTickDelay = 10;
+ @SerialEntry
+ public int holyIceIndicatorTickDelay = 10;
- @SerialEntry
- public int holyIceUpdateFrequency = 5;
+ @SerialEntry
+ public int holyIceUpdateFrequency = 5;
- @SerialEntry
- public boolean enableHealingMelonIndicator = true;
+ @SerialEntry
+ public boolean enableHealingMelonIndicator = true;
- @SerialEntry
- public float healingMelonHealthThreshold = 4f;
+ @SerialEntry
+ public float healingMelonHealthThreshold = 4f;
- @SerialEntry
- public boolean enableSteakStakeIndicator = true;
+ @SerialEntry
+ public boolean enableSteakStakeIndicator = true;
- @SerialEntry
- public int steakStakeUpdateFrequency = 5;
+ @SerialEntry
+ public int steakStakeUpdateFrequency = 5;
- @SerialEntry
- public boolean enableManiaIndicator = true;
+ @SerialEntry
+ public boolean enableManiaIndicator = true;
- @SerialEntry
- public int maniaUpdateFrequency = 5;
- }
+ @SerialEntry
+ public int maniaUpdateFrequency = 5;
+ }
- public static class Messages {
- @SerialEntry
- public ChatFilterResult hideAbility = ChatFilterResult.PASS;
+ public static class Messages {
+ @SerialEntry
+ public ChatFilterResult hideAbility = ChatFilterResult.PASS;
- @SerialEntry
- public ChatFilterResult hideHeal = ChatFilterResult.PASS;
+ @SerialEntry
+ public ChatFilterResult hideHeal = ChatFilterResult.PASS;
- @SerialEntry
- public ChatFilterResult hideAOTE = ChatFilterResult.PASS;
+ @SerialEntry
+ public ChatFilterResult hideAOTE = ChatFilterResult.PASS;
- @SerialEntry
- public ChatFilterResult hideImplosion = ChatFilterResult.PASS;
+ @SerialEntry
+ public ChatFilterResult hideImplosion = ChatFilterResult.PASS;
- @SerialEntry
- public ChatFilterResult hideMoltenWave = ChatFilterResult.PASS;
+ @SerialEntry
+ public ChatFilterResult hideMoltenWave = ChatFilterResult.PASS;
- @SerialEntry
- public ChatFilterResult hideAds = ChatFilterResult.PASS;
+ @SerialEntry
+ public ChatFilterResult hideAds = ChatFilterResult.PASS;
- @SerialEntry
- public ChatFilterResult hideTeleportPad = ChatFilterResult.PASS;
+ @SerialEntry
+ public ChatFilterResult hideTeleportPad = ChatFilterResult.PASS;
- @SerialEntry
- public ChatFilterResult hideCombo = ChatFilterResult.PASS;
+ @SerialEntry
+ public ChatFilterResult hideCombo = ChatFilterResult.PASS;
- @SerialEntry
- public ChatFilterResult hideAutopet = ChatFilterResult.PASS;
+ @SerialEntry
+ public ChatFilterResult hideAutopet = ChatFilterResult.PASS;
- @SerialEntry
- public ChatFilterResult hideShowOff = ChatFilterResult.PASS;
+ @SerialEntry
+ public ChatFilterResult hideShowOff = ChatFilterResult.PASS;
- @SerialEntry
- public ChatFilterResult hideToggleSkyMall = ChatFilterResult.PASS;
+ @SerialEntry
+ public ChatFilterResult hideToggleSkyMall = ChatFilterResult.PASS;
- @SerialEntry
- public ChatFilterResult hideMimicKill = ChatFilterResult.PASS;
+ @SerialEntry
+ public ChatFilterResult hideMimicKill = ChatFilterResult.PASS;
- @SerialEntry
- public ChatFilterResult hideDeath = ChatFilterResult.PASS;
+ @SerialEntry
+ public ChatFilterResult hideDeath = ChatFilterResult.PASS;
- @SerialEntry
- public boolean hideMana = false;
- }
+ @SerialEntry
+ public boolean hideMana = false;
+ }
- public enum Info {
- PURSE, BITS, LOCATION;
+ public enum Info {
+ PURSE, BITS, LOCATION;
- @Override
- public String toString() {
- return I18n.translate("text.autoconfig.skyblocker.option.richPresence.info." + name());
- }
- }
+ @Override
+ public String toString() {
+ return I18n.translate("text.autoconfig.skyblocker.option.richPresence.info." + name());
+ }
+ }
}
diff --git a/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java b/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java
index 9e11e5ff..738c2165 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java
@@ -3,11 +3,13 @@ package de.hysky.skyblocker.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.injector.WrapWithCondition;
import com.llamalad7.mixinextras.sugar.Local;
+import de.hysky.skyblocker.config.SkyblockerConfig;
import de.hysky.skyblocker.skyblock.FishingHelper;
import de.hysky.skyblocker.skyblock.dungeon.DungeonScore;
import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager;
import de.hysky.skyblocker.skyblock.end.BeaconHighlighter;
import de.hysky.skyblocker.skyblock.waypoint.MythologicalRitual;
+import de.hysky.skyblocker.utils.SlayerUtils;
import de.hysky.skyblocker.utils.Utils;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayNetworkHandler;
@@ -79,9 +81,12 @@ public abstract class ClientPlayNetworkHandlerMixin {
}
@Inject(method = "onBlockUpdate", at = @At("RETURN"))
private void skyblocker$onBlockUpdate(BlockUpdateS2CPacket packet, CallbackInfo ci) {
- BeaconHighlighter.beaconPositions.remove(packet.getPos());
- if(packet.getState().toString().contains("minecraft:beacon")) {
- BeaconHighlighter.beaconPositions.add(packet.getPos());
+ if(Utils.isInTheEnd() && SlayerUtils.isInSlayer()) {
+ BeaconHighlighter.beaconPositions.remove(packet.getPos());
+ if(packet.getState().toString().contains("minecraft:beacon")) {
+ BeaconHighlighter.beaconPositions.add(packet.getPos());
+ }
}
+
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/end/BeaconHighlighter.java b/src/main/java/de/hysky/skyblocker/skyblock/end/BeaconHighlighter.java
index 667318a4..65e9e639 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/end/BeaconHighlighter.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/end/BeaconHighlighter.java
@@ -24,16 +24,17 @@ public class BeaconHighlighter {
/**
* Renders the beacon glow around it. It is rendered in a red color with 50% opacity, and
* is visible through walls.
+ *
* @param context An instance of WorldRenderContext for the RenderHelper to use
*/
public static void render(WorldRenderContext context) {
- if(Utils.isInTheEnd() && SkyblockerConfigManager.get().slayer.endermanSlayer.highlightBeacons)
+ if (Utils.isInTheEnd() && SkyblockerConfigManager.get().slayer.endermanSlayer.highlightBeacons)
beaconPositions.forEach((position) -> RenderHelper.renderFilled(
- context,
- position,
- new float[]{1.0f, 0.0f, 0.0f},
- 0.5f,
- false
+ context,
+ position,
+ new float[]{1.0f, 0.0f, 0.0f},
+ 0.5f,
+ false
));
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java
index 4f789f7b..65ed9c03 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java
@@ -13,6 +13,7 @@ import net.minecraft.entity.Entity;
import net.minecraft.entity.decoration.ArmorStandEntity;
import net.minecraft.entity.passive.BatEntity;
import net.minecraft.entity.player.PlayerEntity;
+import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NbtElement;
import net.minecraft.predicate.entity.EntityPredicates;
import net.minecraft.util.Formatting;
@@ -23,139 +24,115 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MobGlow {
- public static boolean shouldMobGlow(Entity entity) {
- Box box = entity.getBoundingBox();
-
- if (!entity.isInvisible() && OcclusionCulling.getReducedCuller().isVisible(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ)) {
- String name = entity.getName().getString();
-
- // Dungeons
- if (Utils.isInDungeons()) {
-
- // Minibosses
- if (entity instanceof PlayerEntity) {
- switch (name) {
- case "Lost Adventurer", "Shadow Assassin", "Diamond Guy": return SkyblockerConfigManager.get().locations.dungeons.starredMobGlow;
- case "Arcade Livid", "Crossed Livid", "Doctor Livid", "Frog Livid", "Hockey Livid",
- "Purple Livid", "Scream Livid", "Smile Livid", "Vendetta Livid": return LividColor.shouldGlow(name);
- }
- }
-
- // Regular Mobs
- if (!(entity instanceof ArmorStandEntity)) {
- List<ArmorStandEntity> armorStands = getArmorStands(entity.getWorld(), box);
-
- if (!armorStands.isEmpty() && armorStands.get(0).getName().getString().contains("✯")) return SkyblockerConfigManager.get().locations.dungeons.starredMobGlow;
- }
-
- // Bats
- return SkyblockerConfigManager.get().locations.dungeons.starredMobGlow && entity instanceof BatEntity;
- }
-
- // Rift
- if (Utils.isInTheRift()) {
- if (entity instanceof PlayerEntity) {
- switch (name) {
- // They have a space in their name for some reason...
- case "Blobbercyst ": return SkyblockerConfigManager.get().locations.rift.blobbercystGlow;
- }
- }
- }
-
-
-
- }
-
- // Enderman Slayer
- // Highlights Nukekubi Heads
- if(SkyblockerConfigManager.get().slayer.endermanSlayer.highlightNukekubiHeads
- && entity instanceof ArmorStandEntity) {
- // check for items in the armor sets
- for (net.minecraft.item.ItemStack armorItem : entity.getArmorItems()) {
- // hacky way to check if an item is a player head w/o
- // some shenanigans
- if(!armorItem.toString().startsWith("1 player_head"))
- continue;
-
-
- if (armorItem.hasNbt()) {
- assert armorItem.getNbt() != null;
- // eb07594e2df273921a77c101d0bfdfa1115abed5b9b2029eb496ceba9bdbb4b3 is texture id
- // for the nukekubi head, compare against it to exclusively find
- // armorstands that are nukekubi heads
- if (armorItem.getNbt().contains("SkullOwner")) {
- // get the texture of the nukekubi head item itself and
- // compare it
- var texture = armorItem
- .getNbt()
- .getCompound("SkullOwner")
- .getCompound("Properties")
- .getList("textures", NbtElement.COMPOUND_TYPE)
- .getCompound(0)
- .getString("Value");
-
- return texture.contains("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWIwNzU5NGUyZGYyNzM5MjFhNzdjMTAxZDBiZmRmYTExMTVhYmVkNWI5YjIwMjllYjQ5NmNlYmE5YmRiYjRiMyJ9fX0=");
-
- }
- }
- }
- }
-
- return false;
- }
-
- private static List<ArmorStandEntity> getArmorStands(World world, Box box) {
+ public static boolean shouldMobGlow(Entity entity) {
+ Box box = entity.getBoundingBox();
+
+ if (!entity.isInvisible() && OcclusionCulling.getReducedCuller().isVisible(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ)) {
+ String name = entity.getName().getString();
+
+ // Dungeons
+ if (Utils.isInDungeons()) {
+
+ // Minibosses
+ if (entity instanceof PlayerEntity) {
+ switch (name) {
+ case "Lost Adventurer", "Shadow Assassin", "Diamond Guy":
+ return SkyblockerConfigManager.get().locations.dungeons.starredMobGlow;
+ case "Arcade Livid", "Crossed Livid", "Doctor Livid", "Frog Livid", "Hockey Livid",
+ "Purple Livid", "Scream Livid", "Smile Livid", "Vendetta Livid":
+ return LividColor.shouldGlow(name);
+ }
+ }
+
+ // Regular Mobs
+ if (!(entity instanceof ArmorStandEntity)) {
+ List<ArmorStandEntity> armorStands = getArmorStands(entity.getWorld(), box);
+
+ if (!armorStands.isEmpty() && armorStands.get(0).getName().getString().contains("✯"))
+ return SkyblockerConfigManager.get().locations.dungeons.starredMobGlow;
+ }
+
+ // Bats
+ return SkyblockerConfigManager.get().locations.dungeons.starredMobGlow && entity instanceof BatEntity;
+ }
+
+ // Rift
+ if (Utils.isInTheRift()) {
+ if (entity instanceof PlayerEntity) {
+ switch (name) {
+ // They have a space in their name for some reason...
+ case "Blobbercyst ":
+ return SkyblockerConfigManager.get().locations.rift.blobbercystGlow;
+ }
+ }
+ }
+
+
+ }
+
+ // Enderman Slayer
+ // Highlights Nukekubi Heads
+ return SkyblockerConfigManager.get().slayer.endermanSlayer.highlightNukekubiHeads
+ && entity instanceof ArmorStandEntity
+ && isNukekubiHead((ArmorStandEntity) entity);
+ }
+
+ private static boolean isNukekubiHead(ArmorStandEntity entity) {
+ for (ItemStack armorItem : entity.getArmorItems()) {
+ // hacky way to check if an item is a player head w/o
+ // some shenanigans
+ if (!armorItem.toString().startsWith("1 player_head"))
+ continue;
+
+ if (armorItem.hasNbt()) {
+ assert armorItem.getNbt() != null;
+ // eb07594e2df273921a77c101d0bfdfa1115abed5b9b2029eb496ceba9bdbb4b3 is texture id
+ // for the nukekubi head, compare against it to exclusively find
+ // armorstands that are nukekubi heads
+ if (armorItem.getNbt().contains("SkullOwner")) {
+ // get the texture of the nukekubi head item itself and
+ // compare it
+ var texture = armorItem
+ .getNbt()
+ .getCompound("SkullOwner")
+ .getCompound("Properties")
+ .getList("textures", NbtElement.COMPOUND_TYPE)
+ .getCompound(0)
+ .getString("Value");
+
+ return texture.contains("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWIwNzU5NGUyZGYyNzM5MjFhNzdjMTAxZDBiZmRmYTExMTVhYmVkNWI5YjIwMjllYjQ5NmNlYmE5YmRiYjRiMyJ9fX0=");
+
+ }
+ }
+ }
+ return false;
+ }
+
+ private static List<ArmorStandEntity> getArmorStands(World world, Box box) {
return world.getEntitiesByClass(ArmorStandEntity.class, box.expand(0, 2, 0), EntityPredicates.NOT_MOUNTED);
- }
-
- public static int getGlowColor(Entity entity) {
- String name = entity.getName().getString();
-
- if (entity instanceof PlayerEntity) {
- return switch (name) {
- case "Lost Adventurer" -> 0xfee15c;
- case "Shadow Assassin" -> 0x5b2cb2;
- case "Diamond Guy" -> 0x57c2f7;
- case "Arcade Livid", "Crossed Livid", "Doctor Livid", "Frog Livid", "Hockey Livid",
- "Purple Livid", "Scream Livid", "Smile Livid", "Vendetta Livid" -> LividColor.getGlowColor(name);
- case "Blobbercyst " -> Formatting.GREEN.getColorValue();
- default -> 0xf57738;
- };
- }
-
- // copypaste nukekebi head logic
- if(entity instanceof ArmorStandEntity) {
- for (net.minecraft.item.ItemStack armorItem : entity.getArmorItems()) {
- // hacky way to check if an item is a player head w/o
- // some shenanigans
- if(!armorItem.toString().startsWith("1 player_head"))
- continue;
-
-
- if (armorItem.hasNbt()) {
- assert armorItem.getNbt() != null;
- // eb07594e2df273921a77c101d0bfdfa1115abed5b9b2029eb496ceba9bdbb4b3 is texture id
- // for the nukekubi head, compare against it to exclusively find
- // armorstands that are nukekubi heads
- if (armorItem.getNbt().contains("SkullOwner")) {
- // get the texture of the nukekebi head item itself and
- // compare it
- var texture = armorItem
- .getNbt()
- .getCompound("SkullOwner")
- .getCompound("Properties")
- .getList("textures", NbtElement.COMPOUND_TYPE)
- .getCompound(0)
- .getString("Value");
-
- if(texture.contains("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWIwNzU5NGUyZGYyNzM5MjFhNzdjMTAxZDBiZmRmYTExMTVhYmVkNWI5YjIwMjllYjQ5NmNlYmE5YmRiYjRiMyJ9fX0=")) {
- return 0x990099;
- }
- }
- }
- }
- }
-
- return 0xf57738;
- }
+ }
+
+ public static int getGlowColor(Entity entity) {
+ String name = entity.getName().getString();
+
+ if (entity instanceof PlayerEntity) {
+ return switch (name) {
+ case "Lost Adventurer" -> 0xfee15c;
+ case "Shadow Assassin" -> 0x5b2cb2;
+ case "Diamond Guy" -> 0x57c2f7;
+ case "Arcade Livid", "Crossed Livid", "Doctor Livid", "Frog Livid", "Hockey Livid",
+ "Purple Livid", "Scream Livid", "Smile Livid", "Vendetta Livid" ->
+ LividColor.getGlowColor(name);
+ case "Blobbercyst " -> Formatting.GREEN.getColorValue();
+ default -> 0xf57738;
+ };
+ }
+
+ // copypaste nukekebi head logic
+ if (entity instanceof ArmorStandEntity && isNukekubiHead((ArmorStandEntity) entity)) {
+ return 0x990099;
+ }
+
+ return 0xf57738;
+ }
}