diff options
| author | mat <git@matdoes.dev> | 2025-03-25 05:16:10 +0000 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2025-03-25 05:16:10 +0000 |
| commit | 8af265e48bf9f3d5263c074d034770e4216bb3f3 (patch) | |
| tree | 2605ce1d6ed8c74d47b6c355e6918721b0dc07aa /azalea-client/src/plugins/packet/config | |
| parent | 4c53498f0795f821066941f39917ad2e4fa9a3cc (diff) | |
| download | azalea-drasl-8af265e48bf9f3d5263c074d034770e4216bb3f3.tar.xz | |
PongPlugin
Diffstat (limited to 'azalea-client/src/plugins/packet/config')
| -rw-r--r-- | azalea-client/src/plugins/packet/config/events.rs | 10 | ||||
| -rw-r--r-- | azalea-client/src/plugins/packet/config/mod.rs | 6 |
2 files changed, 12 insertions, 4 deletions
diff --git a/azalea-client/src/plugins/packet/config/events.rs b/azalea-client/src/plugins/packet/config/events.rs index 9ed6c097..d0a7f3be 100644 --- a/azalea-client/src/plugins/packet/config/events.rs +++ b/azalea-client/src/plugins/packet/config/events.rs @@ -109,3 +109,13 @@ fn packet_interrupts(packet: &ClientboundConfigPacket) -> bool { | ClientboundConfigPacket::Transfer(_) ) } + +/// A Bevy trigger that's sent when our client receives a [`ClientboundPing`] +/// packet in the config state. +/// +/// See [`PingEvent`] for more information. +/// +/// [`ClientboundPing`]: azalea_protocol::packets::config::ClientboundPing +/// [`PingEvent`]: crate::packet::game::PingEvent +#[derive(Event, Debug, Clone)] +pub struct ConfigPingEvent(pub azalea_protocol::packets::config::ClientboundPing); diff --git a/azalea-client/src/plugins/packet/config/mod.rs b/azalea-client/src/plugins/packet/config/mod.rs index c9b84eac..ae601793 100644 --- a/azalea-client/src/plugins/packet/config/mod.rs +++ b/azalea-client/src/plugins/packet/config/mod.rs @@ -142,10 +142,8 @@ impl ConfigPacketHandler<'_> { pub fn ping(&mut self, p: ClientboundPing) { debug!("Got ping packet (in configuration) {p:?}"); - as_system::<Query<&RawConnection>>(self.ecs, |query| { - let raw_conn = query.get(self.player).unwrap(); - - raw_conn.write_packet(ServerboundPong { id: p.id }).unwrap(); + as_system::<Commands>(self.ecs, |mut commands| { + commands.trigger_targets(ConfigPingEvent(p), self.player); }); } |
