aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-06-05 00:24:01 +0300
committerRime <81419447+Emirlol@users.noreply.github.com>2024-06-08 04:13:47 +0300
commitb39d0698a9f5349c359aebab3c21f9de009d00ad (patch)
tree47c235789804787b464a51867af538c3440f3beb /src/main/java
parent94f3d4f3cdcc63b6b3d95724a18ebba6521e4f53 (diff)
downloadSkyblocker-b39d0698a9f5349c359aebab3c21f9de009d00ad.tar.gz
Skyblocker-b39d0698a9f5349c359aebab3c21f9de009d00ad.tar.bz2
Skyblocker-b39d0698a9f5349c359aebab3c21f9de009d00ad.zip
Fix RancherBootsSpeedAdder not considering player's actual speed cap
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/RancherBootsSpeedAdder.java24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/RancherBootsSpeedAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/RancherBootsSpeedAdder.java
index 43f4773b..9fd498b7 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/RancherBootsSpeedAdder.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/RancherBootsSpeedAdder.java
@@ -2,33 +2,35 @@ package de.hysky.skyblocker.skyblock.item.slottext.adders;
import de.hysky.skyblocker.skyblock.item.slottext.PositionedText;
import de.hysky.skyblocker.skyblock.item.slottext.SlotTextAdder;
-import net.minecraft.component.ComponentMap;
-import net.minecraft.component.DataComponentTypes;
-import net.minecraft.component.type.NbtComponent;
+import de.hysky.skyblocker.utils.ItemUtils;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
+import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
public class RancherBootsSpeedAdder extends SlotTextAdder {
+ private static final Pattern SPEED_PATTERN = Pattern.compile("Current Speed Cap: (\\d+) ?(\\d+)?");
+
public RancherBootsSpeedAdder() {
super();
}
- @SuppressWarnings("deprecation") //It's only deprecated to discourage usage as the nbt is supposed to be immutable, but we're not mutating it anyway, so it's fine
@Override
public @NotNull List<PositionedText> getText(Slot slot) {
final ItemStack itemStack = slot.getStack();
- if (!itemStack.isOf(Items.LEATHER_BOOTS)) return List.of();
- final ComponentMap components = itemStack.getComponents();
- if (!components.contains(DataComponentTypes.CUSTOM_DATA)) return List.of();
- NbtComponent nbt = components.get(DataComponentTypes.CUSTOM_DATA);
- if (nbt == null || nbt.isEmpty()) return List.of();
- if (!nbt.contains("ranchers_speed")) return List.of();
- return List.of(PositionedText.BOTTOM_LEFT(Text.literal(String.valueOf(nbt.getNbt().getInt("ranchers_speed"))).formatted(Formatting.GREEN)));
+ // V null-safe equals.
+ if (!itemStack.isOf(Items.LEATHER_BOOTS) && !StringUtils.equals(itemStack.getInternalId(), "RANCHERS_BOOTS")) return List.of();
+ Matcher matcher = ItemUtils.getLoreLineIfMatch(slot.getStack(), SPEED_PATTERN);
+ if (matcher == null) return List.of();
+ String speed = matcher.group(2);
+ if (speed == null) speed = matcher.group(1); //2nd group only matches when the speed cap is set to a number beyond the player's actual speed cap.
+ return List.of(PositionedText.BOTTOM_LEFT(Text.literal(speed).formatted(Formatting.GREEN)));
}
}