Pumpkin/crates/pumpkin-protocol/src/java/client/play/combat_event.rs
2026-08-20 22:39:16 +02:00

42 lines
1.0 KiB
Rust

use pumpkin_data::packet::clientbound::play::{PLAYER_COMBAT_END, PLAYER_COMBAT_ENTER};
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAYER_COMBAT_ENTER)]
pub struct CCombatEnter;
impl ClientPacket for CCombatEnter {
fn write_packet_data(
&self,
_write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
Ok(())
}
}
#[java_packet(PLAYER_COMBAT_END)]
pub struct CCombatEnd {
pub duration_ticks: VarInt,
}
impl CCombatEnd {
#[must_use]
pub const fn new(duration_ticks: VarInt) -> Self {
Self { duration_ticks }
}
}
impl ClientPacket for CCombatEnd {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_var_int(&self.duration_ticks)?;
Ok(())
}
}