From 03d504f65f4aec18a962e7f57e34f16c419f95e5 Mon Sep 17 00:00:00 2001 From: Kyler <59854022+KylerOlsen@users.noreply.github.com> Date: Tue, 19 Dec 2023 19:48:42 -0700 Subject: [PATCH] Added disconnect message --- src/login.rs | 19 ++++++++++++++++++- src/main.rs | 8 +++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/login.rs b/src/login.rs index 7071a55..7f7bc1a 100644 --- a/src/login.rs +++ b/src/login.rs @@ -2,4 +2,21 @@ use tokio::net::tcp::{OwnedReadHalf, OwnedWriteHalf}; -use crate::mc_types; +use crate::mc_types::{self, Result}; + +pub fn convert_clientbound_disconnect(reason: String) -> Vec { + let mut data: Vec = vec![0]; + data.append(&mut &mut mc_types::convert_string(&reason)); + + data +} +pub async fn write_clientbound_disconnect( + stream: &mut OwnedWriteHalf, + reason: String, +) -> Result<()> { + mc_types::write_packet( + stream, + &mut convert_clientbound_disconnect(reason), + ).await?; + Ok(()) +} diff --git a/src/main.rs b/src/main.rs index b38b70b..b89eff6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -97,7 +97,13 @@ async fn handle_client(client_socket: TcpStream) { } }; }, - None => {} + None => { + login::write_clientbound_disconnect( + &mut client_writer, + "\"Server Error (Server may be starting)\"".to_string(), + ).await.expect("Error sending disconnect on: \ +Failed to connect to the backend server"); + } }; } else { return;