aboutsummaryrefslogtreecommitdiff
path: root/azalea-client/src
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-05-23 20:53:26 -0100
committermat <git@matdoes.dev>2025-05-23 12:53:29 -0900
commitacd52756be3deb778175f8b34e181e104b46350a (patch)
tree01ebf59f358f7a38ad3eb78675f4e599adbcabb9 /azalea-client/src
parent4bb317a7e186ae7cd3a14bd0b8fd5df91375ea73 (diff)
downloadazalea-drasl-acd52756be3deb778175f8b34e181e104b46350a.tar.xz
fix Event::Login not firing on reconnect by adding entity id to RemoveOnDisconnectBundle
Diffstat (limited to 'azalea-client/src')
-rw-r--r--azalea-client/src/plugins/disconnect.rs2
-rw-r--r--azalea-client/src/plugins/packet/game/mod.rs8
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();