From acd52756be3deb778175f8b34e181e104b46350a Mon Sep 17 00:00:00 2001 From: mat Date: Fri, 23 May 2025 20:53:26 -0100 Subject: [PATCH] fix Event::Login not firing on reconnect by adding entity id to RemoveOnDisconnectBundle --- azalea-client/src/plugins/disconnect.rs | 2 ++ azalea-client/src/plugins/packet/game/mod.rs | 8 ++++++-- azalea/examples/testbot/main.rs | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/azalea-client/src/plugins/disconnect.rs b/azalea-client/src/plugins/disconnect.rs index c1c962d5..6fa72faf 100644 --- a/azalea-client/src/plugins/disconnect.rs +++ b/azalea-client/src/plugins/disconnect.rs @@ -2,6 +2,7 @@ use azalea_chat::FormattedText; use azalea_entity::{EntityBundle, InLoadedChunk, LocalEntity, metadata::PlayerMetadataBundle}; +use azalea_world::MinecraftEntityId; use bevy_app::{App, Plugin, PostUpdate}; use bevy_ecs::prelude::*; use derive_more::Deref; @@ -53,6 +54,7 @@ pub struct DisconnectEvent { pub struct RemoveOnDisconnectBundle { pub joined_client: JoinedClientBundle, pub entity: EntityBundle, + pub minecraft_entity_id: MinecraftEntityId, pub instance_holder: InstanceHolder, pub player_metadata: PlayerMetadataBundle, pub in_loaded_chunk: InLoadedChunk, diff --git a/azalea-client/src/plugins/packet/game/mod.rs b/azalea-client/src/plugins/packet/game/mod.rs index b301973f..d786d238 100644 --- a/azalea-client/src/plugins/packet/game/mod.rs +++ b/azalea-client/src/plugins/packet/game/mod.rs @@ -1420,8 +1420,12 @@ impl GamePacketHandler<'_> { )>( self.ecs, |(mut commands, mut query, mut events, mut instance_container, mut loaded_by_query)| { - let (mut instance_holder, game_profile, client_information, instance_name) = - query.get_mut(self.player).unwrap(); + let Ok((mut instance_holder, game_profile, client_information, instance_name)) = + query.get_mut(self.player) + else { + warn!("Got respawn packet but player doesn't have the required components"); + return; + }; let new_instance_name = p.common.dimension.clone(); diff --git a/azalea/examples/testbot/main.rs b/azalea/examples/testbot/main.rs index 487cea1e..1aa9485d 100644 --- a/azalea/examples/testbot/main.rs +++ b/azalea/examples/testbot/main.rs @@ -187,6 +187,9 @@ async fn handle(bot: Client, event: azalea::Event, state: State) -> anyhow::Resu BotTask::None => {} } } + azalea::Event::Login => { + println!("Got login event") + } _ => {} }