diff options
| author | EightFactorial <murphkev000@gmail.com> | 2023-02-08 10:05:14 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-08 12:05:14 -0600 |
| commit | c23fae6e5dc2832f3649838f514eafb9dfa3e598 (patch) | |
| tree | 45e8dce127bf96ff45a9badc462f7e5553d7c561 /azalea-client/src/events.rs | |
| parent | aa886c101b398f52372df6054c00f9387428cac6 (diff) | |
| download | azalea-drasl-c23fae6e5dc2832f3649838f514eafb9dfa3e598.tar.xz | |
Add KeepAliveEvent and Fix Error Messages (#65)
* Add KeepAliveEvent
* Fix error messages
* Panic instead of log error
* Do not panic on closed connections
* change some wording and fixes
* fmt
---------
Co-authored-by: Ubuntu <github@matdoes.dev>
Diffstat (limited to 'azalea-client/src/events.rs')
| -rw-r--r-- | azalea-client/src/events.rs | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/azalea-client/src/events.rs b/azalea-client/src/events.rs index f8b9f434..3594911f 100644 --- a/azalea-client/src/events.rs +++ b/azalea-client/src/events.rs @@ -20,8 +20,8 @@ use tokio::sync::mpsc; use crate::{ packet_handling::{ - AddPlayerEvent, ChatReceivedEvent, DeathEvent, PacketReceiver, RemovePlayerEvent, - UpdatePlayerEvent, + AddPlayerEvent, ChatReceivedEvent, DeathEvent, KeepAliveEvent, PacketReceiver, + RemovePlayerEvent, UpdatePlayerEvent, }, ChatPacket, PlayerInfo, }; @@ -73,6 +73,8 @@ pub enum Event { UpdatePlayer(PlayerInfo), /// The client player died in-game. Death(Option<Arc<ClientboundPlayerCombatKillPacket>>), + /// A `KeepAlive` packet was sent by the server. + KeepAlive(u64), } /// A component that contains an event sender for events that are only @@ -94,6 +96,7 @@ impl Plugin for EventPlugin { .add_system(update_player_listener) .add_system(remove_player_listener) .add_system(death_listener) + .add_system(keepalive_listener) .add_tick_system(tick_listener); } } @@ -157,7 +160,7 @@ fn update_player_listener( for event in events.iter() { let local_player_events = query .get(event.entity) - .expect("Non-localplayer entities shouldn't be able to receive add player events"); + .expect("Non-localplayer entities shouldn't be able to receive update player events"); local_player_events .send(Event::UpdatePlayer(event.info.clone())) .unwrap(); @@ -171,7 +174,7 @@ fn remove_player_listener( for event in events.iter() { let local_player_events = query .get(event.entity) - .expect("Non-localplayer entities shouldn't be able to receive add player events"); + .expect("Non-localplayer entities shouldn't be able to receive remove player events"); local_player_events .send(Event::RemovePlayer(event.info.clone())) .unwrap(); @@ -187,3 +190,14 @@ fn death_listener(query: Query<&LocalPlayerEvents>, mut events: EventReader<Deat } } } + +fn keepalive_listener(query: Query<&LocalPlayerEvents>, mut events: EventReader<KeepAliveEvent>) { + for event in events.iter() { + let local_player_events = query + .get(event.entity) + .expect("Non-localplayer entities shouldn't be able to receive keepalive events"); + local_player_events + .send(Event::KeepAlive(event.id)) + .unwrap(); + } +} |
