aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle15
-rw-r--r--gradle/wrapper/gradle-wrapper.jarbin61574 -> 61608 bytes
-rw-r--r--gradle/wrapper/gradle-wrapper.properties2
-rwxr-xr-xgradlew4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java3
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java162
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java49
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java87
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java21
10 files changed, 175 insertions, 170 deletions
diff --git a/build.gradle b/build.gradle
index 78e62bd9..dc1b09be 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,10 +6,6 @@ plugins {
import com.modrinth.minotaur.dependencies.ModDependency
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
-archivesBaseName = project.archives_base_name
version = "${project.mod_version}+${project.minecraft_version}"
group = project.maven_group
@@ -63,6 +59,10 @@ dependencies {
include(modImplementation ("meteordevelopment:discord-ipc:1.1"))
}
+base {
+ archivesName = project.archives_base_name
+}
+
processResources {
inputs.property "version", project.version
@@ -87,11 +87,14 @@ java {
// if it is present.
// If you remove this line, sources will not be generated.
withSourcesJar()
+
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
}
jar {
from("LICENSE") {
- rename { "${it}_${project.archivesBaseName}"}
+ rename { "${it}_${base.archivesName.get()}"}
}
}
@@ -105,7 +108,7 @@ modrinth {
versionNumber = "v${project.version}"
versionName = "Skyblocker ${project.mod_version} for ${project.minecraft_version}"
uploadFile = remapJar
- gameVersions = ["1.19", "1.19.1", project.minecraft_version]
+ gameVersions = [project.minecraft_version]
loaders = ["fabric"]
versionType = "release"
dependencies = [ // Yet another array. Create a new `ModDependency` or `VersionDependency` with two strings - the ID and the scope
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 943f0cbf..ccebba77 100644
--- a/gradle/wrapper/gradle-wrapper.jar
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index f398c33c..bdc9a83b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index 65dcd68d..79a61d42 100755
--- a/gradlew
+++ b/gradlew
@@ -144,7 +144,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
- # shellcheck disable=SC3045
+ # shellcheck disable=SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
@@ -152,7 +152,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
- # shellcheck disable=SC3045
+ # shellcheck disable=SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
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/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 83513e19..283d97dc 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,79 +7,82 @@ 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 {
@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("quickNav")
@ConfigEntry.Gui.TransitiveObject
- public final QuickNav quickNav = new QuickNav();
+ public QuickNav quickNav = new QuickNav();
@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();
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"), "Collections", "/collection");
+ public QuickNavItem button2 = new QuickNavItem(true, new ItemData("painting"), "Collections", "/collection");
@ConfigEntry.Category("button3")
@ConfigEntry.Gui.CollapsibleObject()
- public final QuickNavItem button3 = new QuickNavItem(true, new ItemData("bone"), "\\(\\d+/\\d+\\) Pets", "/pets");
+ 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("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()
- public final 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");
+ 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(true, new ItemData("player_head", 1, "tag:{SkullOwner:{Id:[I;1860483573,1726564425,-1428231295,-436665521],Properties:{textures:[{\"Signature\":\"vqNpEahIthHsm+Rgy9CPR01fzqdkhpnKeUNvZS7EktFZJu1T9MTpel5/KEL/sKFcmt+RAJJ9uLEwosF5fsb97A1TBnSbRwkfl/RUExO5F0EoV9+4L2wN/VGmOnjmXssqjfl9GsXPInJhhaAPcvZtmriRrznJez/JWzITjLEdBCbzKwBHqVu6Qa6zeD9N93LxVUEYYxKaULgTXkdpsxV2dl486ZJIhUKomp/KtWQrK77q2kfTsS8fWyiI/FeeSiWAE53okIkug3Tejj8UbzOGmPr43l99TMy+cWMREsCrfGmGJ0oKURTBy0n1l8E9GcfEGQLLaPrrOKUyBtOSAildnl2/yMEVRg+IYQ1ro91t+RMfNhsZOoH19ijCp4JH74J4xbd4CUn4Nb/CyxXrJUAenj4RLB7dEsiR0EU3rLS6wMZvr3h7QxZqFPPZ9UD7iF6GQ+HKQNOz47GaWFlw7g0AK/h0h8odUH6yvX6gsYGhc3EYII4czSKmFVgiEXdV4MP8rWlSrkqRpFyMByzNAjq2z6RL4F/NZdT9ZCuifdBjbBIBvARsMJ0VuTSGyfHXW0qB5d7Wn2GPKnPMX/AHWM/938knYe3ECwh/2AcywewXKwr/qflU0V+U1rY7XGpQTO7jRDs8o0XBIT7arlxw/McleXdkWQoELQcU17pM4TB16Fw=\",Value:\"ewogICJ0aW1lc3RhbXAiIDogMTY3NjcyMDcxOTU5MywKICAicHJvZmlsZUlkIiA6ICI2ZWU0YjlmNTY2ZTk0ODQ5YWFkZWViODFlNWY5MDM0ZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJwcnRsIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2I1ZGY1NTU5MjY0MzBkNWQ3NWFkZWQyMWRkOTYxOWI3NmM1YjdjYTJjN2Y1NDAxNDQwNTIzZDUzYThiY2ZhYWIiCiAgICB9CiAgfQp9=\"}]}}}"), "Visit prtl", "/visit prtl");
+ public QuickNavItem button9 = new QuickNavItem(true, new ItemData("player_head", 1, "tag:{SkullOwner:{Id:[I;1860483573,1726564425,-1428231295,-436665521],Properties:{textures:[{\"Signature\":\"vqNpEahIthHsm+Rgy9CPR01fzqdkhpnKeUNvZS7EktFZJu1T9MTpel5/KEL/sKFcmt+RAJJ9uLEwosF5fsb97A1TBnSbRwkfl/RUExO5F0EoV9+4L2wN/VGmOnjmXssqjfl9GsXPInJhhaAPcvZtmriRrznJez/JWzITjLEdBCbzKwBHqVu6Qa6zeD9N93LxVUEYYxKaULgTXkdpsxV2dl486ZJIhUKomp/KtWQrK77q2kfTsS8fWyiI/FeeSiWAE53okIkug3Tejj8UbzOGmPr43l99TMy+cWMREsCrfGmGJ0oKURTBy0n1l8E9GcfEGQLLaPrrOKUyBtOSAildnl2/yMEVRg+IYQ1ro91t+RMfNhsZOoH19ijCp4JH74J4xbd4CUn4Nb/CyxXrJUAenj4RLB7dEsiR0EU3rLS6wMZvr3h7QxZqFPPZ9UD7iF6GQ+HKQNOz47GaWFlw7g0AK/h0h8odUH6yvX6gsYGhc3EYII4czSKmFVgiEXdV4MP8rWlSrkqRpFyMByzNAjq2z6RL4F/NZdT9ZCuifdBjbBIBvARsMJ0VuTSGyfHXW0qB5d7Wn2GPKnPMX/AHWM/938knYe3ECwh/2AcywewXKwr/qflU0V+U1rY7XGpQTO7jRDs8o0XBIT7arlxw/McleXdkWQoELQcU17pM4TB16Fw=\",Value:\"ewogICJ0aW1lc3RhbXAiIDogMTY3NjcyMDcxOTU5MywKICAicHJvZmlsZUlkIiA6ICI2ZWU0YjlmNTY2ZTk0ODQ5YWFkZWViODFlNWY5MDM0ZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJwcnRsIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2I1ZGY1NTU5MjY0MzBkNWQ3NWFkZWQyMWRkOTYxOWI3NmM1YjdjYTJjN2Y1NDAxNDQwNTIzZDUzYThiY2ZhYWIiCiAgICB9CiAgfQp9=\"}]}}}"), "Visit prtl", "/visit prtl");
@ConfigEntry.Category("button10")
@ConfigEntry.Gui.CollapsibleObject()
- public final QuickNavItem button10 = new QuickNavItem(true, new ItemData("enchanting_table"), "Enchant Item", "/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 +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<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;
}
@@ -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 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 {
@@ -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 {
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/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");
}