aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy
diff options
context:
space:
mode:
authorKevin <92656833+kevinthegreat1@users.noreply.github.com>2023-09-16 12:32:32 -0400
committerGitHub <noreply@github.com>2023-09-16 12:32:32 -0400
commit113027308dc87ab63e7180182c0dd6be35aac599 (patch)
tree79e16d20f8d37b38bfab7badb6e79ec331666dbc /src/main/java/me/xmrvizzy
parentf41ee09fd96983edea8eb307ff61d7a4a72c0edb (diff)
parent7cbc13d0cfb1ed061e9c805dbb37074b8771fb81 (diff)
downloadSkyblocker-113027308dc87ab63e7180182c0dd6be35aac599.tar.gz
Skyblocker-113027308dc87ab63e7180182c0dd6be35aac599.tar.bz2
Skyblocker-113027308dc87ab63e7180182c0dd6be35aac599.zip
Merge pull request #301 from Julienraptor01/patch-1
fix the regexes for quicknav and add a fail-safe
Diffstat (limited to 'src/main/java/me/xmrvizzy')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java19
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java17
2 files changed, 32 insertions, 4 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
index 4241f68c..d20dd29b 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
@@ -67,11 +67,19 @@ public class SkyblockerConfig implements ConfigData {
@ConfigEntry.Category("button3")
@ConfigEntry.Gui.CollapsibleObject()
- public QuickNavItem button3 = new QuickNavItem(true, new ItemData("bone"), "\\Pets \\(\\d+/\\d+\\)", "/pets");
+ public QuickNavItem button3 = new QuickNavItem(true, new ItemData("bone"), "Pets(:? \\(\\d+\\/\\d+\\))?", "/pets");
+ /* REGEX Explanation
+ * "Pets" : simple match on letters
+ * "(?: \\(\\d+\\/\\d+\\))?" : optional match on the non-capturing group for the page in the format " ($number/$number)"
+ */
@ConfigEntry.Category("button4")
@ConfigEntry.Gui.CollapsibleObject()
- public QuickNavItem button4 = new QuickNavItem(true, new ItemData("leather_chestplate", 1, "tag:{display:{color:8991416}}"), "Wardrobe \\([12]/2\\)", "/wardrobe");
+ public QuickNavItem button4 = new QuickNavItem(true, new ItemData("leather_chestplate", 1, "tag:{display:{color:8991416}}"), "Wardrobe \\([12]\\/2\\)", "/wardrobe");
+ /* REGEX Explanation
+ * "Wardrobe" : simple match on letters
+ * " \\([12]\\/2\\)" : match on the page either " (1/2)" or " (2/2)"
+ */
@ConfigEntry.Category("button5")
@ConfigEntry.Gui.CollapsibleObject()
@@ -79,7 +87,12 @@ public class SkyblockerConfig implements ConfigData {
@ConfigEntry.Category("button6")
@ConfigEntry.Gui.CollapsibleObject()
- public QuickNavItem button6 = new QuickNavItem(true, new ItemData("ender_chest"), "(?:Rift )?Storage(?: \\(1/2\\))?", "/storage");
+ public QuickNavItem button6 = new QuickNavItem(true, new ItemData("ender_chest"), "(?:Rift )?Storage(?: \\([12]\\/2\\))?", "/storage");
+ /* REGEX Explanation
+ * "(?:Rift )?" : optional match on the non-capturing group "Rift "
+ * "Storage" : simple match on letters
+ * "(?: \\([12]\\/2\\))?" : optional match on the non-capturing group " (1/2)" or " (2/2)"
+ */
@ConfigEntry.Category("button7")
@ConfigEntry.Gui.CollapsibleObject()
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java
index 749e26e9..fb8f438b 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java
@@ -5,13 +5,18 @@ import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.utils.Utils;
import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents;
import net.fabricmc.fabric.api.client.screen.v1.Screens;
+import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.ingame.HandledScreen;
+import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.StringNbtReader;
+import net.minecraft.text.Text;
+import net.minecraft.util.Formatting;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
+import java.util.regex.PatternSyntaxException;
public class QuickNav {
private static final String skyblockHubIconNbt = "{id:\"minecraft:player_head\",Count:1,tag:{SkullOwner:{Id:[I;-300151517,-631415889,-1193921967,-1821784279],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0=\"}]}}}}";
@@ -54,8 +59,18 @@ public class QuickNav {
String nbtString = "{id:\"minecraft:" + itemData.itemName.toLowerCase(Locale.ROOT) + "\",Count:1";
if (itemData.nbt.length() > 2) nbtString += "," + itemData.nbt;
nbtString += "}";
+ boolean uiTitleMatches = false;
+ try {
+ uiTitleMatches = screenTitle.matches(buttonInfo.uiTitle);
+ } catch (PatternSyntaxException e) {
+ e.printStackTrace();
+ ClientPlayerEntity player = MinecraftClient.getInstance().player;
+ if (player != null) {
+ player.sendMessage(Text.of(Formatting.RED + "[Skyblocker] Invalid regex in quicknav button " + (id + 1) + "!"), false);
+ }
+ }
return new QuickNavButton(id,
- screenTitle.matches(buttonInfo.uiTitle),
+ uiTitleMatches,
buttonInfo.clickEvent,
ItemStack.fromNbt(StringNbtReader.parse(nbtString))
);