nurtex_protocol/packets/configuration/
packets.rs1use 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}