aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java43
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/accessor/LayeredDrawerAccessor.java15
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java4
-rw-r--r--src/main/resources/skyblocker.mixins.json1
6 files changed, 21 insertions, 50 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java b/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java
index d7b15f9d..908e51e2 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java
@@ -7,7 +7,6 @@ import de.hysky.skyblocker.SkyblockerMod;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.fancybars.FancyStatusBars;
import de.hysky.skyblocker.events.HudRenderEvents;
-import de.hysky.skyblocker.mixin.accessor.LayeredDrawerAccessor;
import de.hysky.skyblocker.skyblock.item.HotbarSlotLock;
import de.hysky.skyblocker.skyblock.item.ItemCooldowns;
import de.hysky.skyblocker.skyblock.item.ItemProtection;
@@ -24,17 +23,17 @@ import net.minecraft.item.ItemStack;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
-import java.util.List;
import java.util.function.Supplier;
import java.util.regex.Pattern;
-import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.ModifyArg;
+import org.spongepowered.asm.mixin.injection.Slice;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Environment(EnvType.CLIENT)
@@ -122,32 +121,20 @@ public abstract class InGameHudMixin {
}
}
- /**
- * Hopefully other mods don't add stages into these two drawers...
- *
- * @implNote Check this every update to see if the indexes of each layer have changed.
- */
- @Inject(method = "<init>", at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/hud/InGameHud;layeredDrawer:Lnet/minecraft/client/gui/LayeredDrawer;", opcode = Opcodes.GETFIELD))
- private void skyblocker$beforeDrawersInitialized(CallbackInfo ci, @Local(ordinal = 0) LayeredDrawer persistentDrawer, @Local(ordinal = 1) LayeredDrawer intermittentDrawer) {
- List<LayeredDrawer.Layer> persistentLayers = ((LayeredDrawerAccessor) persistentDrawer).getLayers();
-
- //After Main HUD - stage index is 2
- LayeredDrawer.Layer mainHudLayer = persistentLayers.get(2);
-
- persistentLayers.set(2, (context, tickDelta) -> {
- mainHudLayer.render(context, tickDelta);
- HudRenderEvents.AFTER_MAIN_HUD.invoker().onRender(context, tickDelta);
- });
-
- List<LayeredDrawer.Layer> intermittentLayers = ((LayeredDrawerAccessor) intermittentDrawer).getLayers();
-
- //Before Chat - stage index is 5
- LayeredDrawer.Layer chatLayer = intermittentLayers.get(5);
+ @ModifyArg(method = "<init>", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/LayeredDrawer;addLayer(Lnet/minecraft/client/gui/LayeredDrawer$Layer;)Lnet/minecraft/client/gui/LayeredDrawer;", ordinal = 2))
+ private LayeredDrawer.Layer skyblocker$afterMainHud(LayeredDrawer.Layer mainHudLayer) {
+ return (context, tickDelta) -> {
+ mainHudLayer.render(context, tickDelta);
+ HudRenderEvents.AFTER_MAIN_HUD.invoker().onRender(context, tickDelta);
+ };
+ }
- intermittentLayers.set(5, (context, tickDelta) -> {
- HudRenderEvents.BEFORE_CHAT.invoker().onRender(context, tickDelta);
- chatLayer.render(context, tickDelta);
- });
+ @ModifyArg(method = "<init>", slice = @Slice(from = @At(value = "NEW", target = "Lnet/minecraft/client/gui/LayeredDrawer;", ordinal = 1)), at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/LayeredDrawer;addLayer(Lnet/minecraft/client/gui/LayeredDrawer$Layer;)Lnet/minecraft/client/gui/LayeredDrawer;", ordinal = 5))
+ private LayeredDrawer.Layer skyblocker$beforeChat(LayeredDrawer.Layer beforeChatLayer) {
+ return (context, tickDelta) -> {
+ HudRenderEvents.BEFORE_CHAT.invoker().onRender(context, tickDelta);
+ beforeChatLayer.render(context, tickDelta);
+ };
}
@Inject(method = "<init>", at = @At("TAIL"))
diff --git a/src/main/java/de/hysky/skyblocker/mixin/accessor/LayeredDrawerAccessor.java b/src/main/java/de/hysky/skyblocker/mixin/accessor/LayeredDrawerAccessor.java
deleted file mode 100644
index 26110ca9..00000000
--- a/src/main/java/de/hysky/skyblocker/mixin/accessor/LayeredDrawerAccessor.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package de.hysky.skyblocker.mixin.accessor;
-
-import java.util.List;
-
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.gen.Accessor;
-
-import net.minecraft.client.gui.LayeredDrawer;
-
-@Mixin(LayeredDrawer.class)
-public interface LayeredDrawerAccessor {
-
- @Accessor
- List<LayeredDrawer.Layer> getLayers();
-}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java
index bafada27..d61a0b59 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java
@@ -1,7 +1,7 @@
package de.hysky.skyblocker.skyblock.chat;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
-import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
+import de.hysky.skyblocker.events.HudRenderEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
@@ -13,7 +13,7 @@ public class ChatRuleAnnouncementScreen {
private static Text text = null;
public static void init() {
- HudRenderCallback.EVENT.register((context, tickDelta) -> {
+ HudRenderEvents.BEFORE_CHAT.register((context, tickDelta) -> {
if (timer <= 0 || text == null) {
return;
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java
index 86a8e685..bec98e99 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java
@@ -1,6 +1,7 @@
package de.hysky.skyblocker.skyblock.dwarven;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.events.HudRenderEvents;
import de.hysky.skyblocker.skyblock.tabhud.util.Colors;
import de.hysky.skyblocker.skyblock.tabhud.widget.hud.HudCommsWidget;
import de.hysky.skyblocker.skyblock.tabhud.widget.hud.HudPowderWidget;
@@ -8,7 +9,6 @@ import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.scheduler.Scheduler;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
-import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.network.PlayerListEntry;
@@ -60,7 +60,7 @@ public class DwarvenHud {
)
));
- HudRenderCallback.EVENT.register((context, tickDelta) -> {
+ HudRenderEvents.AFTER_MAIN_HUD.register((context, tickDelta) -> {
if (!SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledCommissions && !SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledPowder
|| CLIENT.options.playerListKey.isPressed()
|| CLIENT.player == null
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java b/src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java
index a093f598..6f2a0e40 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java
@@ -4,13 +4,13 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import de.hysky.skyblocker.SkyblockerMod;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.events.HudRenderEvents;
import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.waypoint.Waypoint;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientChunkEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
-import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
import net.fabricmc.fabric.api.event.player.AttackEntityCallback;
@@ -73,7 +73,7 @@ public class TheEnd {
});
- HudRenderCallback.EVENT.register((drawContext, tickDelta) -> {
+ HudRenderEvents.AFTER_MAIN_HUD.register((drawContext, tickDelta) -> {
if (!Utils.isInTheEnd()) return;
if (!SkyblockerConfigManager.get().locations.end.hudEnabled) return;
diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json
index f06dc974..2d91eb0d 100644
--- a/src/main/resources/skyblocker.mixins.json
+++ b/src/main/resources/skyblocker.mixins.json
@@ -42,7 +42,6 @@
"accessor.EndermanEntityAccessor",
"accessor.FrustumInvoker",
"accessor.HandledScreenAccessor",
- "accessor.LayeredDrawerAccessor",
"accessor.MessageHandlerAccessor",
"accessor.PlayerListHudAccessor",
"accessor.RecipeBookWidgetAccessor",