aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-05-24 17:55:38 +0300
committerRime <81419447+Emirlol@users.noreply.github.com>2024-07-10 02:08:24 +0300
commit2b9c8ed13a80ea5356616f1af40d3956d38aa1b3 (patch)
tree856548584be8c6776d9194101b490140ca9eb53e /src/main/java/de/hysky/skyblocker
parentb5c46c99fa5efaf5c0d43af6dc82d2e9f6581d0e (diff)
downloadSkyblocker-2b9c8ed13a80ea5356616f1af40d3956d38aa1b3.tar.gz
Skyblocker-2b9c8ed13a80ea5356616f1af40d3956d38aa1b3.tar.bz2
Skyblocker-2b9c8ed13a80ea5356616f1af40d3956d38aa1b3.zip
Bazaar Helper initial commit
Diffstat (limited to 'src/main/java/de/hysky/skyblocker')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java14
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java40
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolverManager.java5
4 files changed, 65 insertions, 2 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java
index 1518dfe7..12547018 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java
@@ -198,6 +198,20 @@ public class HelperCategory {
.build())
.build())
+ //Bazaar
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.helpers.bazaar"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.helpers.bazaar.enableBazaarHelper"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.helpers.bazaar.enableBazaarHelper.@Tooltip")))
+ .binding(defaults.helpers.bazaar.enableBazaarHelper,
+ () -> config.helpers.bazaar.enableBazaarHelper,
+ newValue -> config.helpers.bazaar.enableBazaarHelper = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .build())
+
.build();
}
}
diff --git a/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java
index 33047f1c..6ddb1a74 100644
--- a/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java
@@ -26,6 +26,9 @@ public class HelperConfig {
@SerialEntry
public ChocolateFactory chocolateFactory = new ChocolateFactory();
+ @SerialEntry
+ public Bazaar bazaar = new Bazaar();
+
public static class MythologicalRitual {
@SerialEntry
public boolean enableMythologicalRitualHelper = true;
@@ -91,4 +94,9 @@ public class HelperConfig {
@SerialEntry
public boolean enableTimeTowerReminder = true;
}
+
+ public static class Bazaar {
+ @SerialEntry
+ public boolean enableBazaarHelper = true;
+ }
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java
new file mode 100644
index 00000000..6129d604
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java
@@ -0,0 +1,40 @@
+package de.hysky.skyblocker.skyblock.bazaar;
+
+import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.utils.ItemUtils;
+import de.hysky.skyblocker.utils.render.gui.ColorHighlight;
+import de.hysky.skyblocker.utils.render.gui.ContainerSolver;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
+import net.minecraft.item.ItemStack;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class BazaarHelper extends ContainerSolver {
+ private static final Pattern ORDER_PATTERN = Pattern.compile("You have [\\d,]+ (items|coins) to claim!");
+ public BazaarHelper() {
+ super("Your Bazaar Orders");
+ }
+
+ @Override
+ protected boolean isEnabled() {
+ return SkyblockerConfigManager.get().helpers.bazaar.enableBazaarHelper;
+ }
+
+ @Override
+ protected List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots) {
+ ArrayList<ColorHighlight> highlights = new ArrayList<>();
+ for (int slot = 0; slot < slots.size(); slot++) {
+ Matcher matcher = ItemUtils.getLoreLineIfMatch(slots.get(slot), ORDER_PATTERN);
+ if (matcher != null) {
+ switch (matcher.group(1)) {
+ case "items" -> highlights.add(new ColorHighlight(slot, 0x7000AA00));
+ case "coins" -> highlights.add(new ColorHighlight(slot, 0x70FFAA00));
+ }
+ }
+ }
+ return highlights;
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolverManager.java b/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolverManager.java
index 9a1e3072..5ef4e075 100644
--- a/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolverManager.java
+++ b/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolverManager.java
@@ -1,10 +1,10 @@
package de.hysky.skyblocker.utils.render.gui;
import com.mojang.blaze3d.systems.RenderSystem;
-
import de.hysky.skyblocker.mixins.accessors.HandledScreenAccessor;
import de.hysky.skyblocker.skyblock.accessories.newyearcakes.NewYearCakeBagHelper;
import de.hysky.skyblocker.skyblock.accessories.newyearcakes.NewYearCakesHelper;
+import de.hysky.skyblocker.skyblock.bazaar.BazaarHelper;
import de.hysky.skyblocker.skyblock.chocolatefactory.ChocolateFactorySolver;
import de.hysky.skyblocker.skyblock.dungeon.CroesusHelper;
import de.hysky.skyblocker.skyblock.dungeon.CroesusProfit;
@@ -59,7 +59,8 @@ public class ContainerSolverManager {
UltrasequencerSolver.INSTANCE,
new NewYearCakeBagHelper(),
NewYearCakesHelper.INSTANCE,
- new ChocolateFactorySolver()
+ new ChocolateFactorySolver(),
+ new BazaarHelper()
};
}