summaryrefslogtreecommitdiff
path: root/src/main/java/moe/nea/ultranotifier/mixin/ChatHudCategoryTracker.java
blob: 62055064cebb35cbadc958b2b5989dad88224755 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package moe.nea.ultranotifier.mixin;

import moe.nea.ultranotifier.datamodel.CategorizedChatLine;
import moe.nea.ultranotifier.datamodel.ChatCategoryArbiter;
import moe.nea.ultranotifier.datamodel.HasCategorizedChatLine;
import net.minecraft.client.gui.hud.ChatHudLine;
import net.minecraft.text.Text;
import org.jetbrains.annotations.NotNull;
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;

//#if MC> 1.20
import net.minecraft.client.gui.hud.MessageIndicator;
import net.minecraft.network.message.MessageSignatureData;
//#endif

@Mixin(ChatHudLine.class)
public class ChatHudCategoryTracker<T> implements HasCategorizedChatLine {
	@Unique
	CategorizedChatLine categorizedSelf;

	@Inject(method = "<init>", at = @At("RETURN"))
	private void onInit(
		int creationTick,
		//#if MC>1.20
		Text content,
		//#elseif MC<1.16
		//$$net.minecraft.util.text.ITextComponent content,
		//$$int weird,
		//#else
		//$$T content,
		//$$int weird,
		//#endif
		//#if MC>1.20
		MessageSignatureData signature, MessageIndicator tag,
		//#endif
		CallbackInfo ci
	) {
		categorizedSelf = ChatCategoryArbiter.INSTANCE.categorize((Text)content);
	}

	@Override
	public @NotNull CategorizedChatLine getCategorizedChatLine_ultraNotifier() {
		return categorizedSelf;
	}
}