aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky/skyblocker')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/ExoticCheck.java87
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/PriceInfoTooltip.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/Constants.java25
5 files changed, 126 insertions, 6 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
index 8905644f..4959ca3b 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
@@ -178,7 +178,7 @@ public class SkyblockerConfig {
public FairySouls fairySouls = new FairySouls();
@SerialEntry
- public MythologicalRitual mythologicalRitual = new MythologicalRitual();
+ public MythologicalRitual mythologicalRitual = new MythologicalRitual();
@SerialEntry
public ItemCooldown itemCooldown = new ItemCooldown();
@@ -485,6 +485,9 @@ public class SkyblockerConfig {
@SerialEntry
public boolean enableMuseumDate = true;
+
+ @SerialEntry
+ public boolean enableExoticCheck = true;
}
public static class ItemInfoDisplay {
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
index 10b21891..8ce00172 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
@@ -356,6 +356,13 @@ public class GeneralCategory {
newValue -> config.general.itemTooltip.enableMuseumDate = newValue)
.controller(ConfigUtils::createBooleanController)
.build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("text.autoconfig.skyblocker.option.general.itemTooltip.enableExoticCheck"))
+ .binding(defaults.general.itemTooltip.enableExoticCheck,
+ () -> config.general.itemTooltip.enableExoticCheck,
+ newValue -> config.general.itemTooltip.enableExoticCheck = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
.build())
//Item Info Display
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ExoticCheck.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ExoticCheck.java
new file mode 100644
index 00000000..130ef049
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ExoticCheck.java
@@ -0,0 +1,87 @@
+package de.hysky.skyblocker.skyblock.item;
+
+import de.hysky.skyblocker.utils.Constants;
+import net.minecraft.nbt.NbtCompound;
+import net.minecraft.text.MutableText;
+import net.minecraft.text.Text;
+import net.minecraft.util.Formatting;
+
+public class ExoticCheck {
+ public static String getExpectedHex(String id) {
+ String color = PriceInfoTooltip.colorJson.get(id).getAsString();
+ if (color != null) {
+ String[] RGBValues = color.split(",");
+ String hex = String.format("%02x%02x%02x", Integer.parseInt(RGBValues[0]), Integer.parseInt(RGBValues[1]), Integer.parseInt(RGBValues[2]));
+ return hex.toUpperCase();
+ } else {
+ System.out.println("Color is null");
+ return null;
+ }
+ }
+
+ public static boolean isException(String id, String hex) {
+ if (id.startsWith("LEATHER") || id.equals("GHOST_BOOTS") || Constants.SEYMOUR_IDS.contains(id)) {
+ return true;
+ }
+ if (id.startsWith("RANCHER")) {
+ return Constants.RANCHERS.contains(hex);
+ }
+ if (id.contains("ADAPTIVE_CHESTPLATE")) {
+ return Constants.ADAPTIVE_CHEST.contains(hex);
+ } else if (id.contains("ADAPTIVE")) {
+ return Constants.ADAPTIVE.contains(hex);
+ }
+ if (id.startsWith("REAPER")) {
+ return Constants.REAPER.contains(hex);
+ }
+ if (id.startsWith("FAIRY")) {
+ return Constants.FAIRY_HEXES.contains(hex);
+ }
+ if (id.startsWith("CRYSTAL")) {
+ return Constants.CRYSTAL_HEXES.contains(hex);
+ }
+ if (id.contains("SPOOK")) {
+ return Constants.SPOOK.contains(hex);
+ }
+ return false;
+ }
+
+ public static String checkDyeType(String hex) {
+ if (Constants.CRYSTAL_HEXES.contains(hex)) {
+ return "CRYSTAL";
+ }
+ if (Constants.FAIRY_HEXES.contains(hex)) {
+ return "FAIRY";
+ }
+ if (Constants.OG_FAIRY_HEXES.contains(hex)) {
+ return "OG_FAIRY";
+ }
+ if (Constants.SPOOK.contains(hex)) {
+ return "SPOOK";
+ }
+ if (Constants.GLITCHED.contains(hex)) {
+ return "GLITCHED";
+ }
+ return "EXOTIC";
+ }
+
+ public static boolean intendedDyed(NbtCompound ItemData) {
+ return ItemData.getCompound("ExtraAttributes").contains("dye_item");
+ }
+
+ public static Formatting getFormattingColor(String s) {
+ return switch (s) {
+ case "CRYSTAL" -> Formatting.AQUA;
+ case "FAIRY" -> Formatting.LIGHT_PURPLE;
+ case "OG_FAIRY" -> Formatting.DARK_PURPLE;
+ case "SPOOK" -> Formatting.RED;
+ case "GLITCHED" -> Formatting.BLUE;
+ case "EXOTIC" -> Formatting.GOLD;
+ default -> Formatting.DARK_GRAY;
+ };
+ }
+
+ public static MutableText getTranslatedText(String s) {
+ return Text.translatable("skyblocker.exotic." + s.toLowerCase());
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/PriceInfoTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/PriceInfoTooltip.java
index e8d619cd..9e38f276 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/PriceInfoTooltip.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/PriceInfoTooltip.java
@@ -4,7 +4,6 @@ import com.google.gson.JsonObject;
import de.hysky.skyblocker.SkyblockerMod;
import de.hysky.skyblocker.config.SkyblockerConfig;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
-import de.hysky.skyblocker.skyblock.item.exotic.CheckExotic;
import de.hysky.skyblocker.utils.Constants;
import de.hysky.skyblocker.utils.Http;
import de.hysky.skyblocker.utils.ItemUtils;
@@ -39,7 +38,6 @@ public class PriceInfoTooltip {
private static JsonObject motesPricesJson;
public static JsonObject colorJson;
private static volatile boolean nullMsgSend = false;
- private final static Gson gson = new Gson();
private static final Map<String, String> apiAddresses;
private static long npcHash = 0;
private static long museumHash = 0;
@@ -62,7 +60,7 @@ public class PriceInfoTooltip {
return;
}
- if (SkyblockerConfig.get().general.itemTooltip.enableExoticCheck) {
+ if (SkyblockerConfigManager.get().general.itemTooltip.enableExoticCheck) {
if (colorJson == null) {
nullWarning();
} else if (stack.getNbt() != null) {
@@ -416,11 +414,11 @@ public class PriceInfoTooltip {
if (SkyblockerConfigManager.get().general.itemTooltip.enableMotesPrice && motesPricesJson == null)
futureList.add(CompletableFuture.runAsync(() -> motesPricesJson = downloadPrices("motes")));
- if (SkyblockerConfig.get().general.itemTooltip.enableExoticCheck && colorJson == null)
+ if (SkyblockerConfigManager.get().general.itemTooltip.enableExoticCheck && colorJson == null)
futureList.add(CompletableFuture.runAsync(() -> colorJson = downloadPrices("color")));
minute++;
- CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0]))
+ CompletableFuture.allOf(futureList.toArray(CompletableFuture[]::new))
.whenComplete((unused, throwable) -> nullMsgSend = false);
}, 1200, true);
}
diff --git a/src/main/java/de/hysky/skyblocker/utils/Constants.java b/src/main/java/de/hysky/skyblocker/utils/Constants.java
index f144b519..94eacf49 100644
--- a/src/main/java/de/hysky/skyblocker/utils/Constants.java
+++ b/src/main/java/de/hysky/skyblocker/utils/Constants.java
@@ -1,5 +1,6 @@
package de.hysky.skyblocker.utils;
+import java.util.List;
import java.util.function.IntFunction;
import java.util.function.Supplier;
import java.util.function.UnaryOperator;
@@ -28,4 +29,28 @@ public interface Constants {
.append(Text.literal("e").styled(WITH_COLOR.apply(0x12d5eb)))
.append(Text.literal("r").styled(WITH_COLOR.apply(0x14d0ff)))
.append(Text.literal("] ").formatted(Formatting.GRAY));
+
+
+ List<String> SEYMOUR_IDS = List.of("VELVET_TOP_HAT", "CASHMERE_JACKET", "SATIN_TROUSERS", "OXFORD_SHOES");
+
+ // Exotic Hexes
+ List<String> CRYSTAL_HEXES = List.of("1F0030", "46085E", "54146E", "5D1C78", "63237D", "6A2C82", "7E4196", "8E51A6", "9C64B3", "A875BD",
+ "B88BC9", "C6A3D4", "D9C1E3", "E5D1ED", "EFE1F5", "FCF3FF");
+ List<String> FAIRY_HEXES = List.of("330066", "4C0099", "660033", "660066", "6600CC", "7F00FF", "99004C", "990099", "9933FF", "B266FF",
+ "CC0066", "CC00CC", "CC99FF", "E5CCFF", "FF007F", "FF00FF", "FF3399", "FF33FF", "FF66B2", "FF66FF", "FF99CC", "FF99FF", "FFCCE5",
+ "FFCCFF");
+ List<String> OG_FAIRY_HEXES = List.of("FF99FF", "FFCCFF", "E5CCFF", "CC99FF", "CC00CC", "FF00FF", "FF33FF", "FF66FF",
+ "B266FF", "9933FF", "7F00FF", "660066", "6600CC", "4C0099", "330066", "990099", "660033", "99004C", "CC0066",
+ "660033", "99004C", "FFCCE5", "660033", "FFCCE5", "FF99CC", "FFCCE5", "FF99CC", "FF66B2");
+ List<String> GLITCHED = List.of("FFDC51", "F7DA33", "606060", "E7413C", "45413C", "4A14B7", "1793C4", "000000", "E75C3C", "65605A",
+ "5D2FB9", "17A8C4", "E76E3C", "88837E", "8969C8", "1CD4E4"); // Glitched through other means such as Shark Scale upgrade color
+ List<String> SPOOK = List.of("000000", "070008", "0E000F", "150017", "1B001F", "220027", "29002E", "300036", "37003E", "3E0046",
+ "45004D", "4C0055", "52005D", "590065", "60006C", "670074", "6E007C", "750084", "7C008B", "830093",
+ "89009B", "9000A3", "9700AA", "993399", "9E00B2");
+
+ // List of exceptions
+ List<String> RANCHERS = List.of("CC5500", "000000", "0");
+ List<String> REAPER = List.of("1B1B1B", "FF0000");
+ List<String> ADAPTIVE_CHEST = List.of("3ABE78", "82E3D8", "BFBCB2", "D579FF", "FF4242", "FFC234");
+ List<String> ADAPTIVE = List.of("169F57", "2AB5A5", "6E00A0", "BB0000", "BFBCB2", "FFF7E6");
}