From c51243c696effb2980eb83d642ab16447ca99898 Mon Sep 17 00:00:00 2001 From: Julienraptor01 Date: Wed, 13 Sep 2023 21:18:26 +0200 Subject: remove the typo i did left 2 backslashes at the front... --- src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/me/xmrvizzy') diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index ca3b221a..0763a900 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -67,7 +67,7 @@ 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"); @ConfigEntry.Category("button4") @ConfigEntry.Gui.CollapsibleObject() -- cgit From 8bf01414bfb330c2f71f96343733112d987f4194 Mon Sep 17 00:00:00 2001 From: Julienraptor01 Date: Thu, 14 Sep 2023 02:33:22 +0200 Subject: Make the pet quicknav button regex work if the user only has 1 page This commit was made on my phone, the code isn't tested --- src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/me/xmrvizzy') diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index 0763a900..e4dd6c52 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -67,7 +67,7 @@ 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"); @ConfigEntry.Category("button4") @ConfigEntry.Gui.CollapsibleObject() -- cgit From d5730dd9b1659e5ffbfb95d413be836157a86370 Mon Sep 17 00:00:00 2001 From: Julienraptor01 Date: Thu, 14 Sep 2023 11:32:58 +0200 Subject: Fix regexes --- src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/me/xmrvizzy') diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index e4dd6c52..7c81cf64 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -71,7 +71,7 @@ public class SkyblockerConfig implements ConfigData { @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"); @ConfigEntry.Category("button5") @ConfigEntry.Gui.CollapsibleObject() -- cgit From 252514fc2ba712d1d9b62b14264627290b5633c4 Mon Sep 17 00:00:00 2001 From: Julienraptor01 Date: Thu, 14 Sep 2023 11:43:49 +0200 Subject: fix one more regex that did go trough --- src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/me/xmrvizzy') diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index 7c81cf64..2414f88e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -79,7 +79,7 @@ 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"); @ConfigEntry.Category("button7") @ConfigEntry.Gui.CollapsibleObject() -- cgit From dca1f5abbb96a5dca7c672f311d13772726f6a8e Mon Sep 17 00:00:00 2001 From: Julienraptor01 Date: Thu, 14 Sep 2023 11:44:08 +0200 Subject: add the fail-safe --- .../xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/main/java/me/xmrvizzy') 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)) ); -- cgit From 7cbc13d0cfb1ed061e9c805dbb37074b8771fb81 Mon Sep 17 00:00:00 2001 From: Julienraptor01 Date: Thu, 14 Sep 2023 15:34:04 +0200 Subject: add comments for the regex explanations --- .../me/xmrvizzy/skyblocker/config/SkyblockerConfig.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/main/java/me/xmrvizzy') diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index 2414f88e..a367ade4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -68,10 +68,18 @@ public class SkyblockerConfig implements ConfigData { @ConfigEntry.Category("button3") @ConfigEntry.Gui.CollapsibleObject() 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"); + /* 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() @@ -80,6 +88,11 @@ public class SkyblockerConfig implements ConfigData { @ConfigEntry.Category("button6") @ConfigEntry.Gui.CollapsibleObject() 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() -- cgit