aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-06-06 15:57:12 +0300
committerRime <81419447+Emirlol@users.noreply.github.com>2024-06-08 04:13:47 +0300
commit4442a6589173484581dbfaec811f2ec2d5ac6de4 (patch)
tree2f9540a14a68eb58f59a9c4a9a149d3770faab2f /src/main/java/de/hysky/skyblocker/skyblock
parentfda12a425035591d2fa27ea700a1fd471d5119be (diff)
downloadSkyblocker-4442a6589173484581dbfaec811f2ec2d5ac6de4.tar.gz
Skyblocker-4442a6589173484581dbfaec811f2ec2d5ac6de4.tar.bz2
Skyblocker-4442a6589173484581dbfaec811f2ec2d5ac6de4.zip
Refactor EnchantmentLevelAdder to use nbt rather than lore
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EnchantmentLevelAdder.java13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EnchantmentLevelAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EnchantmentLevelAdder.java
index 46be2a7f..4131d07c 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EnchantmentLevelAdder.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EnchantmentLevelAdder.java
@@ -6,6 +6,8 @@ import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.RomanNumerals;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
+import net.minecraft.nbt.NbtCompound;
+import net.minecraft.nbt.NbtElement;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
@@ -24,12 +26,13 @@ public class EnchantmentLevelAdder extends SlotTextAdder {
if (!itemStack.isOf(Items.ENCHANTED_BOOK)) return List.of();
String name = itemStack.getName().getString();
if (name.equals("Enchanted Book")) {
- List<Text> lore = ItemUtils.getLore(itemStack);
- if (lore.isEmpty()) return List.of();
- int level = getEnchantLevelFromString(lore.getFirst().getString());
- if (level == 0) return List.of();
+ NbtCompound nbt = ItemUtils.getCustomData(itemStack);
+ if (nbt.isEmpty() || !nbt.contains("enchantments", NbtElement.COMPOUND_TYPE)) return List.of();
+ NbtCompound enchantments = nbt.getCompound("enchantments");
+ if (enchantments.getSize() != 1) return List.of(); //Only makes sense to display the level when there's one enchant.
+ int level = enchantments.getInt(enchantments.getKeys().iterator().next());
return List.of(PositionedText.BOTTOM_LEFT(Text.literal(String.valueOf(level)).formatted(Formatting.GREEN)));
- } else { //In bazaar, the books have the enchantment name in the name
+ } else { //In bazaar, the books have the enchantment level in the name
int level = getEnchantLevelFromString(name);
if (level == 0) return List.of();
return List.of(PositionedText.BOTTOM_LEFT(Text.literal(String.valueOf(level)).formatted(Formatting.GREEN)));