Skip to main content

nurtex_protocol/packets/login/
packets.rs

1use nurtex_codec::Buffer;
2use nurtex_derive::Packet;
3
4use crate::types::{Property, TextComponent};
5
6#[derive(Clone, Debug, PartialEq, Packet)]
7pub struct ClientsideLoginDisconnect {
8  pub reason: TextComponent,
9}
10
11#[derive(Clone, Debug, PartialEq, Packet)]
12pub struct ClientsideEncryptionRequest {
13  pub server_id: String,
14  pub public_key: Vec<u8>,
15  pub verify_token: Vec<u8>,
16  pub should_authenticate: bool,
17}
18
19#[derive(Clone, Debug, PartialEq, Packet)]
20pub struct ClientsideLoginSuccess {
21  pub uuid: uuid::Uuid,
22  pub username: String,
23  pub properties: Vec<Property>,
24}
25
26#[derive(Clone, Debug, PartialEq, Packet)]
27pub struct ClientsideSetCompression {
28  #[packet(varint)]
29  pub compression_threshold: i32,
30}
31
32#[derive(Clone, Debug, PartialEq, Packet)]
33pub struct ClientsidePluginRequest {
34  #[packet(varint)]
35  pub message_id: i32,
36  pub channel: String,
37  #[packet(vec_end)]
38  pub data: Vec<u8>,
39}
40
41#[derive(Clone, Debug, PartialEq, Packet)]
42pub struct ClientsideCookieRequest {
43  pub key: String,
44}
45
46#[derive(Clone, Debug, PartialEq, Packet)]
47pub struct ServersideLoginStart {
48  pub username: String,
49  pub uuid: uuid::Uuid,
50}
51
52#[derive(Clone, Debug, PartialEq, Packet)]
53pub struct ServersideEncryptionResponse {
54  pub shared_secret: Vec<u8>,
55  pub verify_token: Vec<u8>,
56}
57
58#[derive(Clone, Debug, PartialEq, Packet)]
59pub struct ServersidePluginResponse {
60  #[packet(varint)]
61  pub message_id: i32,
62  pub data: Option<Vec<u8>>,
63}
64
65#[derive(Clone, Debug, PartialEq, Packet)]
66pub struct ServersideLoginAcknowledged;
67
68#[derive(Clone, Debug, PartialEq, Packet)]
69pub struct ServersideCookieResponse {
70  pub key: String,
71  pub payload: Option<Vec<u8>>,
72}