1pub mod ip_logger;
12
13use log::debug;
14
15use super::packet::{PacketBuilder, PacketError};
16use crate::consts;
17use crate::packet::Packet;
18
19pub fn status_response() -> Result<Packet, PacketError> {
21 let json_response = consts::protocol::status_response_json();
22
23 PacketBuilder::new().append_string(json_response).build(
24 0x00,
25 Some("Status Response (Clientbound) (Status)".to_string()),
26 )
27}
28
29pub fn ping_response(ping_request_packet: Packet) -> Result<Packet, PacketError> {
31 debug!("Ping packet is: {ping_request_packet}");
32 let payload: &[u8] = ping_request_packet.get_payload();
33 debug!(
34 "Ping packet payload is: {payload:?} and len is {}",
35 payload.len()
36 );
37 if payload.len() == 8 {
38 PacketBuilder::new().append_bytes(&payload[0..8]).build(
40 0x01,
41 Some("Ping Response (Clientbound) (Status)".to_string()),
42 )
43 } else {
44 Err(PacketError::PayloadDecodeError(
45 "failed to decode timestamp (Long) in the Ping Request packet".to_string(),
46 ))
47 }
48}