aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java1
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/ForagingCategory.java23
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/ForagingConfig.java13
-rw-r--r--src/main/java/de/hysky/skyblocker/events/SkyblockEvents.java13
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/foraging/ModernForagingIsland.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/Location.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/Utils.java12
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json3
10 files changed, 81 insertions, 1 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
index b7a711ab..9c495382 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
@@ -20,6 +20,9 @@ public class SkyblockerConfig {
public DungeonsConfig dungeons = new DungeonsConfig();
@SerialEntry
+ public ForagingConfig foraging = new ForagingConfig();
+
+ @SerialEntry
public CrimsonIsleConfig crimsonIsle = new CrimsonIsleConfig();
@SerialEntry
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java
index b7728030..dd406b8a 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java
@@ -75,6 +75,7 @@ public class SkyblockerConfigManager {
.category(UIAndVisualsCategory.create(defaults, config))
.category(HelperCategory.create(defaults, config))
.category(DungeonsCategory.create(defaults, config))
+ //.category(ForagingCategory.create(defaults, config))
.category(CrimsonIsleCategory.create(defaults, config))
.category(MiningCategory.create(defaults, config))
.category(FarmingCategory.create(defaults, config))
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/ForagingCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/ForagingCategory.java
new file mode 100644
index 00000000..d5c844b7
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/config/categories/ForagingCategory.java
@@ -0,0 +1,23 @@
+package de.hysky.skyblocker.config.categories;
+
+import de.hysky.skyblocker.config.SkyblockerConfig;
+import dev.isxander.yacl3.api.ConfigCategory;
+import net.minecraft.text.Text;
+
+public class ForagingCategory {
+
+ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
+ return ConfigCategory.createBuilder()
+ .name(Text.translatable("skyblocker.config.foraging"))
+
+ //Modern Foraging island
+
+ //Hunting - YACL doesn't like empty option groups
+ /*.group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.foraging.hunting"))
+
+ .build())*/
+
+ .build();
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/config/configs/ForagingConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/ForagingConfig.java
new file mode 100644
index 00000000..1a7c3598
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/config/configs/ForagingConfig.java
@@ -0,0 +1,13 @@
+package de.hysky.skyblocker.config.configs;
+
+import dev.isxander.yacl3.config.v2.api.SerialEntry;
+
+public class ForagingConfig {
+
+ @SerialEntry
+ public Hunting hunting = new Hunting();
+
+ public static class Hunting {
+
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/events/SkyblockEvents.java b/src/main/java/de/hysky/skyblocker/events/SkyblockEvents.java
index 303e454f..c268103d 100644
--- a/src/main/java/de/hysky/skyblocker/events/SkyblockEvents.java
+++ b/src/main/java/de/hysky/skyblocker/events/SkyblockEvents.java
@@ -1,5 +1,6 @@
package de.hysky.skyblocker.events;
+import de.hysky.skyblocker.utils.Location;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.event.Event;
@@ -19,6 +20,12 @@ public final class SkyblockEvents {
}
});
+ public static final Event<SkyblockEvents.SkyblockLocationChange> LOCATION_CHANGE = EventFactory.createArrayBacked(SkyblockEvents.SkyblockLocationChange.class, callbacks -> location -> {
+ for (SkyblockEvents.SkyblockLocationChange callback : callbacks) {
+ callback.onSkyblockLocationChange(location);
+ }
+ });
+
@Environment(EnvType.CLIENT)
@FunctionalInterface
public interface SkyblockJoin {
@@ -30,4 +37,10 @@ public final class SkyblockEvents {
public interface SkyblockLeave {
void onSkyblockLeave();
}
+
+ @Environment(EnvType.CLIENT)
+ @FunctionalInterface
+ public interface SkyblockLocationChange {
+ void onSkyblockLocationChange(Location location);
+ }
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java b/src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java
index cff4997b..2837364b 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java
@@ -14,7 +14,7 @@ import java.util.regex.Pattern;
public class CompactDamage {
- private static final Pattern DAMAGE_PATTERN = Pattern.compile("(?:✧|✯)?[\\d,]+(?:✧|✯?)❤?");
+ private static final Pattern DAMAGE_PATTERN = Pattern.compile("[✧✯]?[\\d,]+[✧✯]?❤?");
private CompactDamage() {
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/foraging/ModernForagingIsland.java b/src/main/java/de/hysky/skyblocker/skyblock/foraging/ModernForagingIsland.java
new file mode 100644
index 00000000..fd256681
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/foraging/ModernForagingIsland.java
@@ -0,0 +1,8 @@
+package de.hysky.skyblocker.skyblock.foraging;
+
+public class ModernForagingIsland {
+
+ public static void init() {
+
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/utils/Location.java b/src/main/java/de/hysky/skyblocker/utils/Location.java
index d5214afd..1f6c93a0 100644
--- a/src/main/java/de/hysky/skyblocker/utils/Location.java
+++ b/src/main/java/de/hysky/skyblocker/utils/Location.java
@@ -87,6 +87,10 @@ public enum Location {
*/
GLACITE_MINESHAFT("mineshaft"),
/**
+ * Goodbye 1.8 hello 1.21 (and foraging 50 for all)!
+ */
+ MODERN_FORAGING_ISLAND("placeholder"),
+ /**
* Unknown Skyblock location
*/
UNKNOWN("unknown");
diff --git a/src/main/java/de/hysky/skyblocker/utils/Utils.java b/src/main/java/de/hysky/skyblocker/utils/Utils.java
index 70dbdac6..62a3b897 100644
--- a/src/main/java/de/hysky/skyblocker/utils/Utils.java
+++ b/src/main/java/de/hysky/skyblocker/utils/Utils.java
@@ -74,6 +74,8 @@ public class Utils {
private static long clientWorldJoinTime = 0;
private static boolean sentLocRaw = false;
private static boolean canSendLocRaw = false;
+ //This is required to prevent the location change event from being fired twice.
+ private static boolean locationChanged = true;
private static String mayor = "";
@@ -118,6 +120,10 @@ public class Utils {
return location == Location.KUUDRAS_HOLLOW;
}
+ public static boolean isInModernForagingIsland() {
+ return location == Location.MODERN_FORAGING_ISLAND;
+ }
+
public static boolean isInjected() {
return isInjected;
}
@@ -379,6 +385,7 @@ public class Utils {
MessageScheduler.INSTANCE.sendMessageAfterCooldown("/locraw");
sentLocRaw = true;
canSendLocRaw = false;
+ locationChanged = true;
}
} else {
resetLocRawInfo();
@@ -409,6 +416,11 @@ public class Utils {
if (locRaw.has("map")) {
map = locRaw.get("map").getAsString();
}
+
+ if (locationChanged) {
+ SkyblockEvents.LOCATION_CHANGE.invoker().onSkyblockLocationChange(location);
+ locationChanged = false;
+ }
}
/**
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index 4f00ff07..4304ff3d 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -185,6 +185,9 @@
"skyblocker.config.farming.garden.lockMouseTool": "Lock camera when holding a farming tool",
"skyblocker.config.farming.garden.visitorHelper": "Visitor helper",
+ "skyblocker.config.foraging": "Foraging",
+ "skyblocker.config.foraging.hunting": "Hunting",
+
"skyblocker.config.general": "General",
"skyblocker.config.general.chestValue.@Tooltip": "Calculate the value of this container.",