summaryrefslogtreecommitdiff
path: root/src/main/java/moe
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2025-01-25 16:15:13 +0100
committerLinnea Gräf <nea@nea.moe>2025-01-25 16:15:13 +0100
commitef50dc42d7b2ca46bac73723728188761acfd8dc (patch)
tree57a11c9cb23782b52cb8fe2298ba0f3a45bb4832 /src/main/java/moe
parent1062594643e4bb955bb6bf4efe8983108bdbd1bb (diff)
downloadultra-notifier-ef50dc42d7b2ca46bac73723728188761acfd8dc.tar.gz
ultra-notifier-ef50dc42d7b2ca46bac73723728188761acfd8dc.tar.bz2
ultra-notifier-ef50dc42d7b2ca46bac73723728188761acfd8dc.zip
Build on 1.8.9
Diffstat (limited to 'src/main/java/moe')
-rw-r--r--src/main/java/moe/nea/ultranotifier/mixin/ChatHudCategoryTracker.java2
-rw-r--r--src/main/java/moe/nea/ultranotifier/mixin/FilterVisibleMessagePatch.java48
2 files changed, 49 insertions, 1 deletions
diff --git a/src/main/java/moe/nea/ultranotifier/mixin/ChatHudCategoryTracker.java b/src/main/java/moe/nea/ultranotifier/mixin/ChatHudCategoryTracker.java
index ac187d9..6205506 100644
--- a/src/main/java/moe/nea/ultranotifier/mixin/ChatHudCategoryTracker.java
+++ b/src/main/java/moe/nea/ultranotifier/mixin/ChatHudCategoryTracker.java
@@ -22,7 +22,7 @@ public class ChatHudCategoryTracker<T> implements HasCategorizedChatLine {
@Unique
CategorizedChatLine categorizedSelf;
- @Inject(method = "<init>", at = @At("TAIL"))
+ @Inject(method = "<init>", at = @At("RETURN"))
private void onInit(
int creationTick,
//#if MC>1.20
diff --git a/src/main/java/moe/nea/ultranotifier/mixin/FilterVisibleMessagePatch.java b/src/main/java/moe/nea/ultranotifier/mixin/FilterVisibleMessagePatch.java
index 13ef7cc..22e06b5 100644
--- a/src/main/java/moe/nea/ultranotifier/mixin/FilterVisibleMessagePatch.java
+++ b/src/main/java/moe/nea/ultranotifier/mixin/FilterVisibleMessagePatch.java
@@ -4,13 +4,21 @@ import moe.nea.ultranotifier.event.UltraNotifierEvents;
import moe.nea.ultranotifier.event.VisibleChatMessageAddedEvent;
import net.minecraft.client.gui.hud.ChatHud;
import net.minecraft.client.gui.hud.ChatHudLine;
+import net.minecraft.text.Text;
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.ModifyVariable;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
+
+import java.util.Collections;
+import java.util.List;
@Mixin(ChatHud.class)
public class FilterVisibleMessagePatch {
+//#if MC > 1.18
@Inject(
method = "addVisibleMessage",
at = @At("HEAD"),
@@ -21,4 +29,44 @@ public class FilterVisibleMessagePatch {
ci.cancel();
}
}
+//#else
+//$$ @Unique
+//$$ ChatHudLine lastAddedChatLine;
+//$$
+//$$ @Inject(method = "reset()V",
+//$$ at = @At(value = "INVOKE",
+//$$ target = "Lnet/minecraft/client/gui/hud/ChatHud;addMessage(Lnet/minecraft/text/Text;IIZ)V"),
+//$$ locals = LocalCapture.CAPTURE_FAILHARD)
+//$$ private void saveMessageAboutToBeRefreshed(CallbackInfo ci, int i, ChatHudLine chatLine) {
+//$$ lastAddedChatLine = chatLine;
+//$$ }
+//$$
+//$$ @Inject(method = "addMessage(Lnet/minecraft/text/Text;IIZ)V", at = @At(value = "INVOKE",
+//#if MC > 1.16
+//$$ target = "Lnet/minecraft/client/util/ChatMessages;breakRenderedChatMessageLines(Lnet/minecraft/text/StringVisitable;ILnet/minecraft/client/font/TextRenderer;)Ljava/util/List;"
+//#else
+//$$ target = "Lnet/minecraft/client/gui/GuiUtilRenderComponents;splitText(Lnet/minecraft/util/text/ITextComponent;ILnet/minecraft/client/gui/FontRenderer;ZZ)Ljava/util/List;"
+//#endif
+//$$ ))
+//$$ private void saveMessage(Text chatComponent, int chatLineId, int updateCounter, boolean displayOnly, CallbackInfo ci) {
+//$$ if (lastAddedChatLine != null && lastAddedChatLine.getText() != chatComponent) {
+//$$ throw new RuntimeException("Out of order message received");
+//$$ }
+//$$ if (lastAddedChatLine == null)
+//$$ lastAddedChatLine = new ChatHudLine(chatLineId, chatComponent, updateCounter);
+//$$ }
+//$$
+//$$ @ModifyVariable(
+//$$ method = "addMessage(Lnet/minecraft/text/Text;IIZ)V",
+//$$ at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/ChatHud;isChatFocused()Z")
+//$$ )
+//$$ private List onAddVisibleMessage(List value) {
+//$$ VisibleChatMessageAddedEvent event = new VisibleChatMessageAddedEvent(lastAddedChatLine);
+//$$ lastAddedChatLine = null;
+//$$ if (UltraNotifierEvents.post(event).isCancelled()) {
+//$$ return Collections.emptyList();
+//$$ }
+//$$ return value;
+//$$ }
+//#endif
}