From fbee81e609e0cbc1bb8aff8ae649bca4e44ae465 Mon Sep 17 00:00:00 2001 From: 1zuna <1zuna@ccbluex.net> Date: Sat, 2 Dec 2023 05:45:12 +0100 Subject: addd disconnect reason (#114) --- azalea-client/src/events.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'azalea-client/src/events.rs') diff --git a/azalea-client/src/events.rs b/azalea-client/src/events.rs index c85f142e..0441ae98 100644 --- a/azalea-client/src/events.rs +++ b/azalea-client/src/events.rs @@ -24,7 +24,7 @@ use crate::{ AddPlayerEvent, DeathEvent, KeepAliveEvent, PacketEvent, RemovePlayerEvent, UpdatePlayerEvent, }, - PlayerInfo, + PlayerInfo, disconnect::DisconnectEvent, }; // (for contributors): @@ -93,6 +93,8 @@ pub enum Event { Death(Option>), /// A `KeepAlive` packet was sent by the server. KeepAlive(u64), + /// The client disconnected from the server. + Disconnect(Option), } /// A component that contains an event sender for events that are only @@ -117,6 +119,7 @@ impl Plugin for EventPlugin { remove_player_listener, keepalive_listener, death_listener, + disconnect_listener, ), ) .add_systems( @@ -229,3 +232,11 @@ fn keepalive_listener(query: Query<&LocalPlayerEvents>, mut events: EventReader< .unwrap(); } } + +fn disconnect_listener(query: Query<&LocalPlayerEvents>, mut events: EventReader) { + for event in events.read() { + if let Ok(local_player_events) = query.get(event.entity) { + let _ = local_player_events.send(Event::Disconnect(event.reason.clone())); + } + } +} -- cgit v1.2.3