diff options
| author | Yasin <19829407+LifeIsAParadox@users.noreply.github.com> | 2025-05-08 00:08:43 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-07 18:08:43 -0400 |
| commit | c61721e5e76aa02b6222fc47609a11c8da12aaf8 (patch) | |
| tree | eac895327e9c46fa8f432e9c51948858d749ed62 /src/main/java | |
| parent | 3548ce05dac929cf2037fdb6c02f09a01d13e0b2 (diff) | |
| download | Skyblocker-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')
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); + } +} |
