aboutsummaryrefslogtreecommitdiff
path: root/azalea-client/src/interact.rs
diff options
context:
space:
mode:
authormat <27899617+mat-1@users.noreply.github.com>2023-09-21 11:16:29 -0500
committerGitHub <noreply@github.com>2023-09-21 11:16:29 -0500
commit7b3e2e4bf793466a351510c7fbbd08234e93bb0e (patch)
tree7177a919de9982d9e3c7f36a76d2025696f465b6 /azalea-client/src/interact.rs
parent83cce236145cdab1872a472a70943b669a880965 (diff)
downloadazalea-drasl-7b3e2e4bf793466a351510c7fbbd08234e93bb0e.tar.xz
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 <git@matdoes.dev>
Diffstat (limited to 'azalea-client/src/interact.rs')
-rw-r--r--azalea-client/src/interact.rs31
1 files changed, 17 insertions, 14 deletions
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<BlockInteractEvent>,
- mut query: Query<(
- &LocalPlayer,
- &mut CurrentSequenceNumber,
- &HitResultComponent,
- )>,
+ mut query: Query<(Entity, &mut CurrentSequenceNumber, &HitResultComponent)>,
+ mut send_packet_events: EventWriter<SendPacketEvent>,
) {
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(),
- )
+ })
}
}