diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-06-08 13:19:43 +0800 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-06-10 12:21:45 +0800 |
commit | 104fdf1f21716b8be4fe4eba1a7ad16195841cf3 (patch) | |
tree | a83e42f5418f8d9ea0694149cbc653ac3c0744ef /src/main/java/de/hysky | |
parent | dcbbea4a299e2be7afcb4fb986504d3ef7475405 (diff) | |
download | Skyblocker-104fdf1f21716b8be4fe4eba1a7ad16195841cf3.tar.gz Skyblocker-104fdf1f21716b8be4fe4eba1a7ad16195841cf3.tar.bz2 Skyblocker-104fdf1f21716b8be4fe4eba1a7ad16195841cf3.zip |
Add collection slot text
Diffstat (limited to 'src/main/java/de/hysky')
3 files changed, 38 insertions, 4 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 c97171e0..a4a83455 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 @@ -24,7 +24,8 @@ public class SlotTextManager { new RancherBootsSpeedAdder(), new AttributeShardAdder(), new PrehistoricEggAdder(), - new PotionLevelAdder() + new PotionLevelAdder(), + new CollectionAdder() }; private static final ArrayList<SlotTextAdder> currentScreenAdders = new ArrayList<>(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/CollectionAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/CollectionAdder.java new file mode 100644 index 00000000..e577f0d8 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/CollectionAdder.java @@ -0,0 +1,33 @@ +package de.hysky.skyblocker.skyblock.item.slottext.adders; + +import de.hysky.skyblocker.skyblock.item.slottext.SlotText; +import de.hysky.skyblocker.skyblock.item.slottext.SlotTextAdder; +import de.hysky.skyblocker.utils.RomanNumerals; +import net.minecraft.item.ItemStack; +import net.minecraft.screen.slot.Slot; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; +import org.jetbrains.annotations.NotNull; + +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class CollectionAdder extends SlotTextAdder { + private static final Pattern COLLECTION = Pattern.compile("^[\\w ]+ (?<level>[IVXLCDM]+)$"); + + public CollectionAdder() { + super("^\\w+ Collections"); + } + + @Override + public @NotNull List<SlotText> getText(Slot slot) { + final ItemStack stack = slot.getStack(); + Matcher matcher = COLLECTION.matcher(stack.getName().getString()); + if (matcher.matches()) { + int level = RomanNumerals.romanToDecimal(matcher.group("level")); + return List.of(SlotText.bottomRight(Text.literal(String.valueOf(level)).formatted(Formatting.YELLOW))); + } + return List.of(); + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PotionLevelAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PotionLevelAdder.java index 09114029..457d2964 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PotionLevelAdder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PotionLevelAdder.java @@ -1,6 +1,6 @@ package de.hysky.skyblocker.skyblock.item.slottext.adders; -import de.hysky.skyblocker.skyblock.item.slottext.PositionedText; +import de.hysky.skyblocker.skyblock.item.slottext.SlotText; import de.hysky.skyblocker.skyblock.item.slottext.SlotTextAdder; import de.hysky.skyblocker.utils.ItemUtils; import net.minecraft.item.ItemStack; @@ -15,12 +15,12 @@ import java.util.List; public class PotionLevelAdder extends SlotTextAdder { @Override - public @NotNull List<PositionedText> getText(Slot slot) { + public @NotNull List<SlotText> getText(Slot slot) { final ItemStack stack = slot.getStack(); NbtCompound customData = ItemUtils.getCustomData(stack); if (customData.contains("potion_level", NbtElement.INT_TYPE)) { int level = customData.getInt("potion_level"); - return List.of(PositionedText.BOTTOM_RIGHT(Text.literal(String.valueOf(level)).formatted(Formatting.AQUA))); + return List.of(SlotText.bottomRight(Text.literal(String.valueOf(level)).formatted(Formatting.AQUA))); } return List.of(); } |