From 51f4b2339a103a9ee03d4ec20a0559d4ccaabd3d Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 31 Mar 2023 02:42:06 -0400 Subject: Fix config loading --- .../skyblocker/config/SkyblockerConfig.java | 154 ++++++++++----------- 1 file changed, 77 insertions(+), 77 deletions(-) (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 21322c81..8819c2af 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -15,74 +15,74 @@ public class SkyblockerConfig implements ConfigData { @ConfigEntry.Category("general") @ConfigEntry.Gui.TransitiveObject - public final General general = new General(); + public General general = new General(); @ConfigEntry.Category("locations") @ConfigEntry.Gui.TransitiveObject - public final Locations locations = new Locations(); + public Locations locations = new Locations(); @ConfigEntry.Category("messages") @ConfigEntry.Gui.TransitiveObject - public final Messages messages = new Messages(); + public Messages messages = new Messages(); @ConfigEntry.Category("richPresence") @ConfigEntry.Gui.TransitiveObject - public final RichPresence richPresence = new RichPresence(); + public RichPresence richPresence = new RichPresence(); @ConfigEntry.Category("quickNav") @ConfigEntry.Gui.TransitiveObject - public final QuickNav quickNav = new QuickNav(); + public QuickNav quickNav = new QuickNav(); public static class QuickNav { - public final boolean enableQuickNav = true; + public boolean enableQuickNav = true; @ConfigEntry.Category("button1") @ConfigEntry.Gui.CollapsibleObject() - public final QuickNavItem button1 = new QuickNavItem(true, new ItemData("diamond_sword"), "Your Skills", "/skills"); + public QuickNavItem button1 = new QuickNavItem(true, new ItemData("diamond_sword"), "Your Skills", "/skills"); @ConfigEntry.Category("button2") @ConfigEntry.Gui.CollapsibleObject() - public final QuickNavItem button2 = new QuickNavItem(true, new ItemData("painting"), "Collection", "/collection"); + public QuickNavItem button2 = new QuickNavItem(true, new ItemData("painting"), "Collection", "/collection"); @ConfigEntry.Category("button3") @ConfigEntry.Gui.CollapsibleObject() - public final QuickNavItem button3 = new QuickNavItem(false, new ItemData("air"), "", ""); + public QuickNavItem button3 = new QuickNavItem(false, new ItemData("air"), "", ""); @ConfigEntry.Category("button4") @ConfigEntry.Gui.CollapsibleObject() - public final QuickNavItem button4 = new QuickNavItem(true, new ItemData("bone"), "Pets", "/pets"); + public QuickNavItem button4 = new QuickNavItem(true, new ItemData("bone"), "Pets", "/pets"); @ConfigEntry.Category("button5") @ConfigEntry.Gui.CollapsibleObject() - public final QuickNavItem button5 = new QuickNavItem(true, new ItemData("leather_chestplate", 1, "tag:{display:{color:8991416}}"), "Wardrobe", "/wardrobe"); + public QuickNavItem button5 = new QuickNavItem(true, new ItemData("leather_chestplate", 1, "tag:{display:{color:8991416}}"), "Wardrobe", "/wardrobe"); @ConfigEntry.Category("button6") @ConfigEntry.Gui.CollapsibleObject() - public final QuickNavItem button6 = new QuickNavItem(true, new ItemData("ender_chest"), "Storage", "/storage"); + public QuickNavItem button6 = new QuickNavItem(true, new ItemData("ender_chest"), "Storage", "/storage"); @ConfigEntry.Category("button7") @ConfigEntry.Gui.CollapsibleObject() - public final QuickNavItem button7 = new QuickNavItem(true, new ItemData("player_head", 1, "tag:{SkullOwner:{Id:[I;-300151517,-631415889,-1193921967,-1821784279],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0=\"}]}}}"), "none", "/hub"); + public QuickNavItem button7 = new QuickNavItem(true, new ItemData("player_head", 1, "tag:{SkullOwner:{Id:[I;-300151517,-631415889,-1193921967,-1821784279],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0=\"}]}}}"), "none", "/hub"); @ConfigEntry.Category("button8") @ConfigEntry.Gui.CollapsibleObject() - public final QuickNavItem button8 = new QuickNavItem(true, new ItemData("player_head", 1, "tag:{SkullOwner:{Id:[I;1605800870,415127827,-1236127084,15358548],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg5MWQ1YjI3M2ZmMGJjNTBjOTYwYjJjZDg2ZWVmMWM0MGExYjk0MDMyYWU3MWU3NTQ3NWE1NjhhODI1NzQyMSJ9fX0=\"}]}}}"), "none", "/warp dungeon_hub"); + public QuickNavItem button8 = new QuickNavItem(true, new ItemData("player_head", 1, "tag:{SkullOwner:{Id:[I;1605800870,415127827,-1236127084,15358548],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg5MWQ1YjI3M2ZmMGJjNTBjOTYwYjJjZDg2ZWVmMWM0MGExYjk0MDMyYWU3MWU3NTQ3NWE1NjhhODI1NzQyMSJ9fX0=\"}]}}}"), "none", "/warp dungeon_hub"); @ConfigEntry.Category("button9") @ConfigEntry.Gui.CollapsibleObject() - public final QuickNavItem button9 = new QuickNavItem(false, new ItemData("air"), "", ""); + public QuickNavItem button9 = new QuickNavItem(false, new ItemData("air"), "", ""); @ConfigEntry.Category("button10") @ConfigEntry.Gui.CollapsibleObject() - public final QuickNavItem button10 = new QuickNavItem(true, new ItemData("enchanting_table"), "Enchant", "/etable"); + public QuickNavItem button10 = new QuickNavItem(true, new ItemData("enchanting_table"), "Enchant", "/etable"); @ConfigEntry.Category("button11") @ConfigEntry.Gui.CollapsibleObject() - public final QuickNavItem button11 = new QuickNavItem(true, new ItemData("anvil"), "Anvil", "/anvil"); + public QuickNavItem button11 = new QuickNavItem(true, new ItemData("anvil"), "Anvil", "/anvil"); @ConfigEntry.Category("button12") @ConfigEntry.Gui.CollapsibleObject() - public final QuickNavItem button12 = new QuickNavItem(true, new ItemData("crafting_table"), "Craft Item", "/craft"); + public QuickNavItem button12 = new QuickNavItem(true, new ItemData("crafting_table"), "Craft Item", "/craft"); } public static class QuickNavItem { @@ -93,14 +93,14 @@ public class SkyblockerConfig implements ConfigData { this.uiTitle = uiTitle; } - public final Boolean render; + public Boolean render; @ConfigEntry.Category("item") @ConfigEntry.Gui.CollapsibleObject() - public final ItemData item; + public ItemData item; - public final String uiTitle; - public final String clickEvent; + public String uiTitle; + public String clickEvent; } public static class ItemData { @@ -116,55 +116,55 @@ public class SkyblockerConfig implements ConfigData { this.nbt = ""; } - public final String itemName; - public final int count; - public final String nbt; + public String itemName; + public int count; + public String nbt; } public static class General { - public final boolean enableUpdateNotification = true; - public final boolean backpackPreviewWithoutShift = false; + public boolean enableUpdateNotification = true; + public boolean backpackPreviewWithoutShift = false; @ConfigEntry.Gui.Excluded public String apiKey; @ConfigEntry.Category("bars") @ConfigEntry.Gui.CollapsibleObject() - public final Bars bars = new Bars(); + public Bars bars = new Bars(); @ConfigEntry.Category("itemList") @ConfigEntry.Gui.CollapsibleObject() - public final ItemList itemList = new ItemList(); + public ItemList itemList = new ItemList(); @ConfigEntry.Category("itemTooltip") @ConfigEntry.Gui.CollapsibleObject() - public final ItemTooltip itemTooltip = new ItemTooltip(); + public ItemTooltip itemTooltip = new ItemTooltip(); @ConfigEntry.Category("hitbox") @ConfigEntry.Gui.CollapsibleObject() - public final Hitbox hitbox = new Hitbox(); + public Hitbox hitbox = new Hitbox(); @ConfigEntry.Gui.Excluded - public final List lockedSlots = new ArrayList<>(); + public List lockedSlots = new ArrayList<>(); } public static class Bars { - public final boolean enableBars = true; + public boolean enableBars = true; @ConfigEntry.Category("barpositions") @ConfigEntry.Gui.CollapsibleObject() - public final BarPositions barpositions = new BarPositions(); + public BarPositions barpositions = new BarPositions(); } public static class BarPositions { @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final BarPosition healthBarPosition = BarPosition.LAYER1; + public BarPosition healthBarPosition = BarPosition.LAYER1; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final BarPosition manaBarPosition = BarPosition.LAYER1; + public BarPosition manaBarPosition = BarPosition.LAYER1; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final BarPosition defenceBarPosition = BarPosition.LAYER1; + public BarPosition defenceBarPosition = BarPosition.LAYER1; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final BarPosition experienceBarPosition = BarPosition.LAYER1; + public BarPosition experienceBarPosition = BarPosition.LAYER1; } @@ -195,21 +195,21 @@ public class SkyblockerConfig implements ConfigData { } public static class Hitbox { - public final boolean oldFarmlandHitbox = true; - public final boolean oldLeverHitbox = false; + public boolean oldFarmlandHitbox = true; + public boolean oldLeverHitbox = false; } public static class RichPresence { - public final boolean enableRichPresence = false; + public boolean enableRichPresence = false; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) @ConfigEntry.Gui.Tooltip() - public final Info info = Info.LOCATION; - public final boolean cycleMode = false; + public Info info = Info.LOCATION; + public boolean cycleMode = false; public String customMessage; } public static class ItemList { - public final boolean enableItemList = true; + public boolean enableItemList = true; } public enum Average { @@ -228,79 +228,79 @@ public class SkyblockerConfig implements ConfigData { } public static class ItemTooltip { - public final boolean enableNPCPrice = true; - public final boolean enableAvgBIN = true; + public boolean enableNPCPrice = true; + public boolean enableAvgBIN = true; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) @ConfigEntry.Gui.Tooltip() - public final Average avg = Average.THREE_DAY; - public final boolean enableLowestBIN = true; - public final boolean enableBazaarPrice = true; - public final boolean enableMuseumDate = true; + public Average avg = Average.THREE_DAY; + public boolean enableLowestBIN = true; + public boolean enableBazaarPrice = true; + public boolean enableMuseumDate = true; } public static class Locations { @ConfigEntry.Category("dungeons") @ConfigEntry.Gui.CollapsibleObject() - public final Dungeons dungeons = new Dungeons(); + public Dungeons dungeons = new Dungeons(); @ConfigEntry.Category("dwarvenmines") @ConfigEntry.Gui.CollapsibleObject() - public final DwarvenMines dwarvenMines = new DwarvenMines(); + public DwarvenMines dwarvenMines = new DwarvenMines(); } public static class Dungeons { @ConfigEntry.Gui.Tooltip() - public final boolean croesusHelper = true; - public final boolean enableMap = true; - public final boolean solveThreeWeirdos = true; - public final boolean blazesolver = true; - public final boolean solveTrivia = true; + public boolean croesusHelper = true; + public boolean enableMap = true; + public boolean solveThreeWeirdos = true; + public boolean blazesolver = true; + public boolean solveTrivia = true; @ConfigEntry.Gui.CollapsibleObject() - public final Terminals terminals = new Terminals(); + public Terminals terminals = new Terminals(); } public static class Terminals { - public final boolean solveColor = true; - public final boolean solveOrder = true; - public final boolean solveStartsWith = true; + public boolean solveColor = true; + public boolean solveOrder = true; + public boolean solveStartsWith = true; } public static class DwarvenMines { - public final boolean enableDrillFuel = true; - public final boolean solveFetchur = true; - public final boolean solvePuzzler = true; + public boolean enableDrillFuel = true; + public boolean solveFetchur = true; + public boolean solvePuzzler = true; @ConfigEntry.Gui.CollapsibleObject() - public final DwarvenHud dwarvenHud = new DwarvenHud(); + public DwarvenHud dwarvenHud = new DwarvenHud(); } public static class DwarvenHud { - public final boolean enabled = true; - public final boolean enableBackground = true; + public boolean enabled = true; + public boolean enableBackground = true; public int x = 10; public int y = 10; } public static class Messages { @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final ChatFilterResult hideAbility = ChatFilterResult.PASS; + public ChatFilterResult hideAbility = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final ChatFilterResult hideHeal = ChatFilterResult.PASS; + public ChatFilterResult hideHeal = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final ChatFilterResult hideAOTE = ChatFilterResult.PASS; + public ChatFilterResult hideAOTE = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final ChatFilterResult hideImplosion = ChatFilterResult.PASS; + public ChatFilterResult hideImplosion = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final ChatFilterResult hideMoltenWave = ChatFilterResult.PASS; + public ChatFilterResult hideMoltenWave = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final ChatFilterResult hideAds = ChatFilterResult.PASS; + public ChatFilterResult hideAds = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final ChatFilterResult hideTeleportPad = ChatFilterResult.PASS; + public ChatFilterResult hideTeleportPad = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final ChatFilterResult hideCombo = ChatFilterResult.PASS; + public ChatFilterResult hideCombo = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) - public final ChatFilterResult hideAutopet = ChatFilterResult.PASS; + public ChatFilterResult hideAutopet = ChatFilterResult.PASS; @ConfigEntry.Gui.Tooltip() - public final boolean hideMana = false; + public boolean hideMana = false; } public enum Info { -- cgit From 30eea01edbd104350226839270c0b0cb16753f83 Mon Sep 17 00:00:00 2001 From: Julienraptor01 Date: Fri, 31 Mar 2023 23:33:54 +0200 Subject: account for the easter name change and refactor slightly --- .../java/me/xmrvizzy/skyblocker/utils/Utils.java | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'src/main/java/me/xmrvizzy') diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java index d9389b58..532de0dd 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java @@ -31,18 +31,19 @@ public class Utils { String string = sidebar.toString(); if (sidebar.isEmpty()) return; - if (sidebar.get(0).contains("SKYBLOCK") && !isOnSkyblock) { - if (!isInjected) { - isInjected = true; - ItemTooltipCallback.EVENT.register(PriceInfoTooltip::onInjectTooltip); + if (sidebar.get(0).contains("SKYBLOCK") || sidebar.get(0).contains("SKIBLOCK")) { + if (!isOnSkyblock) { + if (!isInjected) { + isInjected = true; + ItemTooltipCallback.EVENT.register(PriceInfoTooltip::onInjectTooltip); + } + SkyblockEvents.JOIN.invoker().onSkyblockJoin(); + isOnSkyblock = true; } - SkyblockEvents.JOIN.invoker().onSkyblockJoin(); - isOnSkyblock = true; - } - if (!sidebar.get(0).contains("SKYBLOCK") && isOnSkyblock) { + } else if (isOnSkyblock) { SkyblockEvents.LEAVE.invoker().onSkyblockLeave(); - Utils.isOnSkyblock = false; - Utils.isInDungeons = false; + isOnSkyblock = false; + isInDungeons = false; } isInDungeons = isOnSkyblock && string.contains("The Catacombs"); } -- cgit From 56ebe5d7b0573e0acbbaccdaaf20eb4629fe1cc9 Mon Sep 17 00:00:00 2001 From: Spencer <75862693+TacoMonkey11@users.noreply.github.com> Date: Fri, 31 Mar 2023 18:35:54 -0400 Subject: port UpdateChecker to java.net.http and simplify regex --- .../xmrvizzy/skyblocker/utils/UpdateChecker.java | 87 +++++++++++----------- 1 file changed, 45 insertions(+), 42 deletions(-) (limited to 'src/main/java/me/xmrvizzy') diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java index 9e4b609f..a2809712 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java @@ -1,64 +1,67 @@ package me.xmrvizzy.skyblocker.utils; -import com.google.gson.*; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import me.xmrvizzy.skyblocker.SkyblockerMod; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.MinecraftClient; -import net.minecraft.text.*; +import net.minecraft.text.ClickEvent; +import net.minecraft.text.HoverEvent; +import net.minecraft.text.MutableText; +import net.minecraft.text.Text; import org.spongepowered.asm.util.VersionNumber; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URL; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.concurrent.CompletableFuture; import java.util.regex.Matcher; import java.util.regex.Pattern; public class UpdateChecker { - public static boolean shouldUpdate = false; - public static final Pattern pattern = Pattern.compile("v(\\d+)\\.(\\d+)\\.(\\d+)"); - public static final Pattern localPattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)"); + public static final Pattern pattern = Pattern.compile("v(.*)\\+.*"); + public static final Pattern localPattern = Pattern.compile("(.*)\\+.*"); public static Matcher matcher; - public static VersionNumber localVersion = null; - public static VersionNumber latestVersion = null; - public static boolean shouldUpdate(){ - if (SkyblockerConfig.get().general.enableUpdateNotification){ - new Thread(() -> { - try{ - URL url = new URL("https://api.modrinth.com/v2/project/skyblocker-liap/version"); + private static VersionNumber latestVersion = null; + private static VersionNumber localVersion = null; + public static void shouldUpdate(){ + if (!SkyblockerConfig.get().general.enableUpdateNotification) return; + try { + URI uri = new URI("https://api.modrinth.com/v2/project/skyblocker-liap/version"); + HttpRequest request = HttpRequest.newBuilder(uri).GET().build(); + CompletableFuture> response = HttpClient.newHttpClient().sendAsync(request, HttpResponse.BodyHandlers.ofString()); + response.thenAccept(httpResponse -> { + JsonObject versionJson = new Gson().fromJson(httpResponse.body(), JsonElement.class).getAsJsonArray().get(0).getAsJsonObject(); + matcher = pattern.matcher(versionJson.get("version_number").getAsString()); + if (matcher.find()) { + latestVersion = VersionNumber.parse(matcher.group(1)); + } + matcher = localPattern.matcher(FabricLoader.getInstance().getModContainer(SkyblockerMod.NAMESPACE).get().getMetadata().getVersion().getFriendlyString()); + if (matcher.find()) { + localVersion = VersionNumber.parse(matcher.group(1)); + } + if (latestVersion != null && localVersion != null) { + if (localVersion.compareTo(latestVersion) < 0) { + MutableText linkMessage = Text.translatable("skyblocker.update.update_message"); + MutableText linkMessageEnding = Text.translatable("skyblocker.update.update_message_end"); + MutableText link = Text.translatable("skyblocker.update.update_link"); + MutableText hoverText = Text.translatable("skyblocker.update.hover_text"); + linkMessage.append(link.styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://modrinth.com/mod/skyblocker-liap/versions")).withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, hoverText)))).append(linkMessageEnding); - InputStreamReader reader = new InputStreamReader(url.openStream()); - JsonObject versionJson = new Gson().fromJson(reader, JsonElement.class).getAsJsonArray().get(0).getAsJsonObject(); - matcher = pattern.matcher(versionJson.get("version_number").getAsString()); - if (matcher.find()){ - latestVersion = VersionNumber.parse(matcher.group(1) + "." + matcher.group(2) + "." + matcher.group(3)); - } - matcher = localPattern.matcher(FabricLoader.getInstance().getModContainer(SkyblockerMod.NAMESPACE).get().getMetadata().getVersion().getFriendlyString()); - if (matcher.find()){ - localVersion = VersionNumber.parse(matcher.group(1) + "." + matcher.group(2) + "." + matcher.group(3)); + MinecraftClient.getInstance().player.sendMessage(linkMessage, false); } - if (localVersion != null && latestVersion != null) - if (localVersion.compareTo(latestVersion) < 0) shouldUpdate = true; - - } catch (IOException e) { - e.printStackTrace(); } - }).start(); + }); + } catch (URISyntaxException e) { + e.printStackTrace(); } - return shouldUpdate; } public static void init(){ - SkyblockEvents.JOIN.register(() -> { - if (shouldUpdate()) { - MutableText linkMessage = Text.translatable("skyblocker.update.update_message"); - MutableText linkMessageEnding = Text.translatable("skyblocker.update.update_message_end"); - MutableText link = Text.translatable("skyblocker.update.update_link"); - MutableText hoverText = Text.translatable("skyblocker.update.hover_text"); - linkMessage.append(link.styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://modrinth.com/mod/skyblocker-liap/versions")).withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, hoverText)))).append(linkMessageEnding); - - MinecraftClient.getInstance().player.sendMessage(linkMessage, false); - } - }); + SkyblockEvents.JOIN.register(UpdateChecker::shouldUpdate); } } -- cgit From e4b04ce210971bcc069d36b44f726918fca4657a Mon Sep 17 00:00:00 2001 From: Julienraptor01 Date: Sat, 1 Apr 2023 01:58:39 +0200 Subject: fix msg filter --- src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.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/chat/filters/MoltenWaveFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java index 19789dba..da082c2d 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java @@ -5,7 +5,7 @@ import me.xmrvizzy.skyblocker.config.SkyblockerConfig; public class MoltenWaveFilter extends SimpleChatFilter { public MoltenWaveFilter() { - super("^Your Molten Wave hit " + NUMBER + " enemy(?:y|ies) for " + NUMBER + " damage\\.$"); + super("^Your Molten Wave hit " + NUMBER + " enem(?:y|ies) for " + NUMBER + " damage\\.$"); } @Override -- cgit From ac1387aa0955541d7a3c3e42d8209593f5b45257 Mon Sep 17 00:00:00 2001 From: Spencer <75862693+TacoMonkey11@users.noreply.github.com> Date: Sat, 1 Apr 2023 10:24:44 -0400 Subject: Move Discord RPC connection to JOIN event + refactor --- .../java/me/xmrvizzy/skyblocker/SkyblockerMod.java | 3 +- .../skyblocker/config/SkyblockerConfig.java | 8 ++-- .../skyblocker/discord/DiscordRPCManager.java | 49 +++++++++++----------- 3 files changed, 29 insertions(+), 31 deletions(-) (limited to 'src/main/java/me/xmrvizzy') diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java index 8cd71770..f804d90e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java +++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java @@ -15,12 +15,11 @@ public class SkyblockerMod { public final Scheduler scheduler = new Scheduler(); public final ContainerSolverManager containerSolverManager = new ContainerSolverManager(); - public final DiscordRPCManager discordRPCManager = new DiscordRPCManager(); public final StatusBarTracker statusBarTracker = new StatusBarTracker(); private SkyblockerMod() { scheduler.scheduleCyclic(Utils::sbChecker, 20); - scheduler.scheduleCyclic(discordRPCManager::update, 100); + scheduler.scheduleCyclic(DiscordRPCManager::update, 100); scheduler.scheduleCyclic(DungeonBlaze::update, 4); scheduler.scheduleCyclic(BackpackPreview::tick, 50); scheduler.scheduleCyclic(DwarvenHud::update, 40); diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index 21322c81..65f581ec 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -1,8 +1,5 @@ package me.xmrvizzy.skyblocker.config; -import java.util.ArrayList; -import java.util.List; - import me.shedaniel.autoconfig.AutoConfig; import me.shedaniel.autoconfig.ConfigData; import me.shedaniel.autoconfig.annotation.Config; @@ -10,6 +7,9 @@ import me.shedaniel.autoconfig.annotation.ConfigEntry; import me.shedaniel.autoconfig.serializer.GsonConfigSerializer; import me.xmrvizzy.skyblocker.chat.ChatFilterResult; +import java.util.ArrayList; +import java.util.List; + @Config(name = "skyblocker") public class SkyblockerConfig implements ConfigData { @@ -205,7 +205,7 @@ public class SkyblockerConfig implements ConfigData { @ConfigEntry.Gui.Tooltip() public final Info info = Info.LOCATION; public final boolean cycleMode = false; - public String customMessage; + public String customMessage = "Playing Skyblock"; } public static class ItemList { diff --git a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java index 87405989..10b88ce8 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java +++ b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java @@ -11,52 +11,51 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.text.DecimalFormat; -import java.time.Instant; public class DiscordRPCManager { public static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("###,###.##"); - public static final Logger LOGGER = LoggerFactory.getLogger(DiscordRPCManager.class.getName()); + public static final Logger LOGGER = LoggerFactory.getLogger("Skyblocker Discord RPC"); public static long startTimeStamp; public static int cycleCount; public static void init(){ SkyblockEvents.LEAVE.register(DiscordIPC::stop); + SkyblockEvents.JOIN.register(() -> { + startTimeStamp = System.currentTimeMillis(); + if (DiscordIPC.start(934607927837356052L, null)) { + DiscordIPC.setActivity(buildPresence()); + LOGGER.info("Discord RPC started"); + } else { + LOGGER.error("Discord RPC failed to start"); + } + }); } - public void update(){ - if (SkyblockerConfig.get().richPresence.customMessage != null ) { - if (SkyblockerConfig.get().richPresence.customMessage.isBlank()) { - SkyblockerConfig.get().richPresence.customMessage = "All on Fabric!"; - AutoConfig.getConfigHolder(SkyblockerConfig.class).save(); - } + public static void update(){ + // If the custom message is empty, discord will keep the last message, this is can serve as a default if the user doesn't want a custom message + if (SkyblockerConfig.get().richPresence.customMessage.isEmpty()) { + SkyblockerConfig.get().richPresence.customMessage = "Playing Skyblock"; + AutoConfig.getConfigHolder(SkyblockerConfig.class).save(); } - if (!SkyblockerConfig.get().richPresence.enableRichPresence || !Utils.isOnSkyblock){ - if (DiscordIPC.isConnected()) DiscordIPC.stop(); - } - if (SkyblockerConfig.get().richPresence.enableRichPresence && Utils.isOnSkyblock && !DiscordIPC.isConnected()){ - if (!DiscordIPC.start(934607927837356052L, () -> { - LOGGER.info("Started up rich presence"); - startTimeStamp = Instant.now().getEpochSecond(); - })){ - LOGGER.info("An error occurred while attempting to connect to discord"); - return; - } + if ((!Utils.isOnSkyblock || !SkyblockerConfig.get().richPresence.enableRichPresence) && DiscordIPC.isConnected()){ + DiscordIPC.stop(); + LOGGER.info("Discord RPC stopped"); + return; } - if (SkyblockerConfig.get().richPresence.cycleMode) - cycleCount = (cycleCount + 1) % 3; - buildPresence(); + if (SkyblockerConfig.get().richPresence.cycleMode) cycleCount = (cycleCount + 1) % 3; + DiscordIPC.setActivity(buildPresence()); } - public void buildPresence(){ + public static RichPresence buildPresence(){ RichPresence presence = new RichPresence(); presence.setLargeImage("skyblocker-default", null); presence.setStart(startTimeStamp); presence.setDetails(SkyblockerConfig.get().richPresence.customMessage); presence.setState(getInfo()); - DiscordIPC.setActivity(presence); + return presence; } - public String getInfo(){ + public static String getInfo(){ String info = null; if (!SkyblockerConfig.get().richPresence.cycleMode){ switch (SkyblockerConfig.get().richPresence.info){ -- cgit