diff options
| author | mat <git@matdoes.dev> | 2025-05-23 20:53:26 -0100 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2025-05-23 12:53:29 -0900 |
| commit | acd52756be3deb778175f8b34e181e104b46350a (patch) | |
| tree | 01ebf59f358f7a38ad3eb78675f4e599adbcabb9 /azalea-client/src/plugins | |
| parent | 4bb317a7e186ae7cd3a14bd0b8fd5df91375ea73 (diff) | |
| download | azalea-drasl-acd52756be3deb778175f8b34e181e104b46350a.tar.xz | |
fix Event::Login not firing on reconnect by adding entity id to RemoveOnDisconnectBundle
Diffstat (limited to 'azalea-client/src/plugins')
| -rw-r--r-- | azalea-client/src/plugins/disconnect.rs | 2 | ||||
| -rw-r--r-- | azalea-client/src/plugins/packet/game/mod.rs | 8 |
2 files changed, 8 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(); |
