aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorYasin <19829407+LifeIsAParadox@users.noreply.github.com>2025-05-08 00:08:43 +0200
committerGitHub <noreply@github.com>2025-05-07 18:08:43 -0400
commitc61721e5e76aa02b6222fc47609a11c8da12aaf8 (patch)
treeeac895327e9c46fa8f432e9c51948858d749ed62 /src/main/java
parent3548ce05dac929cf2037fdb6c02f09a01d13e0b2 (diff)
downloadSkyblocker-c61721e5e76aa02b6222fc47609a11c8da12aaf8.tar.gz
Skyblocker-c61721e5e76aa02b6222fc47609a11c8da12aaf8.tar.bz2
Skyblocker-c61721e5e76aa02b6222fc47609a11c8da12aaf8.zip
Add slot text for "choose pet" and "skyblock guide" (#1264)
* slottext for choose pet and skyblock guide * add translation strings
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/ChoosePetLevelAdder.java39
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PowerStonesGuideAdder.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkyblockGuideAdder.java37
4 files changed, 80 insertions, 2 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java
index a6a03a6d..e3226005 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java
@@ -36,6 +36,7 @@ public class SlotTextManager {
new EnchantmentLevelAdder(),
new MinionLevelAdder(),
new PetLevelAdder(),
+ new ChoosePetLevelAdder(),
new SkyblockLevelAdder(),
new HotmPerkLevelAdder(),
new SkillLevelAdder(),
@@ -55,7 +56,8 @@ public class SlotTextManager {
ChocolateFactorySolver.INSTANCE,
new EvolvingItemAdder(),
new NewYearCakeAdder(),
- WardrobeKeybinds.INSTANCE
+ WardrobeKeybinds.INSTANCE,
+ new SkyblockGuideAdder()
};
private static final ArrayList<SlotTextAdder> currentScreenAdders = new ArrayList<>();
private static final KeyBinding keyBinding = KeyBindingHelper.registerKeyBinding(new KeyBinding("key.skyblocker.slottext", GLFW.GLFW_KEY_LEFT_ALT, "key.categories.skyblocker"));
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/ChoosePetLevelAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/ChoosePetLevelAdder.java
new file mode 100644
index 00000000..4a1a41e9
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/ChoosePetLevelAdder.java
@@ -0,0 +1,39 @@
+package de.hysky.skyblocker.skyblock.item.slottext.adders;
+
+import de.hysky.skyblocker.skyblock.item.slottext.SimpleSlotTextAdder;
+import de.hysky.skyblocker.skyblock.item.slottext.SlotText;
+import de.hysky.skyblocker.utils.ItemUtils;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.Items;
+import net.minecraft.screen.slot.Slot;
+import net.minecraft.text.Text;
+import org.apache.commons.lang3.math.NumberUtils;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class ChoosePetLevelAdder extends SimpleSlotTextAdder {
+ private static final Pattern AUTOPET_LEVEL_PATTERN = Pattern.compile("Equip: ⭐? ?\\[Lvl (\\d+)].*");
+ private static final Pattern LEVEL_PATTERN = Pattern.compile("⭐? ?\\[Lvl (\\d+)].*");
+ private static final ConfigInformation CONFIG_INFORMATION = new ConfigInformation(
+ "choose_pet_pet_level",
+ "skyblocker.config.uiAndVisuals.slotText.choosePetPetLevel");
+
+ public ChoosePetLevelAdder() {super("^Choose Pet.*", CONFIG_INFORMATION);}
+
+ @Override
+ public @NotNull List<SlotText> getText(@Nullable Slot slot, @NotNull ItemStack stack, int slotId) {
+ if (slotId < 18 || slotId > 44 || !stack.isOf(Items.PLAYER_HEAD)) return List.of();
+ Matcher matcher = ItemUtils.getLoreLineIfMatch(stack, AUTOPET_LEVEL_PATTERN);
+ if (matcher == null) {
+ matcher = LEVEL_PATTERN.matcher(stack.getName().getString());
+ if (!matcher.matches()) return List.of();
+ }
+ String level = matcher.group(1);
+ if (!NumberUtils.isDigits(level) || "100".equals(level) || "200".equals(level)) return List.of();
+ return SlotText.bottomRightList(Text.literal(level).withColor(SlotText.CREAM));
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PowerStonesGuideAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PowerStonesGuideAdder.java
index 6336d532..b8cc62e5 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PowerStonesGuideAdder.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PowerStonesGuideAdder.java
@@ -30,7 +30,7 @@ public class PowerStonesGuideAdder extends SimpleSlotTextAdder {
if (match == null) return List.of();
String symbol = match.group("symbol");
Text text = symbol.equals("✖")
- ? Text.literal("✖").withColor(SlotText.LIGHT_RED)
+ ? Text.literal("✘").withColor(SlotText.LIGHT_RED)
: Text.literal("✔").withColor(SlotText.LIGHT_GREEN);
return SlotText.bottomRightList(text);
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkyblockGuideAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkyblockGuideAdder.java
new file mode 100644
index 00000000..04162c76
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkyblockGuideAdder.java
@@ -0,0 +1,37 @@
+package de.hysky.skyblocker.skyblock.item.slottext.adders;
+
+import de.hysky.skyblocker.skyblock.item.slottext.SimpleSlotTextAdder;
+import de.hysky.skyblocker.skyblock.item.slottext.SlotText;
+import net.minecraft.item.ItemStack;
+import net.minecraft.screen.slot.Slot;
+import net.minecraft.text.Text;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class SkyblockGuideAdder extends SimpleSlotTextAdder {
+ private static final Pattern GUIDE_PATTERN = Pattern.compile("^(?<symbol>[✖✔])\\s*(?<text>.+)");
+ private static final ConfigInformation CONFIG_INFORMATION = new ConfigInformation(
+ "skyblock_guide",
+ "skyblocker.config.uiAndVisuals.slotText.skyblockGuide");
+
+ public SkyblockGuideAdder() {
+ super("^(?:\\(\\d+\\/\\d+\\)\\s+)?Guide ➜ \\w+", CONFIG_INFORMATION);
+ }
+
+ @Override
+ public @NotNull List<SlotText> getText(@Nullable Slot slot, @NotNull ItemStack stack, int slotId) {
+ if (slotId < 18 || slotId > 44) return List.of();
+ Matcher match = GUIDE_PATTERN.matcher(stack.getName().getString());
+ if (!match.matches()) return List.of();
+ String symbol = match.group("symbol");
+ Text text = symbol.equals("✖")
+ ? Text.literal("✘").withColor(SlotText.LIGHT_RED)
+ : Text.literal("✔").withColor(SlotText.LIGHT_GREEN);
+
+ return SlotText.bottomRightList(text);
+ }
+}