From 73f861eca0423d5709ada36254dff659b1d15602 Mon Sep 17 00:00:00 2001 From: Trương Hoàng Long Date: Mon, 14 Mar 2022 22:26:20 +0100 Subject: add: filter for mana consumption message from action bar --- .../java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java | 1 + src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java | 9 +++++++++ 2 files changed, 10 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index eea430ab..669746c4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -152,6 +152,7 @@ public class SkyblockerConfig implements ConfigData { public ChatFilterResult hideCombo = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) public ChatFilterResult hideAutopet = ChatFilterResult.PASS; + public boolean hideMana = false; } public enum Info { diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java index 19e0d79e..0549d235 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java @@ -24,10 +24,14 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + @Environment(EnvType.CLIENT) @Mixin(InGameHud.class) public abstract class InGameHudMixin extends DrawableHelper { private static final Identifier SLOT_LOCK = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/slot_lock.png"); + private static final Pattern ACTION_BAR_MANA = Pattern.compile("^§b-\\d+ Mana \\(.*\\)(| +)$"); private final FancyStatusBars statusBars = new FancyStatusBars(); private MatrixStack hotbarMatrices; @@ -46,6 +50,11 @@ public abstract class InGameHudMixin extends DrawableHelper { if(!Utils.isOnSkyblock) return; String msg = message.getString(); + if (SkyblockerConfig.get().messages.hideMana) { + Matcher matcher = ACTION_BAR_MANA.matcher(msg); + if (matcher.matches()) + ci.cancel(); + } if(statusBars.update(msg)) ci.cancel(); } -- cgit From 8c5519565e4a9527e8f56219183a0b21f04b1cd0 Mon Sep 17 00:00:00 2001 From: Fix3dll Date: Sun, 20 Mar 2022 18:39:11 +0300 Subject: change: improved FancyBar and mana consumption filter Little addition for ComboFilter which I forgot to add 1 check ^v^ Thanks to @ExternalTime for help --- .../skyblocker/chat/filters/ComboFilter.java | 2 +- .../skyblocker/config/SkyblockerConfig.java | 1 + .../xmrvizzy/skyblocker/mixin/InGameHudMixin.java | 6 ------ .../skyblocker/skyblock/FancyStatusBars.java | 24 ++++++++++++++++++---- .../resources/assets/skyblocker/lang/en_us.json | 1 + .../skyblocker/chat/filters/ComboFilterTest.java | 5 +++++ 6 files changed, 28 insertions(+), 11 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ComboFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ComboFilter.java index c05afdbf..714ee9c9 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ComboFilter.java +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ComboFilter.java @@ -5,7 +5,7 @@ import me.xmrvizzy.skyblocker.config.SkyblockerConfig; public class ComboFilter extends SimpleChatFilter { public ComboFilter() { - super("^(\\+\\d+ Kill Combo \\+\\d+(% ✯ Magic Find| coins per kill)" + + super("^(\\+\\d+ Kill Combo \\+\\d+(% ✯ Magic Find| coins per kill|% Combat Exp)" + "|Your Kill Combo has expired! You reached a \\d+ Kill Combo!)$"); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index 669746c4..1862313b 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -152,6 +152,7 @@ public class SkyblockerConfig implements ConfigData { public ChatFilterResult hideCombo = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) public ChatFilterResult hideAutopet = ChatFilterResult.PASS; + @ConfigEntry.Gui.Tooltip() public boolean hideMana = false; } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java index 0549d235..b9e80bd6 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java @@ -31,7 +31,6 @@ import java.util.regex.Pattern; @Mixin(InGameHud.class) public abstract class InGameHudMixin extends DrawableHelper { private static final Identifier SLOT_LOCK = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/slot_lock.png"); - private static final Pattern ACTION_BAR_MANA = Pattern.compile("^§b-\\d+ Mana \\(.*\\)(| +)$"); private final FancyStatusBars statusBars = new FancyStatusBars(); private MatrixStack hotbarMatrices; @@ -50,11 +49,6 @@ public abstract class InGameHudMixin extends DrawableHelper { if(!Utils.isOnSkyblock) return; String msg = message.getString(); - if (SkyblockerConfig.get().messages.hideMana) { - Matcher matcher = ACTION_BAR_MANA.matcher(msg); - if (matcher.matches()) - ci.cancel(); - } if(statusBars.update(msg)) ci.cancel(); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java index 84eebed3..1d766bc1 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java @@ -16,7 +16,8 @@ import java.util.regex.Pattern; public class FancyStatusBars extends DrawableHelper { private static final MinecraftClient client = MinecraftClient.getInstance(); private static final Identifier BARS = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/bars.png"); - private static final Pattern ACTION_BAR_STATUS = Pattern.compile("^§[6c]([0-9]+)/([0-9]+)❤(?:\\+§c[0-9]+\\S)? {3,}(?:§a([0-9]+)§a❈ Defense|(\\S+(?: \\S+)*)) {3,}(?:§b([0-9]+)/([0-9]+)✎ (?:Mana|§3([0-9]+)ʬ)?|(\\S+(?: \\S+)*))(.*)$"); + private static final Pattern ACTION_BAR_MANA = Pattern.compile("§b-\\d+ Mana \\(.*\\) +"); + private static final Pattern ACTION_BAR_STATUS = Pattern.compile("^§[6c](\\d+)/(\\d+)❤(?:\\+§c\\d+.)?(?: +§a(\\d+)§a❈ Defense)?(?: +(\\S+(?:\\s\\S+)*))??(?: +§b(\\d+)/(\\d+)✎ +(?:Mana|§3(\\d+)ʬ))?(?: +(§[27].*))?$"); private final Resource[] resources = new Resource[]{ // Health @@ -30,8 +31,18 @@ public class FancyStatusBars extends DrawableHelper { }; public boolean update(String actionBar) { - if (!SkyblockerConfig.get().general.bars.enableBars) + if (!SkyblockerConfig.get().general.bars.enableBars) { + if (SkyblockerConfig.get().messages.hideMana) { + Matcher mana = ACTION_BAR_MANA.matcher(actionBar); + if (mana.find()) { + assert client.player != null; + client.player.sendMessage(Text.of(actionBar.replace(mana.group(), "")), true); + return true; + } + } return false; + } + Matcher matcher = ACTION_BAR_STATUS.matcher(actionBar); if (!matcher.matches()) return false; @@ -51,9 +62,14 @@ public class FancyStatusBars extends DrawableHelper { resources[3].setFillLevel(client.player.experienceLevel, client.player.experienceProgress); StringBuilder sb = new StringBuilder(); - appendIfNotNull(sb, matcher.group(4)); + if (SkyblockerConfig.get().messages.hideMana) { + Matcher mana = ACTION_BAR_MANA.matcher(actionBar); + if (!mana.find()) + appendIfNotNull(sb, matcher.group(4)); + } else { + appendIfNotNull(sb, matcher.group(4)); + } appendIfNotNull(sb, matcher.group(8)); - appendIfNotNull(sb, matcher.group(9)); if (!sb.isEmpty()) { assert client.player != null; diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index e60eb0aa..91b2cf28 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -58,6 +58,7 @@ "text.autoconfig.skyblocker.option.messages.hideCombo": "Hide Combo Messages", "text.autoconfig.skyblocker.option.messages.hideAutopet": "Hide Autopet Messages", "text.autoconfig.skyblocker.option.messages.hideMana": "Hide Mana Consumption Messages from Action Bar", + "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Gives a better experience with FancyBar", "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2There is a new version available!", "skyblocker.update.update_link": " §2§nClick here§r", diff --git a/src/test/java/me/xmrvizzy/skyblocker/chat/filters/ComboFilterTest.java b/src/test/java/me/xmrvizzy/skyblocker/chat/filters/ComboFilterTest.java index 8af25b5e..85d38f44 100644 --- a/src/test/java/me/xmrvizzy/skyblocker/chat/filters/ComboFilterTest.java +++ b/src/test/java/me/xmrvizzy/skyblocker/chat/filters/ComboFilterTest.java @@ -17,6 +17,11 @@ public class ComboFilterTest extends ChatFilterTest { assertMatches("+10 Kill Combo +10 coins per kill"); } + @Test + void testComboEXP() { + assertMatches("+20 Kill Combo +15% Combat Exp"); + } + @Test void testComboExpired() { assertMatches("Your Kill Combo has expired! You reached a 11 Kill Combo!"); -- cgit From 17bbd926da6c16149ce8d3bf07837aa2f04243ff Mon Sep 17 00:00:00 2001 From: Fix3dll Date: Mon, 28 Mar 2022 22:23:17 +0300 Subject: add: HP regeneration to actionbar --- .../skyblocker/skyblock/FancyStatusBars.java | 25 ++++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java index 1d766bc1..75d232e9 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java @@ -17,7 +17,7 @@ public class FancyStatusBars extends DrawableHelper { private static final MinecraftClient client = MinecraftClient.getInstance(); private static final Identifier BARS = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/bars.png"); private static final Pattern ACTION_BAR_MANA = Pattern.compile("§b-\\d+ Mana \\(.*\\) +"); - private static final Pattern ACTION_BAR_STATUS = Pattern.compile("^§[6c](\\d+)/(\\d+)❤(?:\\+§c\\d+.)?(?: +§a(\\d+)§a❈ Defense)?(?: +(\\S+(?:\\s\\S+)*))??(?: +§b(\\d+)/(\\d+)✎ +(?:Mana|§3(\\d+)ʬ))?(?: +(§[27].*))?$"); + private static final Pattern ACTION_BAR_STATUS = Pattern.compile("^§[6c](\\d+)/(\\d+)❤(\\+§c\\d+.)?(?: +§a(\\d+)§a❈ Defense)?(?: +(\\S+(?:\\s\\S+)*))??(?: +§b(\\d+)/(\\d+)✎ +(?:Mana|§3(\\d+)ʬ))?(?: +(§[27].*))?$"); private final Resource[] resources = new Resource[]{ // Health @@ -48,28 +48,31 @@ public class FancyStatusBars extends DrawableHelper { return false; resources[0].setMax(Integer.parseInt(matcher.group(1)), Integer.parseInt(matcher.group(2))); - if (matcher.group(3) != null) { - int def = Integer.parseInt(matcher.group(3)); + if (matcher.group(4) != null) { + int def = Integer.parseInt(matcher.group(4)); resources[2].setFillLevel(def, (double) def / ((double) def + 100D)); } - if (matcher.group(5) != null) { - int m = Integer.parseInt(matcher.group(5)); - if (matcher.group(7) != null) - m += Integer.parseInt(matcher.group(7)); - resources[1].setMax(m, Integer.parseInt(matcher.group(6))); + if (matcher.group(6) != null) { + int m = Integer.parseInt(matcher.group(6)); + if (matcher.group(8) != null) + m += Integer.parseInt(matcher.group(8)); + resources[1].setMax(m, Integer.parseInt(matcher.group(7))); } assert client.player != null; resources[3].setFillLevel(client.player.experienceLevel, client.player.experienceProgress); StringBuilder sb = new StringBuilder(); + if (matcher.group(3) != null) { + sb.append("§c").append(matcher.group(3)); + } if (SkyblockerConfig.get().messages.hideMana) { Matcher mana = ACTION_BAR_MANA.matcher(actionBar); if (!mana.find()) - appendIfNotNull(sb, matcher.group(4)); + appendIfNotNull(sb, matcher.group(5)); } else { - appendIfNotNull(sb, matcher.group(4)); + appendIfNotNull(sb, matcher.group(5)); } - appendIfNotNull(sb, matcher.group(8)); + appendIfNotNull(sb, matcher.group(9)); if (!sb.isEmpty()) { assert client.player != null; -- cgit