aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2025-04-25 16:25:27 -0400
committerGitHub <noreply@github.com>2025-04-25 16:25:27 -0400
commitbf18fb9b0054177b3dee145d681c8ff1dd60418e (patch)
treefe7bf2a801644045d75982c714d28964f0a6bad7 /src
parent723cfecdbed263d3acd834404033e6c7df28c1e0 (diff)
downloadSkyblocker-bf18fb9b0054177b3dee145d681c8ff1dd60418e.tar.gz
Skyblocker-bf18fb9b0054177b3dee145d681c8ff1dd60418e.tar.bz2
Skyblocker-bf18fb9b0054177b3dee145d681c8ff1dd60418e.zip
1.21.5 (#1256)
* 1.21.5 * Test fixes and clean up * Update test screenshot * Record patterns * Performance optimization * Reset ordered waypoint index on world change (and stop serializing it) * Waypoints clean up and fixes (#1257) * Small waypoints clean up * Fix waypoints test codec field order * Safe config updates Rather than updating the values directly and then calling save, the mod will now handle this behaviour itself to ensure update consistency/visibility with the upcoming thread split. Most usages of the old method were converted but there are some left. --------- Co-authored-by: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/gametest/resources/templates/skyblocker_render.pngbin629370 -> 633763 bytes
-rw-r--r--src/main/java/de/hysky/skyblocker/UpdateNotifications.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/compatibility/MixinPlugin.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/config/CodecTypeAdapter.java28
-rw-r--r--src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java16
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/QuickNavigationConfig.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix1.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/config/screens/powdertracker/PowderFilterConfigScreen.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/debug/Debug.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ClientPlayerEntityMixin.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/EntityRenderDispatcherMixin.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/EntityRendererMixin.java25
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/GlResourceManagerMixin.java25
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java19
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/RenderLayerMultiPhaseMixin.java20
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/RenderPhaseDepthTestMixin.java45
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/RenderPipelineMixin.java20
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/WorldRendererMixin.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/accessors/BeaconBlockEntityRendererInvoker.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/accessors/DrawContextInvoker.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/HealthBars.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/NightVisionCommand.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/SmoothAOTE.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/StatusBarTracker.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/Tips.java26
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/chat/ChatPositionShare.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/chat/ConfirmationPromptHelper.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ControlTestHelper.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/SecretsTracker.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/ColorTerminal.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/CorpseFinder.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/WishingCompassSolver.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/profittrackers/corpse/CorpseProfitTracker.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/events/greatspook/MathTeacherHelper.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/fancybars/FancyStatusBars.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/HotbarSlotLock.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/ItemCooldowns.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/ItemRarityBackgrounds.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockInventoryScreen.java16
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/AttributeShardAdder.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EnchantmentLevelAdder.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/NewYearCakeAdder.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PotionLevelAdder.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PrehistoricEggAdder.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java25
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/CompactorDeletorPreview.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/DungeonQualityTooltip.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MuseumTooltip.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/StackingEnchantProgressTooltip.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/Inventory.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/PlayerInventory.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/itemLoaders/ItemLoader.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComponentBasedWidget.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/HudWidget.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/waypoint/Waypoints.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/ItemUtils.java76
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/datafixer/LegacyItemStackFixer.java15
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/datafixer/LegacyStringNbtReader.java272
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/discord/DiscordRPCManager.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/networth/SkyblockItemMetadataRetriever.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java27
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/SkyblockerRenderLayers.java55
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/SkyblockerRenderPipelines.java44
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractPopupScreen.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainer.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/waypoint/WaypointGroup.java27
-rw-r--r--src/main/resources/fabric.mod.json8
-rw-r--r--src/main/resources/skyblocker.accesswidener7
-rw-r--r--src/main/resources/skyblocker.mixins.json5
-rw-r--r--src/test/java/de/hysky/skyblocker/utils/ItemUtilsTest.java13
-rw-r--r--src/test/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixerTest.java8
-rw-r--r--src/test/java/de/hysky/skyblocker/utils/waypoint/WaypointsTest.java2
-rw-r--r--src/test/resources/assets/skyblocker/config/skyblocker-v2.json4
-rw-r--r--src/test/resources/assets/skyblocker/config/skyblocker-v3.json4
93 files changed, 708 insertions, 431 deletions
diff --git a/src/gametest/resources/templates/skyblocker_render.png b/src/gametest/resources/templates/skyblocker_render.png
index d603a577..67dbacd7 100644
--- a/src/gametest/resources/templates/skyblocker_render.png
+++ b/src/gametest/resources/templates/skyblocker_render.png
Binary files differ
diff --git a/src/main/java/de/hysky/skyblocker/UpdateNotifications.java b/src/main/java/de/hysky/skyblocker/UpdateNotifications.java
index 00ae9ac0..4f9deef0 100644
--- a/src/main/java/de/hysky/skyblocker/UpdateNotifications.java
+++ b/src/main/java/de/hysky/skyblocker/UpdateNotifications.java
@@ -2,6 +2,7 @@ package de.hysky.skyblocker;
import java.io.BufferedReader;
import java.io.BufferedWriter;
+import java.net.URI;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
@@ -104,7 +105,7 @@ public class UpdateNotifications {
Text versionText = Text.literal(newVersion.name()).styled(style -> style
.withFormatting(Formatting.GRAY)
.withUnderline(true)
- .withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, downloadLink)));
+ .withClickEvent(new ClickEvent.OpenUrl(URI.create(downloadLink))));
CLIENT.player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.updateNotifications.newUpdateMessage", versionText)), false);
SystemToast.add(CLIENT.getToastManager(), TOAST_TYPE, Text.translatable("skyblocker.updateNotifications.newUpdateToast.title"), Text.stringifiedTranslatable("skyblocker.updateNotifications.newUpdateToast.description", newVersion.version()));
diff --git a/src/main/java/de/hysky/skyblocker/compatibility/MixinPlugin.java b/src/main/java/de/hysky/skyblocker/compatibility/MixinPlugin.java
index 7820dfa4..2af8860e 100644
--- a/src/main/java/de/hysky/skyblocker/compatibility/MixinPlugin.java
+++ b/src/main/java/de/hysky/skyblocker/compatibility/MixinPlugin.java
@@ -1,6 +1,8 @@
package de.hysky.skyblocker.compatibility;
import net.fabricmc.loader.api.FabricLoader;
+
+import org.apache.commons.lang3.SystemUtils;
import org.objectweb.asm.tree.ClassNode;
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
@@ -23,8 +25,12 @@ public class MixinPlugin implements IMixinConfigPlugin {
@Override
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
- //OptiFabric Compatibility
- return !mixinClassName.endsWith("WorldRendererMixin") || !OPTIFABRIC_LOADED;
+ return switch (mixinClassName) {
+ case String s when s.endsWith("WorldRendererMixin") -> !OPTIFABRIC_LOADED;
+ case String s when s.endsWith("GlResourceManagerMixin") -> SystemUtils.IS_OS_MAC && "aarch64".equalsIgnoreCase(SystemUtils.OS_ARCH);
+
+ default -> true;
+ };
}
@Override
diff --git a/src/main/java/de/hysky/skyblocker/config/CodecTypeAdapter.java b/src/main/java/de/hysky/skyblocker/config/CodecTypeAdapter.java
new file mode 100644
index 00000000..27544703
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/config/CodecTypeAdapter.java
@@ -0,0 +1,28 @@
+package de.hysky.skyblocker.config;
+
+import java.lang.reflect.Type;
+
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParseException;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
+import com.mojang.serialization.Codec;
+import com.mojang.serialization.JsonOps;
+
+/**
+ * Creates a GSON type adapter from a {@link Codec}.
+ */
+public record CodecTypeAdapter<T>(Codec<T> codec) implements JsonSerializer<T>, JsonDeserializer<T> {
+
+ @Override
+ public T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
+ return codec.parse(JsonOps.INSTANCE, json).getOrThrow(JsonParseException::new);
+ }
+
+ @Override
+ public JsonElement serialize(T src, Type typeOfSrc, JsonSerializationContext context) {
+ return codec.encodeStart(JsonOps.INSTANCE, src).getOrThrow();
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java b/src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java
index 06bec737..82ac889e 100644
--- a/src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java
+++ b/src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java
@@ -133,10 +133,7 @@ public abstract class HudConfigScreen extends Screen {
@Override
public final void close() {
- SkyblockerConfig skyblockerConfig = SkyblockerConfigManager.get();
- savePos(skyblockerConfig, widgets);
- SkyblockerConfigManager.save();
-
+ SkyblockerConfigMan