diff options
| author | 1zuna <1zuna@ccbluex.net> | 2023-12-02 05:45:12 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-01 22:45:12 -0600 |
| commit | fbee81e609e0cbc1bb8aff8ae649bca4e44ae465 (patch) | |
| tree | 4e24226ebf0700f20036ded11ad2c3fdb1c09572 /azalea-client/src/events.rs | |
| parent | d21e496bc36624900d771dacefcbe67dc8110c06 (diff) | |
| download | azalea-drasl-fbee81e609e0cbc1bb8aff8ae649bca4e44ae465.tar.xz | |
addd disconnect reason (#114)
Diffstat (limited to 'azalea-client/src/events.rs')
| -rw-r--r-- | azalea-client/src/events.rs | 13 |
1 files changed, 12 insertions, 1 deletions
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<Arc<ClientboundPlayerCombatKillPacket>>), /// A `KeepAlive` packet was sent by the server. KeepAlive(u64), + /// The client disconnected from the server. + Disconnect(Option<String>), } /// 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<DisconnectEvent>) { + 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())); + } + } +} |
