diff options
author | Spencer <75862693+TacoMonkey11@users.noreply.github.com> | 2022-04-12 08:09:15 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-12 08:09:15 -0400 |
commit | 1cdaa3cd24cef1f021237a8e0d3748faa75c7cfe (patch) | |
tree | b153c0377a9be09bf69792fbb93cfd2da66c0046 /src | |
parent | 1971d74529540a230acff05bc87c82997462da67 (diff) | |
parent | 481ea9be68c316ff362c64457f72968ec72120d5 (diff) | |
download | Skyblocker-1cdaa3cd24cef1f021237a8e0d3748faa75c7cfe.tar.gz Skyblocker-1cdaa3cd24cef1f021237a8e0d3748faa75c7cfe.tar.bz2 Skyblocker-1cdaa3cd24cef1f021237a8e0d3748faa75c7cfe.zip |
Merge branch 'SkyblockerMod:master' into fabricapi-events
Diffstat (limited to 'src')
11 files changed, 108 insertions, 17 deletions
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 eea430ab..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,8 @@ 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; } public enum Info { diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java index b1bb0d93..bd99f2d4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java @@ -47,8 +47,10 @@ public abstract class HandledScreenMixin extends Screen { @Inject(at = @At("HEAD"), method = "keyPressed", cancellable = true) public void keyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable<Boolean> cir) { - if (keyCode != 256 && !MinecraftClient.getInstance().options.inventoryKey.matchesKey(keyCode, scanCode)){ - if (WikiLookup.wikiLookup.matchesKey(keyCode, scanCode)) WikiLookup.openWiki(focusedSlot); + if (focusedSlot != null){ + if (keyCode != 256 && !MinecraftClient.getInstance().options.inventoryKey.matchesKey(keyCode, scanCode)){ + if (WikiLookup.wikiLookup.matchesKey(keyCode, scanCode)) WikiLookup.openWiki(focusedSlot); + } } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java index 19e0d79e..b9e80bd6 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java @@ -24,6 +24,9 @@ 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 { diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java index 84eebed3..75d232e9 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,29 +31,47 @@ 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; 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(); - appendIfNotNull(sb, matcher.group(4)); - appendIfNotNull(sb, matcher.group(8)); + 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(5)); + } else { + appendIfNotNull(sb, matcher.group(5)); + } appendIfNotNull(sb, matcher.group(9)); if (!sb.isEmpty()) { diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java index 2413471c..290bd0ae 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java @@ -324,7 +324,7 @@ public class PriceInfoTooltip { private static void downloadLowestPrices() { JsonObject result = null; try { - URL apiAddr = new URL("https://sbe-stole-skytils.design/api/auctions/lowestbins"); + URL apiAddr = new URL("https://skytils.gg/api/auctions/lowestbins"); InputStreamReader reader = new InputStreamReader(apiAddr.openStream()); result = new Gson().fromJson(reader, JsonObject.class); } catch (IOException e) { diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index db024916..91b2cf28 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -57,6 +57,8 @@ "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Hide Teleport Pad Messages", "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/main/resources/assets/skyblocker/lang/fr_fr.json b/src/main/resources/assets/skyblocker/lang/fr_fr.json new file mode 100644 index 00000000..8dd68ce6 --- /dev/null +++ b/src/main/resources/assets/skyblocker/lang/fr_fr.json @@ -0,0 +1,58 @@ +{
+ "key.categories.skyblocker": "Skyblocker",
+ "key.hotbarSlotLock": "Verrouillage de slot (Hotbar)",
+ "key.wikiLookup": "Recherche dans le wiki",
+ "text.autoconfig.skyblocker.title": "Paramètres de Skyblocker",
+ "text.autoconfig.skyblocker.category.general": "Général",
+ "text.autoconfig.skyblocker.option.general.bars": "Vie, mana, défense et barres d'XP",
+ "text.autoconfig.skyblocker.option.general.bars.enableBars": "Activer les barres",
+ "text.autoconfig.skyblocker.option.general.quicknav": "Navigation rapide",
+ "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Navigation rapide activée",
+ "text.autoconfig.skyblocker.option.general.itemTooltip": "Infobulle des items",
+ "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "Afficher le prix des NPC",
+ "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "Afficher le prix moyen BIN (achat immédiat)",
+ "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "Type de moyenne",
+ "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "Vous pouvez choisir sur combien de jours la moyenne est calculée",
+ "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "Afficher le prix minimal BIN (achat immédiat)",
+ "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "Afficher le prix d'achat/vente au Bazar",
+ "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Afficher le musée et la date d'ajout",
+ "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cLes informations sur le prix des items vont s'actualiser dans 60 secondes maximum. Sinon, consultez latest.log",
+ "text.autoconfig.skyblocker.category.richPresence": "Rich Presence Discord",
+ "text.autoconfig.skyblocker.option.richPresence.info": "Information à afficher",
+ "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "Cette valeur n'a aucune importance si vous faites défiler",
+ "text.autoconfig.skyblocker.option.richPresence.cycleMode": "Faire défiler les informations",
+ "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Activée",
+ "text.autoconfig.skyblocker.option.richPresence.customMessage": "Message personnalisé",
+ "text.autoconfig.skyblocker.option.general.itemList": "Liste d'items",
+ "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "Activer la liste d'items",
+ "text.autoconfig.skyblocker.category.locations": "Lieux",
+ "text.autoconfig.skyblocker.option.locations.dungeons": "Donjons",
+ "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "Activer la carte",
+ "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Résoudre le puzzle « Three Weirdos »",
+ "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "Résoudre le puzzle des blazes",
+ "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "Résoudre le quiz",
+ "text.autoconfig.skyblocker.option.locations.dungeons.oldLevers": "Hitbox de levier 1.8",
+ "text.autoconfig.skyblocker.option.locations.dungeons.terminals": "Solveurs des terminaux",
+ "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "Résoudre « Select Colored »",
+ "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveOrder": "Résoudre « Click In Order »",
+ "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveStartsWith": "Résoudre « Starts With »",
+ "text.autoconfig.skyblocker.option.locations.dwarvenMines": "Mines des nains",
+ "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "Afficher le niveau de fuel des foreuses",
+ "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Décoder les requêtes de Fetchur",
+ "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Résoudre le puzzle de Puzzler",
+ "text.autoconfig.skyblocker.category.messages": "Messages",
+ "text.autoconfig.skyblocker.option.messages.hideAbility": "Cacher le rechargement des capacités",
+ "text.autoconfig.skyblocker.option.messages.hideHeal": "Cacher les messages de soin",
+ "text.autoconfig.skyblocker.option.messages.hideAOTE": "Cacher les messages d'AOTE",
+ "text.autoconfig.skyblocker.option.messages.hideImplosion": "Cacher les messages d'implosion",
+ "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Cacher les messages de « Molten Wave » (bâton de Midas)",
+ "text.autoconfig.skyblocker.option.messages.hideAds": "Cacher la publicité dans le chat public",
+ "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Cacher les messages des téléporteurs",
+ "text.autoconfig.skyblocker.option.messages.hideCombo": "Cacher les messages de combo",
+ "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2Une nouvelle version est disponible !",
+ "skyblocker.update.update_link": " §2§nCliquez ici§r",
+ "skyblocker.update.update_message_end": " §apour découvrir les dernières fonctionnalités.",
+ "skyblocker.update.hover_text": "Ouvrir Modrinth",
+ "text.autoconfig.skyblocker.option.general.enableUpdateNotification": "Notification de mise à jour",
+ "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2Votre clé d'API a été automatiquement définie !"
+}
\ No newline at end of file diff --git a/src/main/resources/assets/skyblocker/lang/ru_ru.json b/src/main/resources/assets/skyblocker/lang/ru_ru.json index 7eb5b380..693d2e8f 100644 --- a/src/main/resources/assets/skyblocker/lang/ru_ru.json +++ b/src/main/resources/assets/skyblocker/lang/ru_ru.json @@ -8,7 +8,7 @@ "text.autoconfig.skyblocker.option.general.bars.enableBars": "Включить полоски", "text.autoconfig.skyblocker.category.locations": "Локации", - "text.autoconfig.skyblocker.option.locations.dungeons": "Подземелья", + "text.autoconfig.skyblocker.option.locations.dungeons": "Катакомбы", "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "Включить карту", "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Решать головоломку \"Три чудака\"", "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "Решать головоломку с ифритами", diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index aa1ad170..c5d30d73 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -6,7 +6,7 @@ "description": "Hypixel Skyblock Mod", "authors": ["xMrVizzy", "d3dx9", "LifeIsAParadox"], "contributors": ["ExternalTime", "Zailer43", "TacoMonkey", "KonaeAkira", "Fix3dll"], - "translators" : ["null2264", "HyperSoop"], + "translators" : ["null2264", "HyperSoop", "edgarogh"], "contact": { "homepage": "https://hysky.de", "sources": "https://github.com/LifeIsAParadox/Skyblocker", 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 @@ -18,6 +18,11 @@ public class ComboFilterTest extends ChatFilterTest<ComboFilter> { } @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!"); } |