valence_protocol/packets/play/
update_command_block_c2s.rs

1use bitfield_struct::bitfield;
2
3use crate::{BlockPos, Decode, Encode, Packet};
4
5#[derive(Copy, Clone, Debug, Encode, Decode, Packet)]
6pub struct UpdateCommandBlockC2s<'a> {
7    pub position: BlockPos,
8    pub command: &'a str,
9    pub mode: UpdateCommandBlockMode,
10    pub flags: UpdateCommandBlockFlags,
11}
12
13#[derive(Copy, Clone, PartialEq, Eq, Debug, Encode, Decode)]
14pub enum UpdateCommandBlockMode {
15    Sequence,
16    Auto,
17    Redstone,
18}
19
20#[bitfield(u8)]
21#[derive(PartialEq, Eq, Encode, Decode)]
22pub struct UpdateCommandBlockFlags {
23    pub track_output: bool,
24    pub conditional: bool,
25    pub automatic: bool,
26    #[bits(5)]
27    _pad: u8,
28}