package net.minecraft.network.protocol.game; import java.time.Instant; import net.minecraft.commands.arguments.ArgumentSignatures; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.LastSeenMessages.Update; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.PacketType; public record ServerboundChatCommandSignedPacket(String command, Instant timeStamp, long salt, ArgumentSignatures argumentSignatures, Update lastSeenMessages) implements Packet { public static final StreamCodec STREAM_CODEC = Packet.codec( ServerboundChatCommandSignedPacket::write, ServerboundChatCommandSignedPacket::new ); private ServerboundChatCommandSignedPacket(FriendlyByteBuf buffer) { this(buffer.readUtf(), buffer.readInstant(), buffer.readLong(), new ArgumentSignatures(buffer), new Update(buffer)); } private void write(FriendlyByteBuf buffer) { buffer.writeUtf(this.command); buffer.writeInstant(this.timeStamp); buffer.writeLong(this.salt); this.argumentSignatures.write(buffer); this.lastSeenMessages.write(buffer); } @Override public PacketType type() { return GamePacketTypes.SERVERBOUND_CHAT_COMMAND_SIGNED; } public void handle(ServerGamePacketListener serverGamePacketListener) { serverGamePacketListener.handleSignedChatCommand(this); } }