valence_protocol/packets/play/
client_settings_c2s.rs
1use bitfield_struct::bitfield;
2
3use crate::{Decode, Encode, Packet};
4
5#[derive(Clone, Debug, Encode, Decode, Packet)]
6pub struct ClientSettingsC2s<'a> {
7 pub locale: &'a str,
8 pub view_distance: u8,
9 pub chat_mode: ChatMode,
10 pub chat_colors: bool,
11 pub displayed_skin_parts: DisplayedSkinParts,
12 pub main_arm: MainArm,
13 pub enable_text_filtering: bool,
14 pub allow_server_listings: bool,
15}
16
17#[bitfield(u8)]
18#[derive(PartialEq, Eq, Encode, Decode)]
19pub struct DisplayedSkinParts {
20 pub cape: bool,
21 pub jacket: bool,
22 pub left_sleeve: bool,
23 pub right_sleeve: bool,
24 pub left_pants_leg: bool,
25 pub right_pants_leg: bool,
26 pub hat: bool,
27 _pad: bool,
28}
29
30#[derive(Copy, Clone, PartialEq, Eq, Default, Debug, Encode, Decode)]
31pub enum ChatMode {
32 Enabled,
33 CommandsOnly,
34 #[default]
35 Hidden,
36}
37
38#[derive(Copy, Clone, PartialEq, Eq, Debug, Default, Encode, Decode)]
39pub enum MainArm {
40 Left,
41 #[default]
42 Right,
43}