Files
Pumpkin/crates/pumpkin-protocol/src/java/server/play/place_recipe.rs
2026-08-17 17:21:36 +02:00

41 lines
1.1 KiB
Rust

use crate::{
ServerPacket,
ser::{NetworkReadExt, ReadingError},
};
use pumpkin_data::packet::serverbound::PLAY_PLACE_RECIPE;
use pumpkin_macros::java_packet;
use pumpkin_util::version::JavaMinecraftVersion;
use crate::VarInt;
#[java_packet(PLAY_PLACE_RECIPE)]
pub struct SPlaceRecipe {
pub container_id: i8,
pub recipe_display_id: VarInt,
pub use_max_items: bool,
}
impl<'a> ServerPacket<'a> for SPlaceRecipe {
fn read(bytebuf: &mut &'a [u8], _version: &JavaMinecraftVersion) -> Result<Self, ReadingError> {
Ok(Self {
container_id: bytebuf.get_i8()?,
recipe_display_id: bytebuf.get_var_int()?,
use_max_items: bytebuf.get_bool()?,
})
}
}
impl crate::ClientPacket for SPlaceRecipe {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
use crate::ser::NetworkWriteExt;
write.write_i8(self.container_id)?;
write.write_var_int(&self.recipe_display_id)?;
write.write_bool(self.use_max_items)?;
Ok(())
}
}