package net.girlonthe.chattweaks.mixin; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.components.ChatComponent; import net.minecraft.client.multiplayer.chat.GuiMessage; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Style; import net.minecraft.network.chat.TextColor; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyArg; import org.spongepowered.asm.mixin.Mixin; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @Mixin(ChatComponent.class) public abstract class ChatComponentMixin { @ModifyArg( method = "addMessage", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/components/ChatComponent;addMessageToDisplayQueue(Lnet/minecraft/client/multiplayer/chat/GuiMessage;)V") ) private GuiMessage rosasChatTweaks$prependTimestamp(GuiMessage original) { Component newComponent = Component.empty() .append( Component.literal(DateTimeFormatter.ofPattern("HH:mm:ss ").format(LocalDateTime.now())) .setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY)) ) .append(original.content()); return new GuiMessage(original.addedTime(), newComponent, original.signature(), original.source(), original.tag()); } }