Skip to main content

nurtex_protocol/packets/configuration/
packets.rs

1use nurtex_codec::Buffer;
2use nurtex_derive::Packet;
3
4use crate::types::{AccurateHand, ChatMode, DisplayedSkinParts, KnownPack, ParticleStatus, ReportDetail, ResourcePackState, ServerLink, TagGroup, TextComponent};
5
6#[derive(Clone, Debug, PartialEq, Packet)]
7pub struct MultisideKeepAlive {
8  pub id: i64,
9}
10
11#[derive(Clone, Debug, PartialEq, Packet)]
12pub struct ClientsidePing {
13  pub id: i32,
14}
15
16#[derive(Clone, Debug, PartialEq, Packet)]
17pub struct ClientsideCookieRequest {
18  pub key: String,
19}
20
21#[derive(Clone, Debug, PartialEq, Packet)]
22pub struct ClientsidePluginMessage {
23  pub channel: String,
24  #[vec_end]
25  pub data: Vec<u8>,
26}
27
28#[derive(Clone, Debug, PartialEq, Packet)]
29pub struct ClientsideDisconnect {
30  pub reason: TextComponent,
31}
32
33#[derive(Clone, Debug, PartialEq, Packet)]
34pub struct ClientsideFinishConfiguration;
35
36#[derive(Clone, Debug, PartialEq, Packet)]
37pub struct ClientsideResetChat;
38
39#[derive(Clone, Debug, PartialEq, Packet)]
40pub struct ClientsideRegistryData {
41  pub registry_id: String,
42  #[vec_end]
43  pub raw_data: Vec<u8>,
44}
45
46#[derive(Clone, Debug, PartialEq, Packet)]
47pub struct ClientsideRemoveResourcePack {
48  pub uuid: Option<uuid::Uuid>,
49}
50
51#[derive(Clone, Debug, PartialEq, Packet)]
52pub struct ClientsideAddResourcePack {
53  pub uuid: uuid::Uuid,
54  pub url: String,
55  pub hash: String,
56  pub forced: bool,
57  pub prompt_message: Option<String>,
58}
59
60#[derive(Clone, Debug, PartialEq, Packet)]
61pub struct ClientsideStoreCookie {
62  pub key: String,
63  #[vec_end]
64  pub payload: Vec<u8>,
65}
66
67#[derive(Clone, Debug, PartialEq, Packet)]
68pub struct ClientsideTransfer {
69  pub server_host: String,
70  #[varint]
71  pub server_port: i32,
72}
73
74#[derive(Clone, Debug, PartialEq, Packet)]
75pub struct ClientsideFeatureFlags {
76  pub features: Vec<String>,
77}
78
79#[derive(Clone, Debug, PartialEq, Packet)]
80pub struct ClientsideUpdateTags {
81  pub tags: Vec<TagGroup>,
82}
83
84#[derive(Clone, Debug, PartialEq, Packet)]
85pub struct ClientsideKnownPacks {
86  pub known_packs: Vec<KnownPack>,
87}
88
89#[derive(Clone, Debug, PartialEq, Packet)]
90pub struct ClientsideCustomReportDetails {
91  pub details: Vec<ReportDetail>,
92}
93
94#[derive(Clone, Debug, PartialEq, Packet)]
95pub struct ClientsideServerLinks {
96  pub links: Vec<ServerLink>,
97}
98
99#[derive(Clone, Debug, PartialEq, Packet)]
100pub struct ServersideClientInformation {
101  pub locale: String,
102  pub view_distance: i8,
103  pub chat_mode: ChatMode,
104  pub chat_colors: bool,
105  pub displayed_skin_parts: DisplayedSkinParts,
106  pub main_hand: AccurateHand,
107  pub enable_text_filtering: bool,
108  pub allow_server_listings: bool,
109  pub particle_status: ParticleStatus,
110}
111
112#[derive(Clone, Debug, PartialEq, Packet)]
113pub struct ServersideCookieResponse {
114  pub key: String,
115  pub payload: Option<Vec<u8>>,
116}
117
118#[derive(Clone, Debug, PartialEq, Packet)]
119pub struct ServersidePong {
120  pub id: i32,
121}
122
123#[derive(Clone, Debug, PartialEq, Packet)]
124pub struct ServersidePluginMessage {
125  pub channel: String,
126  #[vec_end]
127  pub data: Vec<u8>,
128}
129
130#[derive(Clone, Debug, PartialEq, Packet)]
131pub struct ServersideAcknowledgeFinishConfiguration;
132
133#[derive(Clone, Debug, PartialEq, Packet)]
134pub struct ServersideResourcePackResponse {
135  pub uuid: uuid::Uuid,
136  pub state: ResourcePackState,
137}
138
139#[derive(Clone, Debug, PartialEq, Packet)]
140pub struct ServersideKnownPacks {
141  pub known_packs: Vec<KnownPack>,
142}