content
content record component.content - the unwrapped chat messagetypeId - sender - timeStamp - saltSignature - Packet<ClientPlayPacketListener>The content is not wrapped in any way (e.g. by chat.type.text text); the
raw message content is sent to the clients, and they will wrap it (see
invalid @link
net.minecraft.client.gui.hud.ChatHudListener#formatgame message or use a server resource pack.
Messages that took more than TIME_TO_LIVE to reach the clients are
considered expired. This is measured from the time the client sent the chat message
to the server. Note that unlike ChatMessageC2SPacket expired messages are not
discarded by the clients; they instead log a warning.
Chat messages have signatures. It is possible to use a bogus signature - such as
NetworkEncryptionUtils.SignatureData.NONE - to send a chat message; however
if the signature is invalid (e.g. because the text's content differs from the one
sent by the client, or because the passed signature is invalid) the client will
log a warning. See
invalid @link
NetworkEncryptionUtils#updateSignature
| Namespace | Name |
|---|---|
| official | ug |
| intermediary | net/minecraft/class_7438 |
| named | net/minecraft/network/packet/s2c/play/ChatMessageS2CPacket |
| official | a |
| intermediary | comp_758 |
| named | content |
| official | b |
| intermediary | comp_806 |
| named | typeId |
| official | c |
| intermediary | comp_760 |
| named | sender |
| official | d |
| intermediary | comp_761 |
| named | timeStamp |
| official | e |
| intermediary | comp_762 |
| named | saltSignature |
private final Textcontent record component.private final NetworkEncryptionUtils.SignatureDatasaltSignature record component.private final ChatMessageSendersender record component.private static final Durationprivate final InstanttimeStamp record component.private final inttypeId record component.ChatMessageS2CPacket(Text text,
int int2,
ChatMessageSender chatMessageSender,
Instant instant,
NetworkEncryptionUtils.SignatureData signatureData) voidapply(ClientPlayPacketListener clientPlayPacketListener) content()content record component.final booleanprivate Instantfinal inthashCode()booleanbooleanmethod_43884(Registry<MessageType> registry) saltSignature record component.sender()sender record component.timeStamp record component.final StringtoString()inttypeId()typeId record component.voidwrite(PacketByteBuf buf) content record component.typeId record component.sender record component.timeStamp record component.saltSignature record component.| Namespace | Name | Mixin selector |
|---|---|---|
| official | f |
Lug;f:Ljava/time/Duration; |
| intermediary | field_39085 |
Lnet/minecraft/class_7438;field_39085:Ljava/time/Duration; |
| named | TIME_TO_LIVE |
Lnet/minecraft/network/packet/s2c/play/ChatMessageS2CPacket;TIME_TO_LIVE:Ljava/time/Duration; |
| Namespace | Name | Mixin selector |
|---|---|---|
| official | <init> |
Lug;<init>(Lqs;)V |
| intermediary | <init> |
Lnet/minecraft/class_7438;<init>(Lnet/minecraft/class_2540;)V |
| named | <init> |
Lnet/minecraft/network/packet/s2c/play/ChatMessageS2CPacket;<init>(Lnet/minecraft/network/PacketByteBuf;)V |
write in interface Packet<ClientPlayPacketListener>| Namespace | Name | Mixin selector |
|---|---|---|
| official | a |
Lsh;a(Lqs;)V |
| intermediary | method_11052 |
Lnet/minecraft/class_2596;method_11052(Lnet/minecraft/class_2540;)V |
| named | write |
Lnet/minecraft/network/Packet;write(Lnet/minecraft/network/PacketByteBuf;)V |
apply in interface Packet<ClientPlayPacketListener>| Namespace | Name | Mixin selector |
|---|---|---|
| official | a |
Lug;a(Lsk;)V |
| intermediary | method_43629 |
Lnet/minecraft/class_7438;method_43629(Lnet/minecraft/class_2602;)V |
| named | apply |
Lnet/minecraft/network/packet/s2c/play/ChatMessageS2CPacket;apply(Lnet/minecraft/network/listener/ClientPlayPacketListener;)V |
isWritingErrorSkippable in interface Packet<ClientPlayPacketListener>| Namespace | Name | Mixin selector |
|---|---|---|
| official | a |
Lsh;a()Z |
| intermediary | method_11051 |
Lnet/minecraft/class_2596;method_11051()Z |
| named | isWritingErrorSkippable |
Lnet/minecraft/network/Packet;isWritingErrorSkippable()Z |
| Namespace | Name | Mixin selector |
|---|---|---|
| official | b |
Lug;b()Lrn; |
| intermediary | method_43885 |
Lnet/minecraft/class_7438;method_43885()Lnet/minecraft/class_7471; |
| named | method_43885 |
Lnet/minecraft/network/packet/s2c/play/ChatMessageS2CPacket;method_43885()Lnet/minecraft/class_7471; |
| Namespace | Name | Mixin selector |
|---|---|---|
| official | h |
Lug;h()Ljava/time/Instant; |
| intermediary | method_43630 |
Lnet/minecraft/class_7438;method_43630()Ljava/time/Instant; |
| named | getExpiryTime |
Lnet/minecraft/network/packet/s2c/play/ChatMessageS2CPacket;getExpiryTime()Ljava/time/Instant; |
| Namespace | Name | Mixin selector |
|---|---|---|
| official | a |
Lug;a(Ljava/time/Instant;)Z |
| intermediary | method_43628 |
Lnet/minecraft/class_7438;method_43628(Ljava/time/Instant;)Z |
| named | isExpired |
Lnet/minecraft/network/packet/s2c/play/ChatMessageS2CPacket;isExpired(Ljava/time/Instant;)Z |
| Namespace | Name | Mixin selector |
|---|---|---|
| official | a |
Lug;a(Lhi;)Lrc; |
| intermediary | method_43884 |
Lnet/minecraft/class_7438;method_43884(Lnet/minecraft/class_2378;)Lnet/minecraft/class_2556; |
| named | method_43884 |
Lnet/minecraft/network/packet/s2c/play/ChatMessageS2CPacket;method_43884(Lnet/minecraft/util/registry/Registry;)Lnet/minecraft/network/MessageType; |
Objects::equals(Object,Object); primitive components are compared with '=='.content record component.content record componenttypeId record component.typeId record componentsender record component.sender record componenttimeStamp record component.timeStamp record componentsaltSignature record component.saltSignature record component