summaryrefslogtreecommitdiff
path: root/src/main/java/moe/nea/ultranotifier/mixin/ChatScreenTabRenderer.java
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2025-01-25 00:40:58 +0100
committerLinnea Gräf <nea@nea.moe>2025-01-25 00:40:58 +0100
commitaf991c28062e405a02c139d3d67c4f86a9043e35 (patch)
tree29bd1d1568b707be04915f47a1bf558e923cd3fe /src/main/java/moe/nea/ultranotifier/mixin/ChatScreenTabRenderer.java
parente4f585c173ca0a5d09130ab97c18c48f91fe5ad7 (diff)
downloadultra-notifier-af991c28062e405a02c139d3d67c4f86a9043e35.tar.gz
ultra-notifier-af991c28062e405a02c139d3d67c4f86a9043e35.tar.bz2
ultra-notifier-af991c28062e405a02c139d3d67c4f86a9043e35.zip
.
Diffstat (limited to 'src/main/java/moe/nea/ultranotifier/mixin/ChatScreenTabRenderer.java')
-rw-r--r--src/main/java/moe/nea/ultranotifier/mixin/ChatScreenTabRenderer.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/main/java/moe/nea/ultranotifier/mixin/ChatScreenTabRenderer.java b/src/main/java/moe/nea/ultranotifier/mixin/ChatScreenTabRenderer.java
new file mode 100644
index 0000000..7a5a127
--- /dev/null
+++ b/src/main/java/moe/nea/ultranotifier/mixin/ChatScreenTabRenderer.java
@@ -0,0 +1,61 @@
+package moe.nea.ultranotifier.mixin;
+
+import moe.nea.ultranotifier.gui.ChatUi;
+import moe.nea.ultranotifier.util.render.ScreenRenderUtils;
+import net.minecraft.client.gui.DrawContext;
+import net.minecraft.client.gui.screen.ChatScreen;
+import org.objectweb.asm.Opcodes;
+import org.spongepowered.asm.mixin.Mixin;
+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.callback.CallbackInfo;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
+//#endif
+
+@Mixin(ChatScreen.class)
+public abstract class ChatScreenTabRenderer {
+
+ private ChatUi chatUi_ultraNotifier = new ChatUi((ChatScreen) (Object) this);
+
+ @Unique
+ ChatUi chatUi() {return chatUi_ultraNotifier;}
+
+ @Inject(
+//#if MC > 1.16
+ method = "render",
+//#else
+//$$ method="drawScreen",
+//#endif
+ at = @At("HEAD"))
+ private void onRender(
+//#if MC >1.20
+ DrawContext context,
+//#elseif MC > 1.16
+//$$ MatrixStack context,
+//#endif
+ int mouseX, int mouseY,
+ float delta,
+ CallbackInfo ci) {
+ chatUi().renderButtons(
+ ScreenRenderUtils.umatrix(
+ //#if MC > 1.16
+ context
+ //#endif
+ ),
+ mouseX, mouseY
+ );
+ }
+
+ @Inject(
+ method = "mouseClicked",
+ at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;mouseClicked(DDI)Z", opcode = Opcodes.INVOKESPECIAL)
+ )
+ private void onMouseClick(
+ double mouseX, double mouseY,
+ int button,
+ CallbackInfoReturnable<Boolean> cir
+ ) {
+ chatUi().clickMouse(mouseX, mouseY, button);
+ }
+}