aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorKevin <92656833+kevinthegreat1@users.noreply.github.com>2023-04-18 07:07:40 -0700
committerGitHub <noreply@github.com>2023-04-18 07:07:40 -0700
commit2e1384b266c9734ebefc06d85f067b2a80755e89 (patch)
tree18cddc6a21aadcb365f81f2186b1ce665c7d76c5 /src/main/java
parentbd8415eafe741d37f658c3235658a1f2d9fb4ed2 (diff)
parent0e2eea45c86977cae1ff6c5176637c126d3bf707 (diff)
downloadSkyblocker-2e1384b266c9734ebefc06d85f067b2a80755e89.tar.gz
Skyblocker-2e1384b266c9734ebefc06d85f067b2a80755e89.tar.bz2
Skyblocker-2e1384b266c9734ebefc06d85f067b2a80755e89.zip
Merge branch 'SkyblockerMod:master' into master
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java3
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/ChatFilterResult.java8
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java188
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java49
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java87
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java21
8 files changed, 178 insertions, 182 deletions
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/chat/ChatFilterResult.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatFilterResult.java
index 0a31409a..85c3f3e3 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatFilterResult.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatFilterResult.java
@@ -1,5 +1,6 @@
package me.xmrvizzy.skyblocker.chat;
+import net.minecraft.client.resource.language.I18n;
public enum ChatFilterResult {
// Skip this one / no action
PASS,
@@ -10,11 +11,8 @@ public enum ChatFilterResult {
// Skip remaining checks, don't filter
// null
+ @Override
public String toString() {
- return switch (this) {
- case PASS -> "Disabled";
- case FILTER -> "Filter";
- case ACTION_BAR -> "Move to action bar";
- };
+ return I18n.translate("text.autoconfig.skyblocker.option.messages.chatFilterResult." + name());
}
}
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
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
index 21322c81..16a10f5e 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
@@ -1,88 +1,89 @@
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;
import me.shedaniel.autoconfig.annotation.ConfigEntry;
import me.shedaniel.autoconfig.serializer.GsonConfigSerializer;
import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
+import net.minecraft.client.resource.language.I18n;
+
+import java.util.ArrayList;
+import java.util.List;
@Config(name = "skyblocker")
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.Category("quickNav")
@ConfigEntry.Gui.TransitiveObject
- public final Messages messages = new Messages();
+ public QuickNav quickNav = new QuickNav();
- @ConfigEntry.Category("richPresence")
+ @ConfigEntry.Category("messages")
@ConfigEntry.Gui.TransitiveObject
- public final RichPresence richPresence = new RichPresence();
+ public Messages messages = new Messages();
- @ConfigEntry.Category("quickNav")
+ @ConfigEntry.Category("richPresence")
@ConfigEntry.Gui.TransitiveObject
- public final QuickNav quickNav = new QuickNav();
+ public RichPresence richPresence = new RichPresence();
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"), "Collections", "/collection");
@ConfigEntry.Category("button3")
@ConfigEntry.Gui.CollapsibleObject()
- public final QuickNavItem button3 = new QuickNavItem(false, new ItemData("air"), "", "");
+ public QuickNavItem button3 = new QuickNavItem(true, new ItemData("bone"), "\\(\\d+/\\d+\\) Pets", "/pets");
@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("leather_chestplate", 1, "tag:{display:{color:8991416}}"), "Wardrobe \\([12]/2\\)", "/wardrobe");
@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("player_head", 1, "tag:{SkullOwner:{Id:[I;-2081424676,-57521078,-2073572414,158072763],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTU5MTMxMDU4NTYwOSwKICAicHJvZmlsZUlkIiA6ICI0MWQzYWJjMmQ3NDk0MDBjOTA5MGQ1NDM0ZDAzODMxYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJNZWdha2xvb24iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODBhMDc3ZTI0OGQxNDI3NzJlYTgwMDg2NGY4YzU3OGI5ZDM2ODg1YjI5ZGFmODM2YjY0YTcwNjg4MmI2ZWMxMCIKICAgIH0KICB9Cn0=\"}]}}}"), "Sack of Sacks", "/sacks");
@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(true, new ItemData("player_head", 1, "tag:{SkullOwner:{Id:[I;-562285948,532499670,-1705302742,775653035],Properties:{textures:[{Value:\"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjVkZjU1NTkyNjQzMGQ1ZDc1YWRlZDIxZGQ5NjE5Yjc2YzViN2NhMmM3ZjU0MDE0NDA1MjNkNTNhOGJjZmFhYiJ9fX0=\"}]}}}"), "Visit prtl", "/visit prtl");
@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 Item", "/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 +94,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 +117,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<Integer> lockedSlots = new ArrayList<>();
+ public List<Integer> 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;
}
@@ -176,12 +177,7 @@ public class SkyblockerConfig implements ConfigData {
@Override
public String toString() {
- return switch (this) {
- case LAYER1 -> "Layer 1";
- case LAYER2 -> "Layer 2";
- case RIGHT -> "Right";
- case NONE -> "Disabled";
- };
+ return I18n.translate("text.autoconfig.skyblocker.option.general.bars.barpositions." + name());
}
public int toInt() {
@@ -195,21 +191,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 String customMessage;
+ public Info info = Info.LOCATION;
+ public boolean cycleMode = false;
+ public String customMessage = "Playing Skyblock";
}
public static class ItemList {
- public final boolean enableItemList = true;
+ public boolean enableItemList = true;
}
public enum Average {
@@ -219,94 +215,94 @@ public class SkyblockerConfig implements ConfigData {
@Override
public String toString() {
- return switch (this) {
- case ONE_DAY -> "1 day price";
- case THREE_DAY -> "3 day price";
- case BOTH -> "Both";
- };
+ return I18n.translate("text.autoconfig.skyblocker.option.general.itemTooltip.avg." + name());
}
}
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 {
PURSE,
BITS,
- LOCATION
+ LOCATION;
+ @Override
+ public String toString() {
+ return I18n.translate("text.autoconfig.skyblocker.option.richPresence.info." + name());
+ }
}
public static void init() {
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){
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 8483f88b..99e1c529 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java
@@ -42,7 +42,7 @@ public class QuickNav {
if (itemData.nbt.length() > 2) nbtString += "," + itemData.nbt;
nbtString += "}";
return new QuickNavButton(id,
- screenTitle.contains(buttonInfo.uiTitle),
+ screenTitle.matches(buttonInfo.uiTitle),
buttonInfo.clickEvent,
ItemStack.fromNbt(StringNbtReader.parse(nbtString))
);
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<HttpResponse<String>> 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);
}
}
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");
}