diff --git a/src/server/player/context.rs b/src/server/player/context.rs index e914c80..7e1183d 100644 --- a/src/server/player/context.rs +++ b/src/server/player/context.rs @@ -268,6 +268,10 @@ impl ClientContext { } } + pub fn push_back(self: &Arc, packet: Packet){ + self.packet_buffer.lock().unwrap().push_back(packet) + } + pub fn close(self: &Arc) { self.conn.write().unwrap().close(); } diff --git a/src/server/protocol/play.rs b/src/server/protocol/play.rs index da28901..8d1dac0 100644 --- a/src/server/protocol/play.rs +++ b/src/server/protocol/play.rs @@ -209,12 +209,14 @@ pub fn send_keep_alive(client: Arc) -> Result<(), ServerError> { packet.write_long(timestamp)?; client.write_packet(&packet)?; - // let mut packet = client.read_packet(serverbound::play::KEEP_ALIVE)?; - // let timestamp2 = packet.read_long()?; - // if timestamp2 != timestamp { - // // Послать клиента нахуй - // println!("KeepAlive Error") - // } + let mut packet = client.read_packet(serverbound::play::KEEP_ALIVE)?; + let timestamp2 = packet.read_long()?; + if timestamp2 != timestamp { + // Послать клиента нахуй + println!("KeepAlive Err") + } else { + println!("KeepAlive Ok") + } Ok(()) } @@ -280,7 +282,9 @@ pub fn handle_play_state( client.set_rotation((yaw, pitch)); }, - _ => {} + _ => { + client.push_back(packet); + } } }