aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-05-31 21:25:40 +0300
committerRime <81419447+Emirlol@users.noreply.github.com>2024-06-08 04:13:47 +0300
commita74e944f417b14ae73d59cf3ca9e35508726a5bf (patch)
treec18de9dc10c959b3ff0c53f622b6f9f187b51599
parentfd7143c51f131fa9d0aafd00db8172d6426a6a18 (diff)
downloadSkyblocker-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.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkillLevelAdder.java31
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;
+ }
+ }
+ }
+}