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}