diff options
author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-06 15:57:12 +0300 |
---|---|---|
committer | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-08 04:13:47 +0300 |
commit | 4442a6589173484581dbfaec811f2ec2d5ac6de4 (patch) | |
tree | 2f9540a14a68eb58f59a9c4a9a149d3770faab2f /src/main/java/de/hysky/skyblocker/skyblock | |
parent | fda12a425035591d2fa27ea700a1fd471d5119be (diff) | |
download | Skyblocker-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.java | 13 |
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))); |