From 7b3e2e4bf793466a351510c7fbbd08234e93bb0e Mon Sep 17 00:00:00 2001 From: mat <27899617+mat-1@users.noreply.github.com> Date: Thu, 21 Sep 2023 11:16:29 -0500 Subject: 1.20.2 (#99) * add configuration state * start updating to 23w31a * implement a bit more of 23w31a * chunk batching * start adding configuration state * ioasfhjgsd * almost works * configuration state mostly implemented * handle other packets in configuration state and fix keepalive * cleanup, fix warnings * 23w32a * fix some doctests * 23w33a * 23w35a * 1.20.2-pre2 * fix system conflicts * 1.20.2-pre4 * make tests compile * tests pass * 1.20.2-rc2 * 1.20.2 * Revert "1.20.2" This reverts commit dd152fd265332ead333c919e585ded6d609d7468. * didn't mean to commit that code --------- Co-authored-by: mat --- azalea-client/src/interact.rs | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'azalea-client/src/interact.rs') diff --git a/azalea-client/src/interact.rs b/azalea-client/src/interact.rs index b28baca5..dc1306e3 100644 --- a/azalea-client/src/interact.rs +++ b/azalea-client/src/interact.rs @@ -27,10 +27,13 @@ use derive_more::{Deref, DerefMut}; use log::warn; use crate::{ - client::{PermissionLevel, PlayerAbilities}, + attack::handle_attack_event, inventory::{InventoryComponent, InventorySet}, - local_player::{handle_send_packet_event, LocalGameMode, SendPacketEvent}, - Client, LocalPlayer, + local_player::{ + handle_send_packet_event, LocalGameMode, PermissionLevel, PlayerAbilities, SendPacketEvent, + }, + respawn::perform_respawn, + Client, }; /// A plugin that allows clients to interact with blocks in the world. @@ -48,6 +51,9 @@ impl Plugin for InteractPlugin { handle_swing_arm_event, ) .before(handle_send_packet_event) + .after(InventorySet) + .after(perform_respawn) + .after(handle_attack_event) .chain(), update_modifiers_for_held_item .after(InventorySet) @@ -100,16 +106,12 @@ pub struct HitResultComponent(BlockHitResult); pub fn handle_block_interact_event( mut events: EventReader, - mut query: Query<( - &LocalPlayer, - &mut CurrentSequenceNumber, - &HitResultComponent, - )>, + mut query: Query<(Entity, &mut CurrentSequenceNumber, &HitResultComponent)>, + mut send_packet_events: EventWriter, ) { for event in events.iter() { - let Ok((local_player, mut sequence_number, hit_result)) = query.get_mut(event.entity) - else { - warn!("Sent BlockInteractEvent for entity that isn't LocalPlayer"); + let Ok((entity, mut sequence_number, hit_result)) = query.get_mut(event.entity) else { + warn!("Sent BlockInteractEvent for entity that doesn't have the required components"); continue; }; @@ -141,14 +143,15 @@ pub fn handle_block_interact_event( } }; - local_player.write_packet( - ServerboundUseItemOnPacket { + send_packet_events.send(SendPacketEvent { + entity, + packet: ServerboundUseItemOnPacket { hand: InteractionHand::MainHand, block_hit, sequence: sequence_number.0, } .get(), - ) + }) } } -- cgit v1.2.3