aboutsummaryrefslogtreecommitdiff
path: root/azalea-protocol/src/packets/game/s_interact.rs
diff options
context:
space:
mode:
authormat <27899617+mat-1@users.noreply.github.com>2026-03-24 11:15:56 -0500
committerGitHub <noreply@github.com>2026-03-24 11:15:56 -0500
commiteeaf1435e81d9cbd8daa0efa22029c1f259a64b5 (patch)
tree3486e26d5409708370e4e259d240fb77c6e1e439 /azalea-protocol/src/packets/game/s_interact.rs
parent41a9ae6aaff77646c08c64ac1334a8cc6081c24f (diff)
downloadazalea-drasl-eeaf1435e81d9cbd8daa0efa22029c1f259a64b5.tar.xz
26.1 (#316)
* start updating to 26.1 * start updating to 26.1-snapshot-6 * 26.1-snapshot-6 * 26.1-snapshot-10 * 26.1-rc-1 * fix tests * 26.1-rc-2 and sort default components * 26.1 * update changelog
Diffstat (limited to 'azalea-protocol/src/packets/game/s_interact.rs')
-rw-r--r--azalea-protocol/src/packets/game/s_interact.rs71
1 files changed, 5 insertions, 66 deletions
diff --git a/azalea-protocol/src/packets/game/s_interact.rs b/azalea-protocol/src/packets/game/s_interact.rs
index bd04e09d..2f0494ae 100644
--- a/azalea-protocol/src/packets/game/s_interact.rs
+++ b/azalea-protocol/src/packets/game/s_interact.rs
@@ -1,78 +1,17 @@
-use std::io::{self, Cursor, Write};
-
-use azalea_buf::{AzBuf, AzBufVar};
-use azalea_core::{
- entity_id::MinecraftEntityId,
- position::{Vec3, Vec3f32},
-};
+use azalea_buf::AzBuf;
+use azalea_core::{delta::LpVec3, entity_id::MinecraftEntityId};
use azalea_protocol_macros::ServerboundGamePacket;
-use crate::packets::BufReadError;
-
#[derive(AzBuf, Clone, Debug, PartialEq, ServerboundGamePacket)]
pub struct ServerboundInteract {
#[var]
pub entity_id: MinecraftEntityId,
- pub action: ActionType,
- /// Whether the player is sneaking
+ pub hand: InteractionHand,
+ pub location: LpVec3,
+ /// Whether the player is sneaking.
pub using_secondary_action: bool,
}
-#[derive(Clone, Copy, Debug, PartialEq)]
-pub enum ActionType {
- Interact {
- hand: InteractionHand,
- },
- Attack,
- InteractAt {
- location: Vec3,
- hand: InteractionHand,
- },
-}
-
-impl AzBuf for ActionType {
- fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result<Self, BufReadError> {
- let action_type = u32::azalea_read_var(buf)?;
- match action_type {
- 0 => {
- let hand = InteractionHand::azalea_read(buf)?;
- Ok(ActionType::Interact { hand })
- }
- 1 => Ok(ActionType::Attack),
- 2 => {
- let pos = Vec3f32::azalea_read(buf)?;
- let hand = InteractionHand::azalea_read(buf)?;
- Ok(ActionType::InteractAt {
- location: Vec3::from(pos),
- hand,
- })
- }
- _ => Err(BufReadError::UnexpectedEnumVariant {
- id: action_type as i32,
- }),
- }
- }
- fn azalea_write(&self, buf: &mut impl Write) -> io::Result<()> {
- match self {
- ActionType::Interact { hand } => {
- 0u32.azalea_write_var(buf)?;
- hand.azalea_write(buf)?;
- }
- ActionType::Attack => {
- 1u32.azalea_write_var(buf)?;
- }
- ActionType::InteractAt { location, hand } => {
- 2u32.azalea_write_var(buf)?;
- (location.x as f32).azalea_write(buf)?;
- (location.y as f32).azalea_write(buf)?;
- (location.z as f32).azalea_write(buf)?;
- hand.azalea_write(buf)?;
- }
- }
- Ok(())
- }
-}
-
#[derive(AzBuf, Clone, Copy, Debug, Default, PartialEq)]
pub enum InteractionHand {
#[default]