aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/item
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/item')
-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
2 files changed, 90 insertions, 5 deletions
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);
}