aboutsummaryrefslogtreecommitdiff
path: root/azalea-client/src/events.rs
diff options
context:
space:
mode:
author1zuna <1zuna@ccbluex.net>2023-12-02 05:45:12 +0100
committerGitHub <noreply@github.com>2023-12-01 22:45:12 -0600
commitfbee81e609e0cbc1bb8aff8ae649bca4e44ae465 (patch)
tree4e24226ebf0700f20036ded11ad2c3fdb1c09572 /azalea-client/src/events.rs
parentd21e496bc36624900d771dacefcbe67dc8110c06 (diff)
downloadazalea-drasl-fbee81e609e0cbc1bb8aff8ae649bca4e44ae465.tar.xz
addd disconnect reason (#114)
Diffstat (limited to 'azalea-client/src/events.rs')
-rw-r--r--azalea-client/src/events.rs13
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()));
+ }
+ }
+}