diff options
author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-05-31 21:25:40 +0300 |
---|---|---|
committer | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-08 04:13:47 +0300 |
commit | a74e944f417b14ae73d59cf3ca9e35508726a5bf (patch) | |
tree | c18de9dc10c959b3ff0c53f622b6f9f187b51599 | |
parent | fd7143c51f131fa9d0aafd00db8172d6426a6a18 (diff) | |
download | Skyblocker-a74e944f417b14ae73d59cf3ca9e35508726a5bf.tar.gz Skyblocker-a74e944f417b14ae73d59cf3ca9e35508726a5bf.tar.bz2 Skyblocker-a74e944f417b14ae73d59cf3ca9e35508726a5bf.zip |
Add skill level slot text
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java | 8 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkillLevelAdder.java | 31 |
2 files changed, 34 insertions, 5 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 7087f602..d23e0739 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 @@ -1,9 +1,6 @@ package de.hysky.skyblocker.skyblock.item.slottext; -import de.hysky.skyblocker.skyblock.item.slottext.adders.EnchantmentLevelAdder; -import de.hysky.skyblocker.skyblock.item.slottext.adders.MinionLevelAdder; -import de.hysky.skyblocker.skyblock.item.slottext.adders.PetLevelAdder; -import de.hysky.skyblocker.skyblock.item.slottext.adders.SkyblockLevelAdder; +import de.hysky.skyblocker.skyblock.item.slottext.adders.*; import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; @@ -18,7 +15,8 @@ public class SlotTextManager { new EnchantmentLevelAdder(), new MinionLevelAdder(), new PetLevelAdder(), - new SkyblockLevelAdder() + new SkyblockLevelAdder(), + new SkillLevelAdder() }; private static final ArrayList<SlotTextAdder> currentScreenAdders = new ArrayList<>(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkillLevelAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkillLevelAdder.java new file mode 100644 index 00000000..03f9fbd0 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkillLevelAdder.java @@ -0,0 +1,31 @@ +package de.hysky.skyblocker.skyblock.item.slottext.adders; + +import de.hysky.skyblocker.skyblock.item.slottext.SlotTextAdder; +import de.hysky.skyblocker.utils.RomanNumerals; +import net.minecraft.screen.slot.Slot; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; +import org.jetbrains.annotations.Nullable; + +public class SkillLevelAdder extends SlotTextAdder { + public SkillLevelAdder() { + super("^Your Skills"); + } + + @Override + public @Nullable Text getText(Slot slot) { + switch (slot.id) { + case 19, 20, 21, 22, 23, 24, 25, 29, 30, 31, 32 -> { //These are the slots that contain the skill items. Note that they aren't continuous, as there are 2 rows. + String name = slot.getStack().getName().getString(); + int lastIndex = name.lastIndexOf(' '); + if (lastIndex == -1) return Text.literal("0").formatted(Formatting.LIGHT_PURPLE); //Skills without any levels don't display any roman numerals. Probably because 0 doesn't exist. + String romanNumeral = name.substring(lastIndex + 1); //+1 because we don't need the space itself + if (!RomanNumerals.isValidRomanNumeral(romanNumeral)) return null; + return Text.literal(String.valueOf(RomanNumerals.romanToDecimal(romanNumeral))).formatted(Formatting.LIGHT_PURPLE); + } + default -> { + return null; + } + } + } +} |