aboutsummaryrefslogtreecommitdiff
path: root/azalea-client/src/plugins/packet/config
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-03-25 05:16:10 +0000
committermat <git@matdoes.dev>2025-03-25 05:16:10 +0000
commit8af265e48bf9f3d5263c074d034770e4216bb3f3 (patch)
tree2605ce1d6ed8c74d47b6c355e6918721b0dc07aa /azalea-client/src/plugins/packet/config
parent4c53498f0795f821066941f39917ad2e4fa9a3cc (diff)
downloadazalea-drasl-8af265e48bf9f3d5263c074d034770e4216bb3f3.tar.xz
PongPlugin
Diffstat (limited to 'azalea-client/src/plugins/packet/config')
-rw-r--r--azalea-client/src/plugins/packet/config/events.rs10
-rw-r--r--azalea-client/src/plugins/packet/config/mod.rs6
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);
});
}