diff options
author | Linnea Gräf <nea@nea.moe> | 2025-01-25 16:15:13 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2025-01-25 16:15:13 +0100 |
commit | ef50dc42d7b2ca46bac73723728188761acfd8dc (patch) | |
tree | 57a11c9cb23782b52cb8fe2298ba0f3a45bb4832 /src/main/java | |
parent | 1062594643e4bb955bb6bf4efe8983108bdbd1bb (diff) | |
download | ultra-notifier-ef50dc42d7b2ca46bac73723728188761acfd8dc.tar.gz ultra-notifier-ef50dc42d7b2ca46bac73723728188761acfd8dc.tar.bz2 ultra-notifier-ef50dc42d7b2ca46bac73723728188761acfd8dc.zip |
Build on 1.8.9
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/moe/nea/ultranotifier/mixin/ChatHudCategoryTracker.java | 2 | ||||
-rw-r--r-- | src/main/java/moe/nea/ultranotifier/mixin/FilterVisibleMessagePatch.java | 48 |
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 } |