summaryrefslogtreecommitdiff
path: root/src/main/java/moe/nea/ultranotifier
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/moe/nea/ultranotifier')
-rw-r--r--src/main/java/moe/nea/ultranotifier/mixin/ChatHudMessageAdded.java1
-rw-r--r--src/main/java/moe/nea/ultranotifier/mixin/FilterVisibleMessagePatch.java24
2 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/moe/nea/ultranotifier/mixin/ChatHudMessageAdded.java b/src/main/java/moe/nea/ultranotifier/mixin/ChatHudMessageAdded.java
index bcccfe4..d7ed298 100644
--- a/src/main/java/moe/nea/ultranotifier/mixin/ChatHudMessageAdded.java
+++ b/src/main/java/moe/nea/ultranotifier/mixin/ChatHudMessageAdded.java
@@ -37,6 +37,7 @@ public class ChatHudMessageAdded {
//#endif
CallbackInfo ci
) {
+ // TODO: in this method prevent messages from being flushed (to preserve more history)
if (UltraNotifierEvents.post(new ChatGuiLineEvent(message)).isCancelled()) {
ci.cancel();
}
diff --git a/src/main/java/moe/nea/ultranotifier/mixin/FilterVisibleMessagePatch.java b/src/main/java/moe/nea/ultranotifier/mixin/FilterVisibleMessagePatch.java
new file mode 100644
index 0000000..13ef7cc
--- /dev/null
+++ b/src/main/java/moe/nea/ultranotifier/mixin/FilterVisibleMessagePatch.java
@@ -0,0 +1,24 @@
+package moe.nea.ultranotifier.mixin;
+
+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 org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(ChatHud.class)
+public class FilterVisibleMessagePatch {
+ @Inject(
+ method = "addVisibleMessage",
+ at = @At("HEAD"),
+ cancellable = true
+ )
+ private void onAddVisibleMessage(ChatHudLine message, CallbackInfo ci) {
+ if (UltraNotifierEvents.post(new VisibleChatMessageAddedEvent(message)).isCancelled()) {
+ ci.cancel();
+ }
+ }
+}